@gitlab/ui 126.3.4 → 126.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/alert/alert.js +9 -0
- package/dist/components/base/breadcrumb/breadcrumb.js +3 -0
- package/dist/components/base/breadcrumb/breadcrumb_item.js +15 -0
- package/dist/components/base/datepicker/datepicker.js +54 -0
- package/dist/components/base/daterange_picker/daterange_picker.js +70 -1
- package/dist/components/base/filtered_search/filtered_search.js +1 -1
- package/dist/components/base/form/form_input_group/form_input_group.js +9 -1
- package/dist/components/base/path/data.js +1 -1
- package/dist/components/base/search_box_by_click/search_box_by_click.js +9 -1
- package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +10 -2
- package/dist/directives/resize_observer/resize_observer.js +10 -3
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +7 -2
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +8 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +4 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +8 -4
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +3 -19
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +1 -16
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +8 -2
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +4 -0
- package/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +15 -7
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +15 -13
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +24 -21
- package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +10 -9
- package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +3 -0
- package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +29 -21
- package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -5
- package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +15 -13
- package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +15 -16
- package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +1 -18
- package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +8 -3
- package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +1 -1
- package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +13 -12
- package/dist/vendor/bootstrap-vue/src/utils/cache.js +35 -13
- package/dist/vendor/bootstrap-vue/src/utils/config-set.js +16 -11
- package/dist/vendor/bootstrap-vue/src/utils/config.js +4 -10
- package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +102 -3
- package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +3 -9
- package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +1 -3
- package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +22 -0
- package/dist/vendor/bootstrap-vue/src/utils/plugins.js +2 -21
- package/dist/vendor/bootstrap-vue/src/utils/router.js +15 -1
- package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +1 -1
- package/dist/vendor/bootstrap-vue/src/vue.js +16 -81
- package/package.json +6 -6
- package/src/components/base/alert/alert.vue +9 -0
- package/src/components/base/breadcrumb/breadcrumb.vue +3 -0
- package/src/components/base/breadcrumb/breadcrumb_item.vue +15 -0
- package/src/components/base/datepicker/datepicker.vue +54 -0
- package/src/components/base/daterange_picker/daterange_picker.vue +70 -1
- package/src/components/base/filtered_search/filtered_search.vue +1 -1
- package/src/components/base/form/form_input_group/form_input_group.vue +9 -1
- package/src/components/base/path/data.js +1 -1
- package/src/components/base/search_box_by_click/search_box_by_click.vue +9 -0
- package/src/components/dashboards/dashboard_panel/dashboard_panel.vue +27 -9
- package/src/directives/resize_observer/resize_observer.js +6 -0
- package/src/vendor/bootstrap-vue/src/components/modal/modal.js +6 -1
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +8 -0
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +4 -0
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +9 -4
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +3 -24
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +1 -20
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +8 -2
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +4 -0
- package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +15 -13
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +14 -13
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +16 -23
- package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +10 -9
- package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +4 -0
- package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +36 -26
- package/src/vendor/bootstrap-vue/src/constants/events.js +0 -5
- package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +17 -13
- package/src/vendor/bootstrap-vue/src/directives/visible/visible.js +13 -9
- package/src/vendor/bootstrap-vue/src/mixins/attrs.js +1 -17
- package/src/vendor/bootstrap-vue/src/mixins/dropdown.js +8 -3
- package/src/vendor/bootstrap-vue/src/mixins/has-listener.js +1 -1
- package/src/vendor/bootstrap-vue/src/mixins/listeners.js +14 -14
- package/src/vendor/bootstrap-vue/src/utils/cache.js +27 -7
- package/src/vendor/bootstrap-vue/src/utils/config-set.js +16 -11
- package/src/vendor/bootstrap-vue/src/utils/config.js +4 -10
- package/src/vendor/bootstrap-vue/src/utils/create-new-child-component.js +85 -2
- package/src/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +3 -10
- package/src/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +1 -4
- package/src/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +21 -0
- package/src/vendor/bootstrap-vue/src/utils/plugins.js +1 -26
- package/src/vendor/bootstrap-vue/src/utils/router.js +13 -1
- package/src/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +1 -1
- package/src/vendor/bootstrap-vue/src/vue.js +11 -98
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isVue3 } from '../vue';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Register a callback to be called when a Vue instance is destroyed/unmounted.
|
|
5
|
+
*
|
|
6
|
+
* For Vue 2: Uses $once with 'hook:destroyed' event
|
|
7
|
+
* For Vue 3: Uses scope.cleanups for proper effect scope cleanup
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} instance - The Vue instance to watch for destruction
|
|
10
|
+
* @param {Function} callback - The callback to run when the instance is destroyed
|
|
11
|
+
*/
|
|
12
|
+
const onInstanceDestroy = (instance, callback) => {
|
|
13
|
+
if (isVue3(instance)) {
|
|
14
|
+
// onScopeDispose is not available on instance and we do
|
|
15
|
+
// not want to import 'vue' in this file
|
|
16
|
+
instance.$.scope.cleanups.push(callback);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
instance.$once('hook:destroyed', callback);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { onInstanceDestroy };
|
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IS_JSDOM, HAS_WINDOW_SUPPORT } from '../constants/env';
|
|
1
|
+
import { HAS_WINDOW_SUPPORT } from '../constants/env';
|
|
3
2
|
import { setConfig } from './config-set';
|
|
4
|
-
import { warn } from './warn';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Checks if there are multiple instances of Vue, and warns (once) about possible issues.
|
|
8
|
-
* @param {object} Vue
|
|
9
|
-
*/
|
|
10
|
-
const checkMultipleVue = (() => {
|
|
11
|
-
let checkMultipleVueWarned = false;
|
|
12
|
-
const MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\n');
|
|
13
|
-
return Vue$1 => {
|
|
14
|
-
/* istanbul ignore next */
|
|
15
|
-
if (!checkMultipleVueWarned && Vue !== Vue$1 && !IS_JSDOM) {
|
|
16
|
-
warn(MULTIPLE_VUE_WARNING);
|
|
17
|
-
}
|
|
18
|
-
checkMultipleVueWarned = true;
|
|
19
|
-
};
|
|
20
|
-
})();
|
|
21
3
|
|
|
22
4
|
/**
|
|
23
5
|
* Plugin install factory function.
|
|
@@ -37,7 +19,6 @@ const installFactory = function () {
|
|
|
37
19
|
return;
|
|
38
20
|
}
|
|
39
21
|
install.installed = true;
|
|
40
|
-
checkMultipleVue(Vue);
|
|
41
22
|
setConfig(config, Vue);
|
|
42
23
|
registerComponents(Vue, components);
|
|
43
24
|
registerDirectives(Vue, directives);
|
|
@@ -140,4 +121,4 @@ const vueUse = VuePlugin => {
|
|
|
140
121
|
}
|
|
141
122
|
};
|
|
142
123
|
|
|
143
|
-
export {
|
|
124
|
+
export { installFactory, pluginFactory, registerComponent, registerComponents, registerDirective, registerDirectives, registerPlugins, vueUse };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RX_QUERY_START, RX_PLUS, RX_ENCODE_REVERSE, RX_ENCODED_COMMA } from '../constants/regex';
|
|
2
|
+
import { isVue3 } from '../vue';
|
|
2
3
|
import { isTag } from './dom';
|
|
3
4
|
import { isPlainObject, isUndefined, isNull, isArray, isString } from './inspect';
|
|
4
5
|
import { keys } from './object';
|
|
@@ -66,6 +67,18 @@ const parseQuery = query => {
|
|
|
66
67
|
return parsed;
|
|
67
68
|
};
|
|
68
69
|
const isLink = props => !!(props.href || props.to);
|
|
70
|
+
const routerLink = {
|
|
71
|
+
functional: true,
|
|
72
|
+
_name: 'router-link',
|
|
73
|
+
render(h, ctx) {
|
|
74
|
+
// $hasNormal is Vue.js 2 legacy way to check if default slot is scoped or not
|
|
75
|
+
// in bootstrap-vue codebase we never use scoped slots router-link rendering
|
|
76
|
+
return h('router-link', ctx.data, {
|
|
77
|
+
...ctx.children,
|
|
78
|
+
$hasNormal: true
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
69
82
|
const isRouterLink = tag => !!(tag && !isTag(tag, 'a'));
|
|
70
83
|
const computeTag = (_ref, thisOrParent) => {
|
|
71
84
|
let {
|
|
@@ -87,7 +100,8 @@ const computeTag = (_ref, thisOrParent) => {
|
|
|
87
100
|
// exists = names.some(name => !!thisOrParent.$options.components[name])
|
|
88
101
|
// And may want to cache the result for performance or we just let the render fail
|
|
89
102
|
// if the component is not registered
|
|
90
|
-
|
|
103
|
+
const actualRouterLink = isVue3(thisOrParent) ? routerLink : 'router-link';
|
|
104
|
+
return routerComponentName || (hasNuxt ? 'nuxt-link' : actualRouterLink);
|
|
91
105
|
};
|
|
92
106
|
const computeRel = function () {
|
|
93
107
|
let {
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import Vue from 'vue';
|
|
2
|
-
|
|
3
|
-
export { mergeData } from 'vue-functional-data-merge';
|
|
2
|
+
import { mergeData as mergeData$1 } from 'vue-functional-data-merge';
|
|
4
3
|
|
|
5
4
|
// --- Constants ---
|
|
6
5
|
const COMPONENT_UID_KEY = '_uid';
|
|
7
|
-
const
|
|
8
|
-
const REF_FOR_KEY =
|
|
9
|
-
|
|
10
|
-
let extend = Vue.extend.bind(Vue);
|
|
11
|
-
if (isVue3) {
|
|
12
|
-
const {
|
|
13
|
-
extend: originalExtend
|
|
14
|
-
} = Vue;
|
|
15
|
-
const KNOWN_COMPONENTS = ['router-link', 'transition', 'transition-group'];
|
|
6
|
+
const isGlobalVue3 = Vue.version.startsWith('3');
|
|
7
|
+
const REF_FOR_KEY = isGlobalVue3 ? 'ref_for' : 'refInFor';
|
|
8
|
+
if (isGlobalVue3) {
|
|
16
9
|
const originalVModelDynamicCreated = Vue.vModelDynamic.created;
|
|
17
10
|
const originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate;
|
|
18
11
|
let assignSymbol;
|
|
@@ -46,75 +39,17 @@ if (isVue3) {
|
|
|
46
39
|
el[assignSymbol] = function () {};
|
|
47
40
|
}
|
|
48
41
|
};
|
|
49
|
-
extend = function patchedBootstrapVueExtend(definition) {
|
|
50
|
-
if (typeof definition === 'object' && definition.render && !definition.__alreadyPatched) {
|
|
51
|
-
const originalRender = definition.render;
|
|
52
|
-
definition.__alreadyPatched = true;
|
|
53
|
-
definition.render = function (h) {
|
|
54
|
-
const patchedH = function (tag, dataObjOrChildren, rawSlots) {
|
|
55
|
-
const slots = rawSlots === undefined ? [] : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots];
|
|
56
|
-
const isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag);
|
|
57
|
-
const isSecondArgumentDataObject = dataObjOrChildren && typeof dataObjOrChildren === 'object' && !Array.isArray(dataObjOrChildren);
|
|
58
|
-
if (!isSecondArgumentDataObject) {
|
|
59
|
-
return h(tag, dataObjOrChildren, ...slots);
|
|
60
|
-
}
|
|
61
|
-
const {
|
|
62
|
-
attrs,
|
|
63
|
-
props,
|
|
64
|
-
...restData
|
|
65
|
-
} = dataObjOrChildren;
|
|
66
|
-
const normalizedData = {
|
|
67
|
-
...restData,
|
|
68
|
-
attrs,
|
|
69
|
-
props: isTag ? {} : props
|
|
70
|
-
};
|
|
71
|
-
if (tag === 'router-link' && !normalizedData.slots && !normalizedData.scopedSlots) {
|
|
72
|
-
// terrible workaround to fix router-link rendering with compat vue-router
|
|
73
|
-
normalizedData.scopedSlots = {
|
|
74
|
-
$hasNormal: () => {}
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
return h(tag, normalizedData, ...slots);
|
|
78
|
-
};
|
|
79
|
-
if (definition.functional) {
|
|
80
|
-
var _ctx$children, _ctx$children$default;
|
|
81
|
-
const ctx = arguments[1];
|
|
82
|
-
const patchedCtx = {
|
|
83
|
-
...ctx
|
|
84
|
-
};
|
|
85
|
-
patchedCtx.data = {
|
|
86
|
-
attrs: {
|
|
87
|
-
...(ctx.data.attrs || {})
|
|
88
|
-
},
|
|
89
|
-
props: {
|
|
90
|
-
...(ctx.data.props || {})
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
Object.keys(ctx.data || {}).forEach(key => {
|
|
94
|
-
if (ALLOWED_FIELDS_IN_DATA.includes(key)) {
|
|
95
|
-
patchedCtx.data[key] = ctx.data[key];
|
|
96
|
-
} else if (key in ctx.props) {
|
|
97
|
-
patchedCtx.data.props[key] = ctx.data[key];
|
|
98
|
-
} else if (!key.startsWith('on')) {
|
|
99
|
-
patchedCtx.data.attrs[key] = ctx.data[key];
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
const IGNORED_CHILDREN_KEYS = ['_ctx'];
|
|
103
|
-
const children = ((_ctx$children = ctx.children) === null || _ctx$children === void 0 ? void 0 : (_ctx$children$default = _ctx$children.default) === null || _ctx$children$default === void 0 ? void 0 : _ctx$children$default.call(_ctx$children)) || ctx.children;
|
|
104
|
-
if (children && Object.keys(patchedCtx.children).filter(k => !IGNORED_CHILDREN_KEYS.includes(k)).length === 0) {
|
|
105
|
-
delete patchedCtx.children;
|
|
106
|
-
} else {
|
|
107
|
-
patchedCtx.children = children;
|
|
108
|
-
}
|
|
109
|
-
patchedCtx.data.on = ctx.listeners;
|
|
110
|
-
return originalRender.call(this, patchedH, patchedCtx);
|
|
111
|
-
}
|
|
112
|
-
return originalRender.call(this, patchedH);
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
return originalExtend.call(this, definition);
|
|
116
|
-
}.bind(Vue);
|
|
117
42
|
}
|
|
118
|
-
const
|
|
43
|
+
const isVue3 = instance => Boolean(instance.$);
|
|
44
|
+
const extend = Vue.extend.bind(Vue);
|
|
45
|
+
function mergeData() {
|
|
46
|
+
var _result$attrs, _result$props;
|
|
47
|
+
const result = mergeData$1(...arguments);
|
|
48
|
+
return {
|
|
49
|
+
...result,
|
|
50
|
+
...((_result$attrs = result.attrs) !== null && _result$attrs !== void 0 ? _result$attrs : {}),
|
|
51
|
+
...((_result$props = result.props) !== null && _result$props !== void 0 ? _result$props : {})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
119
54
|
|
|
120
|
-
export { COMPONENT_UID_KEY, REF_FOR_KEY, extend, isVue3,
|
|
55
|
+
export { COMPONENT_UID_KEY, REF_FOR_KEY, extend, isGlobalVue3, isVue3, mergeData };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "126.
|
|
3
|
+
"version": "126.4.0",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@floating-ui/dom": "1.7.4",
|
|
69
69
|
"echarts": "^5.6.0",
|
|
70
|
-
"gridstack": "^12.
|
|
70
|
+
"gridstack": "^12.4.2",
|
|
71
71
|
"iframe-resizer": "^4.4.5",
|
|
72
72
|
"lodash": "^4.17.21",
|
|
73
73
|
"popper.js": "^1.16.1",
|
|
@@ -128,10 +128,10 @@
|
|
|
128
128
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
129
129
|
"acorn": "^8.15.0",
|
|
130
130
|
"acorn-walk": "^8.3.4",
|
|
131
|
-
"autoprefixer": "10.4.
|
|
131
|
+
"autoprefixer": "10.4.23",
|
|
132
132
|
"axe-playwright": "^2.2.2",
|
|
133
133
|
"babel-loader": "^9.2.1",
|
|
134
|
-
"cypress": "15.
|
|
134
|
+
"cypress": "15.8.1",
|
|
135
135
|
"cypress-real-events": "^1.15.0",
|
|
136
136
|
"dompurify": "^3.1.2",
|
|
137
137
|
"emoji-regex": "^10.6.0",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"rollup-plugin-string": "^3.0.0",
|
|
160
160
|
"rollup-plugin-svg": "^2.0.0",
|
|
161
161
|
"rollup-plugin-vue": "^5.1.9",
|
|
162
|
-
"sass": "^1.
|
|
162
|
+
"sass": "^1.97.2",
|
|
163
163
|
"sass-loader": "^10.5.2",
|
|
164
164
|
"sass-true": "^9",
|
|
165
165
|
"start-server-and-test": "^2.1.3",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"storybook-dark-mode": "4.0.2",
|
|
168
168
|
"style-dictionary": "^5.1.1",
|
|
169
169
|
"style-loader": "^4",
|
|
170
|
-
"tailwindcss": "3.4.
|
|
170
|
+
"tailwindcss": "3.4.19",
|
|
171
171
|
"vue": "2.7.16",
|
|
172
172
|
"vue-docgen-loader": "1.5.1",
|
|
173
173
|
"vue-loader": "^15.11.1",
|
|
@@ -18,6 +18,9 @@ export default {
|
|
|
18
18
|
GlButton,
|
|
19
19
|
},
|
|
20
20
|
props: {
|
|
21
|
+
/**
|
|
22
|
+
* The title text to display in the alert header.
|
|
23
|
+
*/
|
|
21
24
|
title: {
|
|
22
25
|
type: String,
|
|
23
26
|
required: false,
|
|
@@ -39,6 +42,9 @@ export default {
|
|
|
39
42
|
required: false,
|
|
40
43
|
default: () => translate('GlAlert.closeButtonTitle', 'Dismiss'),
|
|
41
44
|
},
|
|
45
|
+
/**
|
|
46
|
+
* The variant of the alert.
|
|
47
|
+
*/
|
|
42
48
|
variant: {
|
|
43
49
|
type: String,
|
|
44
50
|
required: false,
|
|
@@ -77,6 +83,9 @@ export default {
|
|
|
77
83
|
required: false,
|
|
78
84
|
default: '',
|
|
79
85
|
},
|
|
86
|
+
/**
|
|
87
|
+
* When true, the alert stays fixed at the top of its container.
|
|
88
|
+
*/
|
|
80
89
|
sticky: {
|
|
81
90
|
type: Boolean,
|
|
82
91
|
required: false,
|
|
@@ -9,21 +9,33 @@ export default {
|
|
|
9
9
|
},
|
|
10
10
|
inheritAttrs: false,
|
|
11
11
|
props: {
|
|
12
|
+
/**
|
|
13
|
+
* The text content to display in the breadcrumb item.
|
|
14
|
+
*/
|
|
12
15
|
text: {
|
|
13
16
|
type: String,
|
|
14
17
|
required: false,
|
|
15
18
|
default: null,
|
|
16
19
|
},
|
|
20
|
+
/**
|
|
21
|
+
* Vue Router location object or path string for navigation.
|
|
22
|
+
*/
|
|
17
23
|
to: {
|
|
18
24
|
type: [String, Object],
|
|
19
25
|
required: false,
|
|
20
26
|
default: null,
|
|
21
27
|
},
|
|
28
|
+
/**
|
|
29
|
+
* URL for the breadcrumb link when not using Vue Router.
|
|
30
|
+
*/
|
|
22
31
|
href: {
|
|
23
32
|
type: String,
|
|
24
33
|
required: false,
|
|
25
34
|
default: null,
|
|
26
35
|
},
|
|
36
|
+
/**
|
|
37
|
+
* Indicates the current page within the breadcrumb trail for accessibility.
|
|
38
|
+
*/
|
|
27
39
|
ariaCurrent: {
|
|
28
40
|
type: [String, Boolean],
|
|
29
41
|
required: false,
|
|
@@ -32,6 +44,9 @@ export default {
|
|
|
32
44
|
return [false, 'page'].indexOf(value) !== -1;
|
|
33
45
|
},
|
|
34
46
|
},
|
|
47
|
+
/**
|
|
48
|
+
* The size variant of the breadcrumb item.
|
|
49
|
+
*/
|
|
35
50
|
size: {
|
|
36
51
|
type: String,
|
|
37
52
|
required: false,
|
|
@@ -85,26 +85,41 @@ export default {
|
|
|
85
85
|
required: false,
|
|
86
86
|
default: '',
|
|
87
87
|
},
|
|
88
|
+
/**
|
|
89
|
+
* The currently selected date.
|
|
90
|
+
*/
|
|
88
91
|
value: {
|
|
89
92
|
type: Date,
|
|
90
93
|
required: false,
|
|
91
94
|
default: null,
|
|
92
95
|
},
|
|
96
|
+
/**
|
|
97
|
+
* The earliest selectable date.
|
|
98
|
+
*/
|
|
93
99
|
minDate: {
|
|
94
100
|
type: Date,
|
|
95
101
|
required: false,
|
|
96
102
|
default: null,
|
|
97
103
|
},
|
|
104
|
+
/**
|
|
105
|
+
* The latest selectable date.
|
|
106
|
+
*/
|
|
98
107
|
maxDate: {
|
|
99
108
|
type: Date,
|
|
100
109
|
required: false,
|
|
101
110
|
default: null,
|
|
102
111
|
},
|
|
112
|
+
/**
|
|
113
|
+
* Start date for range selection highlighting.
|
|
114
|
+
*/
|
|
103
115
|
startRange: {
|
|
104
116
|
type: Date,
|
|
105
117
|
required: false,
|
|
106
118
|
default: null,
|
|
107
119
|
},
|
|
120
|
+
/**
|
|
121
|
+
* End date for range selection highlighting.
|
|
122
|
+
*/
|
|
108
123
|
endRange: {
|
|
109
124
|
type: Date,
|
|
110
125
|
required: false,
|
|
@@ -118,16 +133,25 @@ export default {
|
|
|
118
133
|
required: false,
|
|
119
134
|
default: null,
|
|
120
135
|
},
|
|
136
|
+
/**
|
|
137
|
+
* First day of the week (0 = Sunday, 1 = Monday, etc.).
|
|
138
|
+
*/
|
|
121
139
|
firstDay: {
|
|
122
140
|
type: Number,
|
|
123
141
|
required: false,
|
|
124
142
|
default: () => defaultConfig.firstDayOfWeek || 0, // Defaults to 0 (Sunday)
|
|
125
143
|
},
|
|
144
|
+
/**
|
|
145
|
+
* Accessible label for the datepicker.
|
|
146
|
+
*/
|
|
126
147
|
ariaLabel: {
|
|
127
148
|
type: String,
|
|
128
149
|
required: false,
|
|
129
150
|
default: '',
|
|
130
151
|
},
|
|
152
|
+
/**
|
|
153
|
+
* Placeholder text for the input field.
|
|
154
|
+
*/
|
|
131
155
|
placeholder: {
|
|
132
156
|
type: String,
|
|
133
157
|
required: false,
|
|
@@ -141,16 +165,25 @@ export default {
|
|
|
141
165
|
required: false,
|
|
142
166
|
default: '',
|
|
143
167
|
},
|
|
168
|
+
/**
|
|
169
|
+
* Whether the datepicker is disabled.
|
|
170
|
+
*/
|
|
144
171
|
disabled: {
|
|
145
172
|
type: Boolean,
|
|
146
173
|
required: false,
|
|
147
174
|
default: false,
|
|
148
175
|
},
|
|
176
|
+
/**
|
|
177
|
+
* Whether to display the default input field.
|
|
178
|
+
*/
|
|
149
179
|
displayField: {
|
|
150
180
|
type: Boolean,
|
|
151
181
|
required: false,
|
|
152
182
|
default: true,
|
|
153
183
|
},
|
|
184
|
+
/**
|
|
185
|
+
* Whether the datepicker should be open on mount.
|
|
186
|
+
*/
|
|
154
187
|
startOpened: {
|
|
155
188
|
type: Boolean,
|
|
156
189
|
required: false,
|
|
@@ -164,31 +197,49 @@ export default {
|
|
|
164
197
|
required: false,
|
|
165
198
|
default: null,
|
|
166
199
|
},
|
|
200
|
+
/**
|
|
201
|
+
* Internationalization object for Pikaday labels and month/day names.
|
|
202
|
+
*/
|
|
167
203
|
i18n: {
|
|
168
204
|
type: Object,
|
|
169
205
|
required: false,
|
|
170
206
|
default: null,
|
|
171
207
|
},
|
|
208
|
+
/**
|
|
209
|
+
* Additional CSS class for the Pikaday calendar theme.
|
|
210
|
+
*/
|
|
172
211
|
theme: {
|
|
173
212
|
type: String,
|
|
174
213
|
required: false,
|
|
175
214
|
default: '',
|
|
176
215
|
},
|
|
216
|
+
/**
|
|
217
|
+
* Whether to show a clear button when a date is selected.
|
|
218
|
+
*/
|
|
177
219
|
showClearButton: {
|
|
178
220
|
type: Boolean,
|
|
179
221
|
required: false,
|
|
180
222
|
default: false,
|
|
181
223
|
},
|
|
224
|
+
/**
|
|
225
|
+
* The id attribute for the input element.
|
|
226
|
+
*/
|
|
182
227
|
inputId: {
|
|
183
228
|
type: String,
|
|
184
229
|
required: false,
|
|
185
230
|
default: null,
|
|
186
231
|
},
|
|
232
|
+
/**
|
|
233
|
+
* Accessible label for the input element.
|
|
234
|
+
*/
|
|
187
235
|
inputLabel: {
|
|
188
236
|
type: String,
|
|
189
237
|
required: false,
|
|
190
238
|
default: 'Enter date',
|
|
191
239
|
},
|
|
240
|
+
/**
|
|
241
|
+
* The name attribute for the input element.
|
|
242
|
+
*/
|
|
192
243
|
inputName: {
|
|
193
244
|
type: String,
|
|
194
245
|
required: false,
|
|
@@ -203,6 +254,9 @@ export default {
|
|
|
203
254
|
default: null,
|
|
204
255
|
validator: (value) => Object.keys(datepickerWidthOptionsMap).includes(value),
|
|
205
256
|
},
|
|
257
|
+
/**
|
|
258
|
+
* Validation state of the input. `true` for valid, `false` for invalid, `null` for no validation styling.
|
|
259
|
+
*/
|
|
206
260
|
state: {
|
|
207
261
|
type: Boolean,
|
|
208
262
|
required: false,
|