@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.
- package/dist/components/base/link/link.js +2 -2
- package/dist/utils/url_utils.js +56 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +11 -4
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +31 -8
- package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
- package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -5
- package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
- package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
- package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +24 -9
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +26 -7
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +74 -20
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +71 -16
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +16 -5
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +26 -7
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -9
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
- package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
- package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +24 -9
- package/package.json +1 -1
- package/src/components/base/link/link.vue +2 -2
- package/src/utils/url_utils.js +66 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +16 -4
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +32 -8
- package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
- package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
- package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -9
- package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
- package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
- package/src/vendor/bootstrap-vue/src/components/popover/popover.js +23 -7
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +27 -7
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +72 -18
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +72 -17
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +18 -6
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +27 -7
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -13
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
- package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
- package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +22 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isString, isObject, toString, isBoolean, concat, isFunction } from 'lodash-es';
|
|
2
2
|
import { SafeLinkDirective, isExternalURL } from '../../../directives/safe_link/safe_link';
|
|
3
3
|
import { stopEvent } from '../../../utils/utils';
|
|
4
|
+
import { buildQueryString } from '../../../utils/url_utils';
|
|
4
5
|
import { safeVueInstance, isVue3 } from '../../../utils/vue_utils';
|
|
5
|
-
import { stringifyQueryObj } from '../../../vendor/bootstrap-vue/src/utils/router';
|
|
6
6
|
import { linkVariantOptions, linkVariantUnstyled, linkVariantInline, linkVariantMeta } from '../../../utils/constants';
|
|
7
7
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
8
8
|
|
|
@@ -175,7 +175,7 @@ var script = {
|
|
|
175
175
|
// Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)
|
|
176
176
|
if (isObject(to) && (to.path || to.query || to.hash)) {
|
|
177
177
|
const path = toString(to.path);
|
|
178
|
-
const query =
|
|
178
|
+
const query = buildQueryString(to.query);
|
|
179
179
|
let hash = toString(to.hash);
|
|
180
180
|
hash = !hash || hash.charAt(0) === '#' ? hash : `#${hash}`;
|
|
181
181
|
return `${path}${query}${hash}` || fallback;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const RX_ENCODE_REVERSE = /[!'()*]/g;
|
|
2
|
+
const RX_ENCODED_COMMA = /%2C/g;
|
|
3
|
+
const encodeReserveReplacer = c => `%${c.charCodeAt(0).toString(16)}`;
|
|
4
|
+
const encode = str => encodeURIComponent(String(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Converts a query parameter object into a URL query string prefixed with `?`.
|
|
8
|
+
*
|
|
9
|
+
* Uses RFC 3986-compliant encoding which additionally escapes `[!'()*]` and preserves commas,
|
|
10
|
+
* unlike `URLSearchParams` which cannot represent key-only params (`?foo`) or skip `undefined` values.
|
|
11
|
+
*
|
|
12
|
+
* - `undefined` values are omitted entirely.
|
|
13
|
+
* - `null` values produce key-only entries (e.g., `?foo`).
|
|
14
|
+
* - Array values repeat the key for each element (e.g., `?bar=a&bar=b`).
|
|
15
|
+
*
|
|
16
|
+
* @param {Object<string, string | number | null | undefined | Array<string | number | null | undefined>>} obj
|
|
17
|
+
* An object whose keys are query parameter names and values are parameter values.
|
|
18
|
+
* @returns {string} A query string prefixed with `?`, or an empty string if the input
|
|
19
|
+
* is not a plain object or produces no parameters.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* buildQueryString({ page: 1, search: 'hello world' })
|
|
23
|
+
* // => '?page=1&search=hello%20world'
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* buildQueryString({ foo: null, bar: undefined })
|
|
27
|
+
* // => '?foo'
|
|
28
|
+
*/
|
|
29
|
+
const buildQueryString = obj => {
|
|
30
|
+
if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
const query = Object.keys(obj).map(key => {
|
|
34
|
+
const value = obj[key];
|
|
35
|
+
if (value === undefined) {
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
if (value === null) {
|
|
39
|
+
return encode(key);
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(value)) {
|
|
42
|
+
return value.reduce((results, item) => {
|
|
43
|
+
if (item === null) {
|
|
44
|
+
results.push(encode(key));
|
|
45
|
+
} else if (item !== undefined) {
|
|
46
|
+
results.push(`${encode(key)}=${encode(item)}`);
|
|
47
|
+
}
|
|
48
|
+
return results;
|
|
49
|
+
}, []).join('&');
|
|
50
|
+
}
|
|
51
|
+
return `${encode(key)}=${encode(value)}`;
|
|
52
|
+
}).filter(x => x.length > 0).join('&');
|
|
53
|
+
return query ? `?${query}` : '';
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { buildQueryString };
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { extend, mergeData } from '../../vue';
|
|
2
2
|
import { NAME_DROPDOWN_DIVIDER } from '../../constants/components';
|
|
3
3
|
import { PROP_TYPE_STRING } from '../../constants/props';
|
|
4
|
-
import { makeProp } from '../../utils/props';
|
|
5
4
|
import { omit } from '../../utils/object';
|
|
6
5
|
|
|
7
6
|
// --- Props ---
|
|
8
7
|
|
|
9
8
|
const props = {
|
|
10
|
-
tag:
|
|
9
|
+
tag: {
|
|
10
|
+
type: PROP_TYPE_STRING,
|
|
11
|
+
required: false,
|
|
12
|
+
default: 'hr'
|
|
13
|
+
}
|
|
11
14
|
};
|
|
12
15
|
|
|
13
16
|
// --- Main component ---
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { extend, mergeData } from '../../vue';
|
|
2
2
|
import { NAME_DROPDOWN_FORM } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_BOOLEAN,
|
|
3
|
+
import { PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';
|
|
4
4
|
import { sortKeys, omit } from '../../utils/object';
|
|
5
|
-
import { makeProp } from '../../utils/props';
|
|
6
5
|
import { props as props$1, BForm } from '../form/form';
|
|
7
6
|
|
|
8
7
|
// --- Props ---
|
|
9
8
|
|
|
10
9
|
const props = sortKeys({
|
|
11
10
|
...props$1,
|
|
12
|
-
disabled:
|
|
13
|
-
|
|
11
|
+
disabled: {
|
|
12
|
+
type: PROP_TYPE_BOOLEAN,
|
|
13
|
+
required: false,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
formClass: {
|
|
17
|
+
type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
|
|
18
|
+
required: false,
|
|
19
|
+
default: undefined
|
|
20
|
+
}
|
|
14
21
|
});
|
|
15
22
|
|
|
16
23
|
// --- Main component ---
|
|
@@ -1,22 +1,45 @@
|
|
|
1
1
|
import { extend, mergeData } from '../../vue';
|
|
2
2
|
import { NAME_DROPDOWN_GROUP } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_STRING,
|
|
3
|
+
import { PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../constants/props';
|
|
4
4
|
import { SLOT_NAME_HEADER, SLOT_NAME_DEFAULT } from '../../constants/slots';
|
|
5
5
|
import { isTag } from '../../utils/dom';
|
|
6
6
|
import { identity } from '../../utils/identity';
|
|
7
7
|
import { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';
|
|
8
8
|
import { omit } from '../../utils/object';
|
|
9
|
-
import { makeProp } from '../../utils/props';
|
|
10
9
|
|
|
11
10
|
// --- Props ---
|
|
12
11
|
|
|
13
12
|
const props = {
|
|
14
|
-
ariaDescribedby:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
ariaDescribedby: {
|
|
14
|
+
type: PROP_TYPE_STRING,
|
|
15
|
+
required: false,
|
|
16
|
+
default: undefined
|
|
17
|
+
},
|
|
18
|
+
header: {
|
|
19
|
+
type: PROP_TYPE_STRING,
|
|
20
|
+
required: false,
|
|
21
|
+
default: undefined
|
|
22
|
+
},
|
|
23
|
+
headerClasses: {
|
|
24
|
+
type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
|
|
25
|
+
required: false,
|
|
26
|
+
default: undefined
|
|
27
|
+
},
|
|
28
|
+
headerTag: {
|
|
29
|
+
type: PROP_TYPE_STRING,
|
|
30
|
+
required: false,
|
|
31
|
+
default: 'header'
|
|
32
|
+
},
|
|
33
|
+
headerVariant: {
|
|
34
|
+
type: PROP_TYPE_STRING,
|
|
35
|
+
required: false,
|
|
36
|
+
default: undefined
|
|
37
|
+
},
|
|
38
|
+
id: {
|
|
39
|
+
type: PROP_TYPE_STRING,
|
|
40
|
+
required: false,
|
|
41
|
+
default: undefined
|
|
42
|
+
}
|
|
20
43
|
};
|
|
21
44
|
|
|
22
45
|
// --- Main component ---
|
|
@@ -3,14 +3,25 @@ import { NAME_DROPDOWN_HEADER } from '../../constants/components';
|
|
|
3
3
|
import { PROP_TYPE_STRING } from '../../constants/props';
|
|
4
4
|
import { isTag } from '../../utils/dom';
|
|
5
5
|
import { omit } from '../../utils/object';
|
|
6
|
-
import { makeProp } from '../../utils/props';
|
|
7
6
|
|
|
8
7
|
// --- Props ---
|
|
9
8
|
|
|
10
9
|
const props = {
|
|
11
|
-
id:
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
id: {
|
|
11
|
+
type: PROP_TYPE_STRING,
|
|
12
|
+
required: false,
|
|
13
|
+
default: undefined
|
|
14
|
+
},
|
|
15
|
+
tag: {
|
|
16
|
+
type: PROP_TYPE_STRING,
|
|
17
|
+
required: false,
|
|
18
|
+
default: 'header'
|
|
19
|
+
},
|
|
20
|
+
variant: {
|
|
21
|
+
type: PROP_TYPE_STRING,
|
|
22
|
+
required: false,
|
|
23
|
+
default: undefined
|
|
24
|
+
}
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
// --- Main component ---
|
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
import { extend } from '../../vue';
|
|
2
2
|
import { NAME_DROPDOWN_ITEM_BUTTON } from '../../constants/components';
|
|
3
3
|
import { EVENT_NAME_CLICK } from '../../constants/events';
|
|
4
|
-
import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING,
|
|
5
|
-
import { makeProp } from '../../utils/props';
|
|
4
|
+
import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../constants/props';
|
|
6
5
|
import { attrsMixin } from '../../mixins/attrs';
|
|
7
6
|
import { normalizeSlotMixin } from '../../mixins/normalize-slot';
|
|
8
7
|
|
|
9
8
|
// --- Props ---
|
|
10
9
|
|
|
11
10
|
const props = {
|
|
12
|
-
active:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
active: {
|
|
12
|
+
type: PROP_TYPE_BOOLEAN,
|
|
13
|
+
required: false,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
activeClass: {
|
|
17
|
+
type: PROP_TYPE_STRING,
|
|
18
|
+
required: false,
|
|
19
|
+
default: 'active'
|
|
20
|
+
},
|
|
21
|
+
buttonClass: {
|
|
22
|
+
type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
|
|
23
|
+
required: false,
|
|
24
|
+
default: undefined
|
|
25
|
+
},
|
|
26
|
+
disabled: {
|
|
27
|
+
type: PROP_TYPE_BOOLEAN,
|
|
28
|
+
required: false,
|
|
29
|
+
default: false
|
|
30
|
+
},
|
|
31
|
+
variant: {
|
|
32
|
+
type: PROP_TYPE_STRING,
|
|
33
|
+
required: false,
|
|
34
|
+
default: undefined
|
|
35
|
+
},
|
|
36
|
+
role: {
|
|
37
|
+
type: PROP_TYPE_STRING,
|
|
38
|
+
required: false,
|
|
39
|
+
default: 'menuitem'
|
|
40
|
+
}
|
|
18
41
|
};
|
|
19
42
|
|
|
20
43
|
// --- Main component ---
|
|
@@ -1,19 +1,46 @@
|
|
|
1
1
|
import { extend, mergeData } from '../../vue';
|
|
2
2
|
import { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';
|
|
3
3
|
import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
|
-
import { makeProp } from '../../utils/props';
|
|
5
4
|
|
|
6
5
|
// --- Props ---
|
|
7
6
|
|
|
8
7
|
const props = {
|
|
9
|
-
ariaLive:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
ariaLive: {
|
|
9
|
+
type: PROP_TYPE_STRING,
|
|
10
|
+
required: false,
|
|
11
|
+
default: undefined
|
|
12
|
+
},
|
|
13
|
+
forceShow: {
|
|
14
|
+
type: PROP_TYPE_BOOLEAN,
|
|
15
|
+
required: false,
|
|
16
|
+
default: false
|
|
17
|
+
},
|
|
18
|
+
id: {
|
|
19
|
+
type: PROP_TYPE_STRING,
|
|
20
|
+
required: false,
|
|
21
|
+
default: undefined
|
|
22
|
+
},
|
|
23
|
+
role: {
|
|
24
|
+
type: PROP_TYPE_STRING,
|
|
25
|
+
required: false,
|
|
26
|
+
default: undefined
|
|
27
|
+
},
|
|
13
28
|
// Tri-state prop: `true`, `false`, or `null`
|
|
14
|
-
state:
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
state: {
|
|
30
|
+
type: PROP_TYPE_BOOLEAN,
|
|
31
|
+
required: false,
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
tag: {
|
|
35
|
+
type: PROP_TYPE_STRING,
|
|
36
|
+
required: false,
|
|
37
|
+
default: 'div'
|
|
38
|
+
},
|
|
39
|
+
tooltip: {
|
|
40
|
+
type: PROP_TYPE_BOOLEAN,
|
|
41
|
+
required: false,
|
|
42
|
+
default: false
|
|
43
|
+
}
|
|
17
44
|
};
|
|
18
45
|
|
|
19
46
|
// --- Main component ---
|
|
@@ -1,19 +1,46 @@
|
|
|
1
1
|
import { extend, mergeData } from '../../vue';
|
|
2
2
|
import { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';
|
|
3
3
|
import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
|
-
import { makeProp } from '../../utils/props';
|
|
5
4
|
|
|
6
5
|
// --- Props ---
|
|
7
6
|
|
|
8
7
|
const props = {
|
|
9
|
-
ariaLive:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
ariaLive: {
|
|
9
|
+
type: PROP_TYPE_STRING,
|
|
10
|
+
required: false,
|
|
11
|
+
default: undefined
|
|
12
|
+
},
|
|
13
|
+
forceShow: {
|
|
14
|
+
type: PROP_TYPE_BOOLEAN,
|
|
15
|
+
required: false,
|
|
16
|
+
default: false
|
|
17
|
+
},
|
|
18
|
+
id: {
|
|
19
|
+
type: PROP_TYPE_STRING,
|
|
20
|
+
required: false,
|
|
21
|
+
default: undefined
|
|
22
|
+
},
|
|
23
|
+
role: {
|
|
24
|
+
type: PROP_TYPE_STRING,
|
|
25
|
+
required: false,
|
|
26
|
+
default: undefined
|
|
27
|
+
},
|
|
13
28
|
// Tri-state prop: `true`, `false`, or `null`
|
|
14
|
-
state:
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
state: {
|
|
30
|
+
type: PROP_TYPE_BOOLEAN,
|
|
31
|
+
required: false,
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
tag: {
|
|
35
|
+
type: PROP_TYPE_STRING,
|
|
36
|
+
required: false,
|
|
37
|
+
default: 'div'
|
|
38
|
+
},
|
|
39
|
+
tooltip: {
|
|
40
|
+
type: PROP_TYPE_BOOLEAN,
|
|
41
|
+
required: false,
|
|
42
|
+
default: false
|
|
43
|
+
}
|
|
17
44
|
};
|
|
18
45
|
|
|
19
46
|
// --- 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 { props as props$1, formOptionsMixin } 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
|
const props = sortKeys({
|
|
15
14
|
...props$1,
|
|
16
|
-
label:
|
|
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_BOOLEAN, PROP_TYPE_ANY } from '../../constants/props';
|
|
4
|
-
import { makeProp } from '../../utils/props';
|
|
5
4
|
|
|
6
5
|
// --- Props ---
|
|
7
6
|
|
|
8
7
|
const props = {
|
|
9
|
-
disabled:
|
|
10
|
-
|
|
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,14 +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 {
|
|
4
|
+
import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_NUMBER } from '../../constants/props';
|
|
5
5
|
import { SLOT_NAME_FIRST } from '../../constants/slots';
|
|
6
6
|
import { from } from '../../utils/array';
|
|
7
7
|
import { attemptFocus, attemptBlur } from '../../utils/dom';
|
|
8
8
|
import { htmlOrText } from '../../utils/html';
|
|
9
9
|
import { isArray } from '../../utils/inspect';
|
|
10
10
|
import { sortKeys } from '../../utils/object';
|
|
11
|
-
import { makeProp } from '../../utils/props';
|
|
12
11
|
import { props as props$3, formControlMixin } from '../../mixins/form-control';
|
|
13
12
|
import { props as props$4, formCustomMixin } from '../../mixins/form-custom';
|
|
14
13
|
import { props as props$5, formSizeMixin } from '../../mixins/form-size';
|
|
@@ -29,11 +28,23 @@ const props = sortKeys({
|
|
|
29
28
|
...props$4,
|
|
30
29
|
...props$5,
|
|
31
30
|
...props$6,
|
|
32
|
-
ariaInvalid:
|
|
33
|
-
|
|
31
|
+
ariaInvalid: {
|
|
32
|
+
type: [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING],
|
|
33
|
+
required: false,
|
|
34
|
+
default: false
|
|
35
|
+
},
|
|
36
|
+
multiple: {
|
|
37
|
+
type: PROP_TYPE_BOOLEAN,
|
|
38
|
+
required: false,
|
|
39
|
+
default: false
|
|
40
|
+
},
|
|
34
41
|
// Browsers default size to `0`, which shows 4 rows in most browsers in multiple mode
|
|
35
42
|
// Size of `1` can bork out Firefox
|
|
36
|
-
selectSize:
|
|
43
|
+
selectSize: {
|
|
44
|
+
type: PROP_TYPE_NUMBER,
|
|
45
|
+
required: false,
|
|
46
|
+
default: 0
|
|
47
|
+
}
|
|
37
48
|
});
|
|
38
49
|
|
|
39
50
|
// --- Main component ---
|
|
@@ -3,15 +3,22 @@ import { PROP_TYPE_STRING } from '../../../constants/props';
|
|
|
3
3
|
import { get } from '../../../utils/get';
|
|
4
4
|
import { isPlainObject, isNull, isUndefined } from '../../../utils/inspect';
|
|
5
5
|
import { sortKeys } from '../../../utils/object';
|
|
6
|
-
import { makeProp } from '../../../utils/props';
|
|
7
6
|
import { props as props$1, formOptionsMixin } from '../../../mixins/form-options';
|
|
8
7
|
|
|
9
8
|
// --- Props ---
|
|
10
9
|
|
|
11
10
|
const props = sortKeys({
|
|
12
11
|
...props$1,
|
|
13
|
-
labelField:
|
|
14
|
-
|
|
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 {
|
|
3
|
+
import { PROP_TYPE_NUMBER, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
4
|
import { requestAF, isVisible, getCS, getStyle, setStyle } from '../../utils/dom';
|
|
5
5
|
import { isNull } from '../../utils/inspect';
|
|
6
6
|
import { mathMax, mathMin, mathCeil } 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 { props as props$2, formControlMixin } from '../../mixins/form-control';
|
|
11
10
|
import { formSelectionMixin } from '../../mixins/form-selection';
|
|
12
11
|
import { props as props$3, formSizeMixin } from '../../mixins/form-size';
|
|
@@ -26,15 +25,35 @@ const props = sortKeys({
|
|
|
26
25
|
...props$3,
|
|
27
26
|
...props$4,
|
|
28
27
|
...props$5,
|
|
29
|
-
maxRows:
|
|
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:
|
|
34
|
+
noAutoShrink: {
|
|
35
|
+
type: PROP_TYPE_BOOLEAN,
|
|
36
|
+
required: false,
|
|
37
|
+
default: false
|
|
38
|
+
},
|
|
32
39
|
// Disable the resize handle of textarea
|
|
33
|
-
noResize:
|
|
34
|
-
|
|
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:
|
|
52
|
+
wrap: {
|
|
53
|
+
type: PROP_TYPE_STRING,
|
|
54
|
+
required: false,
|
|
55
|
+
default: 'soft'
|
|
56
|
+
}
|
|
38
57
|
});
|
|
39
58
|
|
|
40
59
|
// --- Main component ---
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { extend } from '../../vue';
|
|
2
2
|
import { NAME_POPOVER } from '../../constants/components';
|
|
3
3
|
import { EVENT_NAME_CLICK } from '../../constants/events';
|
|
4
|
-
import { PROP_TYPE_STRING,
|
|
4
|
+
import { PROP_TYPE_STRING, PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_ARRAY } from '../../constants/props';
|
|
5
5
|
import { SLOT_NAME_TITLE } from '../../constants/slots';
|
|
6
|
-
import { makeProp } from '../../utils/props';
|
|
7
6
|
import { props as props$1, BTooltip } from '../tooltip/tooltip';
|
|
8
7
|
import { BVPopover } from './helpers/bv-popover';
|
|
9
8
|
import { sortKeys } from '../../utils/object';
|
|
@@ -12,13 +11,29 @@ import { sortKeys } from '../../utils/object';
|
|
|
12
11
|
|
|
13
12
|
const props = sortKeys({
|
|
14
13
|
...props$1,
|
|
15
|
-
content:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
content: {
|
|
15
|
+
type: PROP_TYPE_STRING,
|
|
16
|
+
required: false,
|
|
17
|
+
default: undefined
|
|
18
|
+
},
|
|
19
|
+
delay: {
|
|
20
|
+
type: [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
|
|
21
|
+
required: false,
|
|
22
|
+
default: () => ({
|
|
23
|
+
show: 50,
|
|
24
|
+
hide: 150
|
|
25
|
+
})
|
|
26
|
+
},
|
|
27
|
+
placement: {
|
|
28
|
+
type: PROP_TYPE_STRING,
|
|
29
|
+
required: false,
|
|
30
|
+
default: 'right'
|
|
31
|
+
},
|
|
32
|
+
triggers: {
|
|
33
|
+
type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
|
|
34
|
+
required: false,
|
|
35
|
+
default: EVENT_NAME_CLICK
|
|
36
|
+
}
|
|
22
37
|
});
|
|
23
38
|
|
|
24
39
|
// --- 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
|
const props = {
|
|
19
|
-
[MODEL_PROP_NAME_BUSY]:
|
|
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:
|
|
11
|
-
|
|
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
|
};
|