@coreui/vue-pro 4.0.2 → 4.1.1
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/README.md +1 -1
- package/dist/components/carousel/CCarousel.d.ts +2 -2
- package/dist/components/collapse/CCollapse.d.ts +10 -0
- package/dist/components/element-cover/index.d.ts +6 -0
- package/dist/components/form/CFormCheck.d.ts +7 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/modal/CModal.d.ts +2 -2
- package/dist/components/placeholder/CPlaceholder.d.ts +124 -0
- package/dist/components/placeholder/index.d.ts +6 -0
- package/dist/components/popover/CPopover.d.ts +2 -2
- package/dist/components/smart-table/CSmartTable.d.ts +5 -11
- package/dist/components/smart-table/CSmartTableHead.d.ts +7 -3
- package/dist/components/table/CTable.d.ts +2 -2
- package/dist/components/widgets/CWidgetStatsB.d.ts +2 -2
- package/dist/components/widgets/CWidgetStatsF.d.ts +2 -2
- package/dist/directives/index.d.ts +3 -2
- package/dist/directives/v-c-placeholder.d.ts +6 -0
- package/dist/directives/v-c-visible.d.ts +6 -0
- package/dist/index.es.js +693 -441
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +696 -439
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
- package/src/components/accordion/__tests__/__snapshots__/CAccordionBody.spec.ts.snap +1 -1
- package/src/components/button/CButton.ts +1 -0
- package/src/components/collapse/CCollapse.ts +49 -21
- package/src/components/collapse/__test__/__snapshots__/CCollapse.spec.ts.snap +1 -1
- package/src/components/element-cover/index.ts +10 -0
- package/src/components/form/CFormCheck.ts +9 -19
- package/src/components/form/CFormInput.ts +5 -5
- package/src/components/form/CFormRange.ts +2 -2
- package/src/components/form/CFormSelect.ts +3 -4
- package/src/components/form/CFormSwitch.ts +1 -1
- package/src/components/form/CFormTextarea.ts +1 -7
- package/src/components/form/__tests__/__snapshots__/CFormInput.spec.ts.snap +3 -3
- package/src/components/grid/CCol.ts +8 -8
- package/src/components/grid/CContainer.ts +3 -3
- package/src/components/grid/CRow.ts +6 -6
- package/src/components/index.ts +2 -0
- package/src/components/modal/CModal.ts +8 -3
- package/src/components/offcanvas/COffcanvas.ts +30 -20
- package/src/components/offcanvas/__tests__/COffcanvas.spec.ts +1 -1
- package/src/components/offcanvas/__tests__/__snapshots__/COffcanvas.spec.ts.snap +2 -2
- package/src/components/placeholder/CPlaceholder.ts +139 -0
- package/src/components/placeholder/__tests__/CPlaceholder.spec.ts +44 -0
- package/src/components/placeholder/__tests__/__snapshots__/CPlaceholder.spec.ts.snap +15 -0
- package/src/components/placeholder/index.ts +10 -0
- package/src/components/smart-table/CSmartTable.ts +38 -36
- package/src/components/smart-table/CSmartTableHead.ts +54 -44
- package/src/directives/index.ts +3 -2
- package/src/directives/v-c-placeholder.ts +32 -0
- package/src/directives/v-c-visible.ts +33 -0
- package/src/index.ts +2 -1
package/dist/index.js
CHANGED
|
@@ -36,9 +36,45 @@ const CAccordion = vue.defineComponent({
|
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
38
|
|
|
39
|
+
const vVisible = {
|
|
40
|
+
beforeMount(el, { value }, { transition }) {
|
|
41
|
+
el._vod = el.style.display === 'none' ? '' : el.style.display;
|
|
42
|
+
if (transition && value) {
|
|
43
|
+
transition.beforeEnter(el);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
mounted(el, { value }, { transition }) {
|
|
47
|
+
if (transition && value) {
|
|
48
|
+
transition.enter(el);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
updated(el, { value, oldValue }, { transition }) {
|
|
52
|
+
if (!value === !oldValue)
|
|
53
|
+
return;
|
|
54
|
+
if (transition) {
|
|
55
|
+
if (value) {
|
|
56
|
+
transition.beforeEnter(el);
|
|
57
|
+
transition.enter(el);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
transition.leave(el, () => {
|
|
61
|
+
// setDisplay(el, false)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
|
|
39
68
|
const CCollapse = vue.defineComponent({
|
|
40
69
|
name: 'CCollapse',
|
|
41
70
|
props: {
|
|
71
|
+
/**
|
|
72
|
+
* Set horizontal collapsing to transition the width instead of height.
|
|
73
|
+
*/
|
|
74
|
+
horizontal: {
|
|
75
|
+
type: Boolean,
|
|
76
|
+
required: false,
|
|
77
|
+
},
|
|
42
78
|
/**
|
|
43
79
|
* Toggle the visibility of component.
|
|
44
80
|
*/
|
|
@@ -58,42 +94,58 @@ const CCollapse = vue.defineComponent({
|
|
|
58
94
|
'show',
|
|
59
95
|
],
|
|
60
96
|
setup(props, { slots, emit }) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
97
|
+
const collapsing = vue.ref(false);
|
|
98
|
+
const show = vue.ref(props.visible);
|
|
99
|
+
const handleBeforeEnter = () => {
|
|
100
|
+
collapsing.value = true;
|
|
64
101
|
};
|
|
65
102
|
const handleEnter = (el, done) => {
|
|
66
103
|
emit('show');
|
|
67
104
|
el.addEventListener('transitionend', () => {
|
|
68
|
-
el.classList.add('collapse', 'show');
|
|
69
105
|
done();
|
|
70
106
|
});
|
|
71
|
-
|
|
107
|
+
setTimeout(() => {
|
|
108
|
+
if (props.horizontal) {
|
|
109
|
+
el.style.width = `${el.scrollWidth}px`;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
el.style.height = `${el.scrollHeight}px`;
|
|
113
|
+
}, 1);
|
|
72
114
|
};
|
|
73
115
|
const handleAfterEnter = (el) => {
|
|
74
|
-
|
|
75
|
-
|
|
116
|
+
show.value = true;
|
|
117
|
+
collapsing.value = false;
|
|
118
|
+
props.horizontal ? el.style.removeProperty('width') : el.style.removeProperty('height');
|
|
76
119
|
};
|
|
77
120
|
const handleBeforeLeave = (el) => {
|
|
78
|
-
|
|
121
|
+
collapsing.value = true;
|
|
122
|
+
show.value = false;
|
|
123
|
+
if (props.horizontal) {
|
|
124
|
+
el.style.width = `${el.scrollWidth}px`;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
79
127
|
el.style.height = `${el.scrollHeight}px`;
|
|
80
128
|
};
|
|
81
129
|
const handleLeave = (el, done) => {
|
|
82
130
|
emit('hide');
|
|
83
|
-
el.classList.remove('collapse', 'show');
|
|
84
|
-
el.classList.add('collapsing');
|
|
85
131
|
el.addEventListener('transitionend', () => {
|
|
86
132
|
done();
|
|
87
133
|
});
|
|
88
|
-
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
if (props.horizontal) {
|
|
136
|
+
el.style.width = '0px';
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
el.style.height = '0px';
|
|
140
|
+
}, 1);
|
|
89
141
|
};
|
|
90
142
|
const handleAfterLeave = (el) => {
|
|
91
|
-
|
|
92
|
-
el.
|
|
143
|
+
collapsing.value = false;
|
|
144
|
+
props.horizontal ? el.style.removeProperty('width') : el.style.removeProperty('height');
|
|
93
145
|
};
|
|
94
146
|
return () => vue.h(vue.Transition, {
|
|
95
|
-
|
|
96
|
-
onBeforeEnter: (
|
|
147
|
+
css: false,
|
|
148
|
+
onBeforeEnter: () => handleBeforeEnter(),
|
|
97
149
|
onEnter: (el, done) => handleEnter(el, done),
|
|
98
150
|
onAfterEnter: (el) => handleAfterEnter(el),
|
|
99
151
|
onBeforeLeave: (el) => handleBeforeLeave(el),
|
|
@@ -101,12 +153,10 @@ const CCollapse = vue.defineComponent({
|
|
|
101
153
|
onAfterLeave: (el) => handleAfterLeave(el),
|
|
102
154
|
}, () => vue.withDirectives(vue.h('div', {
|
|
103
155
|
class: [
|
|
104
|
-
'collapse',
|
|
105
|
-
{
|
|
106
|
-
show: props.visible,
|
|
107
|
-
},
|
|
156
|
+
collapsing.value ? 'collapsing' : 'collapse',
|
|
157
|
+
{ 'collapse-horizontal': props.horizontal, show: show.value },
|
|
108
158
|
],
|
|
109
|
-
}, slots.default && slots.default()), [[
|
|
159
|
+
}, slots.default && slots.default()), [[vVisible, props.visible]]));
|
|
110
160
|
},
|
|
111
161
|
});
|
|
112
162
|
|
|
@@ -800,6 +850,7 @@ const CButton = vue.defineComponent({
|
|
|
800
850
|
],
|
|
801
851
|
disabled: props.disabled && props.component !== 'a',
|
|
802
852
|
...(props.component === 'a' && props.disabled && { 'aria-disabled': true, tabIndex: -1 }),
|
|
853
|
+
...(props.component === 'a' && props.href && { href: props.href }),
|
|
803
854
|
}, slots.default && slots.default());
|
|
804
855
|
},
|
|
805
856
|
});
|
|
@@ -1614,29 +1665,32 @@ function getBasePlacement(placement) {
|
|
|
1614
1665
|
return placement.split('-')[0];
|
|
1615
1666
|
}
|
|
1616
1667
|
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1668
|
+
var max = Math.max;
|
|
1669
|
+
var min = Math.min;
|
|
1670
|
+
var round = Math.round;
|
|
1671
|
+
|
|
1672
|
+
function getBoundingClientRect(element, includeScale) {
|
|
1673
|
+
if (includeScale === void 0) {
|
|
1674
|
+
includeScale = false;
|
|
1675
|
+
}
|
|
1620
1676
|
|
|
1621
1677
|
var rect = element.getBoundingClientRect();
|
|
1622
1678
|
var scaleX = 1;
|
|
1623
|
-
var scaleY = 1;
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
// }
|
|
1639
|
-
// }
|
|
1679
|
+
var scaleY = 1;
|
|
1680
|
+
|
|
1681
|
+
if (isHTMLElement(element) && includeScale) {
|
|
1682
|
+
var offsetHeight = element.offsetHeight;
|
|
1683
|
+
var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
|
|
1684
|
+
// Fallback to 1 in case both values are `0`
|
|
1685
|
+
|
|
1686
|
+
if (offsetWidth > 0) {
|
|
1687
|
+
scaleX = round(rect.width) / offsetWidth || 1;
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
if (offsetHeight > 0) {
|
|
1691
|
+
scaleY = round(rect.height) / offsetHeight || 1;
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1640
1694
|
|
|
1641
1695
|
return {
|
|
1642
1696
|
width: rect.width / scaleX,
|
|
@@ -1791,13 +1845,13 @@ function getMainAxisFromPlacement(placement) {
|
|
|
1791
1845
|
return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
|
|
1792
1846
|
}
|
|
1793
1847
|
|
|
1794
|
-
var max = Math.max;
|
|
1795
|
-
var min = Math.min;
|
|
1796
|
-
var round = Math.round;
|
|
1797
|
-
|
|
1798
1848
|
function within(min$1, value, max$1) {
|
|
1799
1849
|
return max(min$1, min(value, max$1));
|
|
1800
1850
|
}
|
|
1851
|
+
function withinMaxClamp(min, value, max) {
|
|
1852
|
+
var v = within(min, value, max);
|
|
1853
|
+
return v > max ? max : v;
|
|
1854
|
+
}
|
|
1801
1855
|
|
|
1802
1856
|
function getFreshSideObject() {
|
|
1803
1857
|
return {
|
|
@@ -1929,8 +1983,8 @@ function roundOffsetsByDPR(_ref) {
|
|
|
1929
1983
|
var win = window;
|
|
1930
1984
|
var dpr = win.devicePixelRatio || 1;
|
|
1931
1985
|
return {
|
|
1932
|
-
x: round(
|
|
1933
|
-
y: round(
|
|
1986
|
+
x: round(x * dpr) / dpr || 0,
|
|
1987
|
+
y: round(y * dpr) / dpr || 0
|
|
1934
1988
|
};
|
|
1935
1989
|
}
|
|
1936
1990
|
|
|
@@ -1945,7 +1999,8 @@ function mapToStyles(_ref2) {
|
|
|
1945
1999
|
position = _ref2.position,
|
|
1946
2000
|
gpuAcceleration = _ref2.gpuAcceleration,
|
|
1947
2001
|
adaptive = _ref2.adaptive,
|
|
1948
|
-
roundOffsets = _ref2.roundOffsets
|
|
2002
|
+
roundOffsets = _ref2.roundOffsets,
|
|
2003
|
+
isFixed = _ref2.isFixed;
|
|
1949
2004
|
|
|
1950
2005
|
var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
|
|
1951
2006
|
_ref3$x = _ref3.x,
|
|
@@ -1977,16 +2032,18 @@ function mapToStyles(_ref2) {
|
|
|
1977
2032
|
offsetParent = offsetParent;
|
|
1978
2033
|
|
|
1979
2034
|
if (placement === top || (placement === left || placement === right) && variation === end) {
|
|
1980
|
-
sideY = bottom;
|
|
1981
|
-
|
|
1982
|
-
|
|
2035
|
+
sideY = bottom;
|
|
2036
|
+
var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
|
|
2037
|
+
offsetParent[heightProp];
|
|
2038
|
+
y -= offsetY - popperRect.height;
|
|
1983
2039
|
y *= gpuAcceleration ? 1 : -1;
|
|
1984
2040
|
}
|
|
1985
2041
|
|
|
1986
2042
|
if (placement === left || (placement === top || placement === bottom) && variation === end) {
|
|
1987
|
-
sideX = right;
|
|
1988
|
-
|
|
1989
|
-
|
|
2043
|
+
sideX = right;
|
|
2044
|
+
var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
|
|
2045
|
+
offsetParent[widthProp];
|
|
2046
|
+
x -= offsetX - popperRect.width;
|
|
1990
2047
|
x *= gpuAcceleration ? 1 : -1;
|
|
1991
2048
|
}
|
|
1992
2049
|
}
|
|
@@ -2029,7 +2086,8 @@ function computeStyles(_ref4) {
|
|
|
2029
2086
|
variation: getVariation(state.placement),
|
|
2030
2087
|
popper: state.elements.popper,
|
|
2031
2088
|
popperRect: state.rects.popper,
|
|
2032
|
-
gpuAcceleration: gpuAcceleration
|
|
2089
|
+
gpuAcceleration: gpuAcceleration,
|
|
2090
|
+
isFixed: state.options.strategy === 'fixed'
|
|
2033
2091
|
};
|
|
2034
2092
|
|
|
2035
2093
|
if (state.modifiersData.popperOffsets != null) {
|
|
@@ -2287,7 +2345,7 @@ function getInnerBoundingClientRect(element) {
|
|
|
2287
2345
|
}
|
|
2288
2346
|
|
|
2289
2347
|
function getClientRectFromMixedType(element, clippingParent) {
|
|
2290
|
-
return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) :
|
|
2348
|
+
return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
|
|
2291
2349
|
} // A "clipping parent" is an overflowable container with the characteristic of
|
|
2292
2350
|
// clipping (or hiding) overflowing elements with a position different from
|
|
2293
2351
|
// `initial`
|
|
@@ -2304,7 +2362,7 @@ function getClippingParents(element) {
|
|
|
2304
2362
|
|
|
2305
2363
|
|
|
2306
2364
|
return clippingParents.filter(function (clippingParent) {
|
|
2307
|
-
return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
|
|
2365
|
+
return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body' && (canEscapeClipping ? getComputedStyle$1(clippingParent).position !== 'static' : true);
|
|
2308
2366
|
});
|
|
2309
2367
|
} // Gets the maximum area that the element is visible in due to any number of
|
|
2310
2368
|
// clipping parents
|
|
@@ -2804,6 +2862,14 @@ function preventOverflow(_ref) {
|
|
|
2804
2862
|
var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
|
|
2805
2863
|
placement: state.placement
|
|
2806
2864
|
})) : tetherOffset;
|
|
2865
|
+
var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
|
|
2866
|
+
mainAxis: tetherOffsetValue,
|
|
2867
|
+
altAxis: tetherOffsetValue
|
|
2868
|
+
} : Object.assign({
|
|
2869
|
+
mainAxis: 0,
|
|
2870
|
+
altAxis: 0
|
|
2871
|
+
}, tetherOffsetValue);
|
|
2872
|
+
var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
|
|
2807
2873
|
var data = {
|
|
2808
2874
|
x: 0,
|
|
2809
2875
|
y: 0
|
|
@@ -2813,13 +2879,15 @@ function preventOverflow(_ref) {
|
|
|
2813
2879
|
return;
|
|
2814
2880
|
}
|
|
2815
2881
|
|
|
2816
|
-
if (checkMainAxis
|
|
2882
|
+
if (checkMainAxis) {
|
|
2883
|
+
var _offsetModifierState$;
|
|
2884
|
+
|
|
2817
2885
|
var mainSide = mainAxis === 'y' ? top : left;
|
|
2818
2886
|
var altSide = mainAxis === 'y' ? bottom : right;
|
|
2819
2887
|
var len = mainAxis === 'y' ? 'height' : 'width';
|
|
2820
2888
|
var offset = popperOffsets[mainAxis];
|
|
2821
|
-
var min$1 =
|
|
2822
|
-
var max$1 =
|
|
2889
|
+
var min$1 = offset + overflow[mainSide];
|
|
2890
|
+
var max$1 = offset - overflow[altSide];
|
|
2823
2891
|
var additive = tether ? -popperRect[len] / 2 : 0;
|
|
2824
2892
|
var minLen = variation === start ? referenceRect[len] : popperRect[len];
|
|
2825
2893
|
var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
|
|
@@ -2839,36 +2907,45 @@ function preventOverflow(_ref) {
|
|
|
2839
2907
|
// width or height)
|
|
2840
2908
|
|
|
2841
2909
|
var arrowLen = within(0, referenceRect[len], arrowRect[len]);
|
|
2842
|
-
var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin -
|
|
2843
|
-
var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax +
|
|
2910
|
+
var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
|
|
2911
|
+
var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
|
|
2844
2912
|
var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
|
|
2845
2913
|
var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
|
|
2846
|
-
var offsetModifierValue =
|
|
2847
|
-
var tetherMin =
|
|
2848
|
-
var tetherMax =
|
|
2914
|
+
var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
|
|
2915
|
+
var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
|
|
2916
|
+
var tetherMax = offset + maxOffset - offsetModifierValue;
|
|
2917
|
+
var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
|
|
2918
|
+
popperOffsets[mainAxis] = preventedOffset;
|
|
2919
|
+
data[mainAxis] = preventedOffset - offset;
|
|
2920
|
+
}
|
|
2849
2921
|
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
popperOffsets[mainAxis] = preventedOffset;
|
|
2853
|
-
data[mainAxis] = preventedOffset - offset;
|
|
2854
|
-
}
|
|
2922
|
+
if (checkAltAxis) {
|
|
2923
|
+
var _offsetModifierState$2;
|
|
2855
2924
|
|
|
2856
|
-
|
|
2857
|
-
var _mainSide = mainAxis === 'x' ? top : left;
|
|
2925
|
+
var _mainSide = mainAxis === 'x' ? top : left;
|
|
2858
2926
|
|
|
2859
|
-
|
|
2927
|
+
var _altSide = mainAxis === 'x' ? bottom : right;
|
|
2860
2928
|
|
|
2861
|
-
|
|
2929
|
+
var _offset = popperOffsets[altAxis];
|
|
2862
2930
|
|
|
2863
|
-
|
|
2931
|
+
var _len = altAxis === 'y' ? 'height' : 'width';
|
|
2864
2932
|
|
|
2865
|
-
|
|
2933
|
+
var _min = _offset + overflow[_mainSide];
|
|
2866
2934
|
|
|
2867
|
-
|
|
2935
|
+
var _max = _offset - overflow[_altSide];
|
|
2868
2936
|
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2937
|
+
var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
|
|
2938
|
+
|
|
2939
|
+
var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
|
|
2940
|
+
|
|
2941
|
+
var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
|
|
2942
|
+
|
|
2943
|
+
var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
|
|
2944
|
+
|
|
2945
|
+
var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
|
|
2946
|
+
|
|
2947
|
+
popperOffsets[altAxis] = _preventedOffset;
|
|
2948
|
+
data[altAxis] = _preventedOffset - _offset;
|
|
2872
2949
|
}
|
|
2873
2950
|
|
|
2874
2951
|
state.modifiersData[name] = data;
|
|
@@ -2900,8 +2977,8 @@ function getNodeScroll(node) {
|
|
|
2900
2977
|
|
|
2901
2978
|
function isElementScaled(element) {
|
|
2902
2979
|
var rect = element.getBoundingClientRect();
|
|
2903
|
-
var scaleX = rect.width / element.offsetWidth || 1;
|
|
2904
|
-
var scaleY = rect.height / element.offsetHeight || 1;
|
|
2980
|
+
var scaleX = round(rect.width) / element.offsetWidth || 1;
|
|
2981
|
+
var scaleY = round(rect.height) / element.offsetHeight || 1;
|
|
2905
2982
|
return scaleX !== 1 || scaleY !== 1;
|
|
2906
2983
|
} // Returns the composite rect of an element relative to its offsetParent.
|
|
2907
2984
|
// Composite means it takes into account transforms as well as layout.
|
|
@@ -2913,9 +2990,9 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
|
|
|
2913
2990
|
}
|
|
2914
2991
|
|
|
2915
2992
|
var isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
2916
|
-
isHTMLElement(offsetParent) && isElementScaled(offsetParent);
|
|
2993
|
+
var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
|
|
2917
2994
|
var documentElement = getDocumentElement(offsetParent);
|
|
2918
|
-
var rect = getBoundingClientRect(elementOrVirtualElement);
|
|
2995
|
+
var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
|
|
2919
2996
|
var scroll = {
|
|
2920
2997
|
scrollLeft: 0,
|
|
2921
2998
|
scrollTop: 0
|
|
@@ -2932,7 +3009,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
|
|
|
2932
3009
|
}
|
|
2933
3010
|
|
|
2934
3011
|
if (isHTMLElement(offsetParent)) {
|
|
2935
|
-
offsets = getBoundingClientRect(offsetParent);
|
|
3012
|
+
offsets = getBoundingClientRect(offsetParent, true);
|
|
2936
3013
|
offsets.x += offsetParent.clientLeft;
|
|
2937
3014
|
offsets.y += offsetParent.clientTop;
|
|
2938
3015
|
} else if (documentElement) {
|
|
@@ -3852,6 +3929,176 @@ const CDropdownPlugin = {
|
|
|
3852
3929
|
},
|
|
3853
3930
|
};
|
|
3854
3931
|
|
|
3932
|
+
const CSpinner = vue.defineComponent({
|
|
3933
|
+
name: 'CSpinner',
|
|
3934
|
+
props: {
|
|
3935
|
+
/**
|
|
3936
|
+
* Sets the color context of the component to one of CoreUI’s themed colors.
|
|
3937
|
+
*
|
|
3938
|
+
* @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light'
|
|
3939
|
+
*/
|
|
3940
|
+
color: {
|
|
3941
|
+
type: String,
|
|
3942
|
+
default: undefined,
|
|
3943
|
+
required: false,
|
|
3944
|
+
validator: (value) => {
|
|
3945
|
+
return [
|
|
3946
|
+
'primary',
|
|
3947
|
+
'secondary',
|
|
3948
|
+
'success',
|
|
3949
|
+
'danger',
|
|
3950
|
+
'warning',
|
|
3951
|
+
'info',
|
|
3952
|
+
'dark',
|
|
3953
|
+
'light',
|
|
3954
|
+
].includes(value);
|
|
3955
|
+
},
|
|
3956
|
+
},
|
|
3957
|
+
/**
|
|
3958
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
3959
|
+
*/
|
|
3960
|
+
component: {
|
|
3961
|
+
type: String,
|
|
3962
|
+
default: 'div',
|
|
3963
|
+
required: false,
|
|
3964
|
+
},
|
|
3965
|
+
/**
|
|
3966
|
+
* Size the component small.
|
|
3967
|
+
*
|
|
3968
|
+
* @values 'sm'
|
|
3969
|
+
*/
|
|
3970
|
+
size: {
|
|
3971
|
+
type: String,
|
|
3972
|
+
default: undefined,
|
|
3973
|
+
required: false,
|
|
3974
|
+
validator: (value) => {
|
|
3975
|
+
return value === 'sm';
|
|
3976
|
+
},
|
|
3977
|
+
},
|
|
3978
|
+
/**
|
|
3979
|
+
* Set the button variant to an outlined button or a ghost button.
|
|
3980
|
+
*
|
|
3981
|
+
* @values 'border', 'grow'
|
|
3982
|
+
*/
|
|
3983
|
+
variant: {
|
|
3984
|
+
type: String,
|
|
3985
|
+
default: 'border',
|
|
3986
|
+
required: false,
|
|
3987
|
+
validator: (value) => {
|
|
3988
|
+
return ['border', 'grow'].includes(value);
|
|
3989
|
+
},
|
|
3990
|
+
},
|
|
3991
|
+
/**
|
|
3992
|
+
* Set visually hidden label for accessibility purposes.
|
|
3993
|
+
*/
|
|
3994
|
+
visuallyHiddenLabel: {
|
|
3995
|
+
type: String,
|
|
3996
|
+
default: 'Loading...',
|
|
3997
|
+
required: false,
|
|
3998
|
+
},
|
|
3999
|
+
},
|
|
4000
|
+
setup(props) {
|
|
4001
|
+
return () => vue.h(props.component, {
|
|
4002
|
+
class: [
|
|
4003
|
+
`spinner-${props.variant}`,
|
|
4004
|
+
`text-${props.color}`,
|
|
4005
|
+
props.size && `spinner-${props.variant}-${props.size}`,
|
|
4006
|
+
],
|
|
4007
|
+
role: 'status',
|
|
4008
|
+
}, vue.h('span', { class: ['visually-hidden'] }, props.visuallyHiddenLabel));
|
|
4009
|
+
},
|
|
4010
|
+
});
|
|
4011
|
+
|
|
4012
|
+
const CSpinnerPlugin = {
|
|
4013
|
+
install: (app) => {
|
|
4014
|
+
app.component(CSpinner.name, CSpinner);
|
|
4015
|
+
},
|
|
4016
|
+
};
|
|
4017
|
+
|
|
4018
|
+
const CElementCover = vue.defineComponent({
|
|
4019
|
+
name: 'CElementCover',
|
|
4020
|
+
props: {
|
|
4021
|
+
/**
|
|
4022
|
+
* Array of custom boundaries. Use to create custom cover area (instead of parent element area). Area is defined by four sides: 'top', 'bottom', 'right', 'left'. If side is not defined by any custom boundary it is equal to parent element boundary. Each custom boundary is object with keys:
|
|
4023
|
+
* - sides (array) - select boundaries of element to define boundaries. Sides names: 'top', 'bottom', 'right', 'left'.
|
|
4024
|
+
* - query (string) - query used to get element which define boundaries. Search will be done only inside parent element, by parent.querySelector(query) function. [docs]
|
|
4025
|
+
*
|
|
4026
|
+
* @type {sides: string[], query: string}[]
|
|
4027
|
+
*/
|
|
4028
|
+
boundaries: {
|
|
4029
|
+
// TODO: check if this is correct, TJ
|
|
4030
|
+
type: Array,
|
|
4031
|
+
require: true,
|
|
4032
|
+
},
|
|
4033
|
+
/**
|
|
4034
|
+
* Opacity of the cover. [docs]
|
|
4035
|
+
*
|
|
4036
|
+
* @type number
|
|
4037
|
+
*/
|
|
4038
|
+
opacity: {
|
|
4039
|
+
type: Number,
|
|
4040
|
+
require: false,
|
|
4041
|
+
},
|
|
4042
|
+
},
|
|
4043
|
+
setup(props) {
|
|
4044
|
+
let containerCoords = {};
|
|
4045
|
+
const elementRef = vue.ref();
|
|
4046
|
+
const getCustomBoundaries = () => {
|
|
4047
|
+
if (!props.boundaries || elementRef === null) {
|
|
4048
|
+
return {};
|
|
4049
|
+
}
|
|
4050
|
+
const parent = elementRef.value.parentElement;
|
|
4051
|
+
if (!parent) {
|
|
4052
|
+
return {};
|
|
4053
|
+
}
|
|
4054
|
+
const parentCoords = parent.getBoundingClientRect();
|
|
4055
|
+
const customBoundaries = {};
|
|
4056
|
+
props.boundaries.forEach((value) => {
|
|
4057
|
+
const element = parent.querySelector(value.query);
|
|
4058
|
+
if (!element || !value.sides) {
|
|
4059
|
+
return;
|
|
4060
|
+
}
|
|
4061
|
+
const coords = element.getBoundingClientRect();
|
|
4062
|
+
value.sides.forEach((side) => {
|
|
4063
|
+
const sideMargin = Math.abs(coords[side] - parentCoords[side]);
|
|
4064
|
+
customBoundaries[side] = `${sideMargin}px`;
|
|
4065
|
+
});
|
|
4066
|
+
});
|
|
4067
|
+
return customBoundaries;
|
|
4068
|
+
};
|
|
4069
|
+
vue.onMounted(function () {
|
|
4070
|
+
vue.nextTick(function () {
|
|
4071
|
+
containerCoords = getCustomBoundaries();
|
|
4072
|
+
});
|
|
4073
|
+
});
|
|
4074
|
+
return () => vue.h('div', {
|
|
4075
|
+
style: {
|
|
4076
|
+
...containerCoords,
|
|
4077
|
+
position: 'absolute',
|
|
4078
|
+
'background-color': `rgb(255,255,255,${props.opacity})`,
|
|
4079
|
+
},
|
|
4080
|
+
ref: elementRef,
|
|
4081
|
+
}, vue.h('div', // TODO: use slot to override this
|
|
4082
|
+
{
|
|
4083
|
+
style: {
|
|
4084
|
+
position: 'absolute',
|
|
4085
|
+
top: '50%',
|
|
4086
|
+
left: '50%',
|
|
4087
|
+
transform: 'translateX(-50%) translateY(-50%)',
|
|
4088
|
+
},
|
|
4089
|
+
}, vue.h(CSpinner, {
|
|
4090
|
+
variant: 'grow',
|
|
4091
|
+
color: 'primary',
|
|
4092
|
+
})));
|
|
4093
|
+
},
|
|
4094
|
+
});
|
|
4095
|
+
|
|
4096
|
+
const CElementCoverPlugin = {
|
|
4097
|
+
install: (app) => {
|
|
4098
|
+
app.component(CElementCover.name, CElementCover);
|
|
4099
|
+
},
|
|
4100
|
+
};
|
|
4101
|
+
|
|
3855
4102
|
const CFooter = vue.defineComponent({
|
|
3856
4103
|
name: 'CFooter',
|
|
3857
4104
|
props: {
|
|
@@ -4003,6 +4250,10 @@ const CFormCheck = vue.defineComponent({
|
|
|
4003
4250
|
default: undefined,
|
|
4004
4251
|
required: false,
|
|
4005
4252
|
},
|
|
4253
|
+
/**
|
|
4254
|
+
* Input Checkbox indeterminate Property
|
|
4255
|
+
*/
|
|
4256
|
+
indeterminate: Boolean,
|
|
4006
4257
|
/**
|
|
4007
4258
|
* Group checkboxes or radios on the same horizontal row by adding.
|
|
4008
4259
|
*/
|
|
@@ -4062,25 +4313,14 @@ const CFormCheck = vue.defineComponent({
|
|
|
4062
4313
|
'update:modelValue',
|
|
4063
4314
|
],
|
|
4064
4315
|
setup(props, { attrs, emit, slots }) {
|
|
4065
|
-
const checked = vue.ref(attrs.checked);
|
|
4066
|
-
vue.onMounted(() => {
|
|
4067
|
-
if (props.modelValue && typeof props.modelValue === 'boolean') {
|
|
4068
|
-
console.log(props.modelValue);
|
|
4069
|
-
}
|
|
4070
|
-
});
|
|
4071
|
-
vue.watch(() => props.modelValue, () => {
|
|
4072
|
-
if (typeof props.modelValue === 'boolean')
|
|
4073
|
-
checked.value = props.modelValue;
|
|
4074
|
-
});
|
|
4075
4316
|
const handleChange = (event) => {
|
|
4076
4317
|
const target = event.target;
|
|
4077
|
-
emit('change',
|
|
4318
|
+
emit('change', event);
|
|
4078
4319
|
emit('update:modelValue', target.checked);
|
|
4079
4320
|
};
|
|
4080
4321
|
const formControl = () => {
|
|
4081
4322
|
return vue.h('input', {
|
|
4082
|
-
|
|
4083
|
-
checked: checked.value,
|
|
4323
|
+
checked: props.modelValue,
|
|
4084
4324
|
class: [
|
|
4085
4325
|
props.button ? 'btn-check' : 'form-check-input',
|
|
4086
4326
|
{
|
|
@@ -4089,8 +4329,10 @@ const CFormCheck = vue.defineComponent({
|
|
|
4089
4329
|
},
|
|
4090
4330
|
],
|
|
4091
4331
|
id: props.id,
|
|
4332
|
+
indeterminate: props.indeterminate,
|
|
4092
4333
|
onChange: (event) => handleChange(event),
|
|
4093
4334
|
type: props.type,
|
|
4335
|
+
...attrs,
|
|
4094
4336
|
});
|
|
4095
4337
|
};
|
|
4096
4338
|
const formLabel = () => {
|
|
@@ -4261,18 +4503,15 @@ const CFormInput = vue.defineComponent({
|
|
|
4261
4503
|
setup(props, { emit, slots }) {
|
|
4262
4504
|
const handleChange = (event) => {
|
|
4263
4505
|
const target = event.target;
|
|
4264
|
-
emit('change',
|
|
4506
|
+
emit('change', event);
|
|
4265
4507
|
emit('update:modelValue', target.value);
|
|
4266
4508
|
};
|
|
4267
4509
|
const handleInput = (event) => {
|
|
4268
4510
|
const target = event.target;
|
|
4269
|
-
emit('input',
|
|
4511
|
+
emit('input', event);
|
|
4270
4512
|
emit('update:modelValue', target.value);
|
|
4271
4513
|
};
|
|
4272
4514
|
return () => vue.h('input', {
|
|
4273
|
-
type: props.type,
|
|
4274
|
-
disabled: props.disabled,
|
|
4275
|
-
readonly: props.readonly,
|
|
4276
4515
|
class: [
|
|
4277
4516
|
props.plainText ? 'form-control-plaintext' : 'form-control',
|
|
4278
4517
|
{
|
|
@@ -4282,8 +4521,11 @@ const CFormInput = vue.defineComponent({
|
|
|
4282
4521
|
'is-valid': props.valid,
|
|
4283
4522
|
},
|
|
4284
4523
|
],
|
|
4524
|
+
disabled: props.disabled,
|
|
4285
4525
|
onChange: (event) => handleChange(event),
|
|
4286
4526
|
onInput: (event) => handleInput(event),
|
|
4527
|
+
readonly: props.readonly,
|
|
4528
|
+
type: props.type,
|
|
4287
4529
|
value: props.modelValue,
|
|
4288
4530
|
}, slots.default && slots.default());
|
|
4289
4531
|
},
|
|
@@ -4363,7 +4605,7 @@ const CFormRange = vue.defineComponent({
|
|
|
4363
4605
|
setup(props, { emit, slots }) {
|
|
4364
4606
|
const handleChange = (event) => {
|
|
4365
4607
|
const target = event.target;
|
|
4366
|
-
emit('change',
|
|
4608
|
+
emit('change', event);
|
|
4367
4609
|
emit('update:modelValue', target.value);
|
|
4368
4610
|
};
|
|
4369
4611
|
return () => vue.h('input', {
|
|
@@ -4375,7 +4617,7 @@ const CFormRange = vue.defineComponent({
|
|
|
4375
4617
|
steps: props.steps,
|
|
4376
4618
|
readonly: props.readonly,
|
|
4377
4619
|
type: 'range',
|
|
4378
|
-
value: props.modelValue
|
|
4620
|
+
value: props.modelValue,
|
|
4379
4621
|
}, slots.default && slots.default());
|
|
4380
4622
|
},
|
|
4381
4623
|
});
|
|
@@ -4455,7 +4697,7 @@ const CFormSelect = vue.defineComponent({
|
|
|
4455
4697
|
.filter((option) => option.selected)
|
|
4456
4698
|
.map((option) => option.value);
|
|
4457
4699
|
const value = target.multiple ? selected : selected[0];
|
|
4458
|
-
emit('change',
|
|
4700
|
+
emit('change', event);
|
|
4459
4701
|
emit('update:modelValue', value);
|
|
4460
4702
|
};
|
|
4461
4703
|
return () => vue.h('select', {
|
|
@@ -4463,6 +4705,8 @@ const CFormSelect = vue.defineComponent({
|
|
|
4463
4705
|
'form-select',
|
|
4464
4706
|
{
|
|
4465
4707
|
[`form-select-${props.size}`]: props.size,
|
|
4708
|
+
'is-invalid': props.invalid,
|
|
4709
|
+
'is-valid': props.valid,
|
|
4466
4710
|
},
|
|
4467
4711
|
],
|
|
4468
4712
|
onChange: (event) => handleChange(event),
|
|
@@ -4568,7 +4812,7 @@ const CFormSwitch = vue.defineComponent({
|
|
|
4568
4812
|
});
|
|
4569
4813
|
const handleChange = (event) => {
|
|
4570
4814
|
const target = event.target;
|
|
4571
|
-
emit('change',
|
|
4815
|
+
emit('change', event);
|
|
4572
4816
|
emit('update:modelValue', target.checked);
|
|
4573
4817
|
};
|
|
4574
4818
|
return () => vue.h('div', {
|
|
@@ -4685,14 +4929,9 @@ const CFormTextarea = vue.defineComponent({
|
|
|
4685
4929
|
'update:modelValue',
|
|
4686
4930
|
],
|
|
4687
4931
|
setup(props, { emit, slots }) {
|
|
4688
|
-
const handleChange = (event) => {
|
|
4689
|
-
const target = event.target;
|
|
4690
|
-
emit('change', target.value);
|
|
4691
|
-
emit('update:modelValue', target.value);
|
|
4692
|
-
};
|
|
4693
4932
|
const handleInput = (event) => {
|
|
4694
4933
|
const target = event.target;
|
|
4695
|
-
emit('input',
|
|
4934
|
+
emit('input', event);
|
|
4696
4935
|
emit('update:modelValue', target.value);
|
|
4697
4936
|
};
|
|
4698
4937
|
return () => vue.h('textarea', {
|
|
@@ -4705,7 +4944,6 @@ const CFormTextarea = vue.defineComponent({
|
|
|
4705
4944
|
'is-valid': props.valid,
|
|
4706
4945
|
},
|
|
4707
4946
|
],
|
|
4708
|
-
onChange: (event) => handleChange(event),
|
|
4709
4947
|
onInput: (event) => handleInput(event),
|
|
4710
4948
|
value: props.modelValue,
|
|
4711
4949
|
}, slots.default && slots.default());
|
|
@@ -4777,7 +5015,7 @@ const CFormPlugin = {
|
|
|
4777
5015
|
},
|
|
4778
5016
|
};
|
|
4779
5017
|
|
|
4780
|
-
const BREAKPOINTS$
|
|
5018
|
+
const BREAKPOINTS$4 = [
|
|
4781
5019
|
'xxl',
|
|
4782
5020
|
'xl',
|
|
4783
5021
|
'lg',
|
|
@@ -4850,40 +5088,40 @@ const CCol = vue.defineComponent({
|
|
|
4850
5088
|
},
|
|
4851
5089
|
},
|
|
4852
5090
|
setup(props, { slots }) {
|
|
4853
|
-
const
|
|
4854
|
-
BREAKPOINTS$
|
|
5091
|
+
const repsonsiveClassNames = [];
|
|
5092
|
+
BREAKPOINTS$4.forEach((bp) => {
|
|
4855
5093
|
const breakpoint = props[bp];
|
|
4856
5094
|
const infix = bp === 'xs' ? '' : `-${bp}`;
|
|
4857
5095
|
if (breakpoint) {
|
|
4858
5096
|
if (typeof breakpoint === 'number' || typeof breakpoint === 'string') {
|
|
4859
|
-
|
|
5097
|
+
repsonsiveClassNames.push(`col${infix}-${breakpoint}`);
|
|
4860
5098
|
}
|
|
4861
5099
|
if (typeof breakpoint === 'boolean') {
|
|
4862
|
-
|
|
5100
|
+
repsonsiveClassNames.push(`col${infix}`);
|
|
4863
5101
|
}
|
|
4864
5102
|
}
|
|
4865
5103
|
if (breakpoint && typeof breakpoint === 'object') {
|
|
4866
5104
|
if (typeof breakpoint.span === 'number' || typeof breakpoint.span === 'string') {
|
|
4867
|
-
|
|
5105
|
+
repsonsiveClassNames.push(`col${infix}-${breakpoint.span}`);
|
|
4868
5106
|
}
|
|
4869
5107
|
if (typeof breakpoint.span === 'boolean') {
|
|
4870
|
-
|
|
5108
|
+
repsonsiveClassNames.push(`col${infix}`);
|
|
4871
5109
|
}
|
|
4872
5110
|
if (typeof breakpoint.order === 'number' || typeof breakpoint.order === 'string') {
|
|
4873
|
-
|
|
5111
|
+
repsonsiveClassNames.push(`order${infix}-${breakpoint.order}`);
|
|
4874
5112
|
}
|
|
4875
5113
|
if (typeof breakpoint.offset === 'number') {
|
|
4876
|
-
|
|
5114
|
+
repsonsiveClassNames.push(`offset${infix}-${breakpoint.offset}`);
|
|
4877
5115
|
}
|
|
4878
5116
|
}
|
|
4879
5117
|
});
|
|
4880
5118
|
return () => vue.h('div', {
|
|
4881
|
-
class: [
|
|
5119
|
+
class: [repsonsiveClassNames.length ? repsonsiveClassNames : 'col'],
|
|
4882
5120
|
}, slots.default && slots.default());
|
|
4883
5121
|
},
|
|
4884
5122
|
});
|
|
4885
5123
|
|
|
4886
|
-
const BREAKPOINTS$
|
|
5124
|
+
const BREAKPOINTS$3 = [
|
|
4887
5125
|
'xxl',
|
|
4888
5126
|
'xl',
|
|
4889
5127
|
'lg',
|
|
@@ -4938,18 +5176,18 @@ const CContainer = vue.defineComponent({
|
|
|
4938
5176
|
},
|
|
4939
5177
|
},
|
|
4940
5178
|
setup(props, { slots }) {
|
|
4941
|
-
const
|
|
4942
|
-
BREAKPOINTS$
|
|
5179
|
+
const repsonsiveClassNames = [];
|
|
5180
|
+
BREAKPOINTS$3.forEach((bp) => {
|
|
4943
5181
|
const breakpoint = props[bp];
|
|
4944
|
-
breakpoint &&
|
|
5182
|
+
breakpoint && repsonsiveClassNames.push(`container-${bp}`);
|
|
4945
5183
|
});
|
|
4946
5184
|
return () => vue.h('div', {
|
|
4947
|
-
class: [
|
|
5185
|
+
class: [repsonsiveClassNames.length ? repsonsiveClassNames : 'container'],
|
|
4948
5186
|
}, slots.default && slots.default());
|
|
4949
5187
|
},
|
|
4950
5188
|
});
|
|
4951
5189
|
|
|
4952
|
-
const BREAKPOINTS = [
|
|
5190
|
+
const BREAKPOINTS$2 = [
|
|
4953
5191
|
'xxl',
|
|
4954
5192
|
'xl',
|
|
4955
5193
|
'lg',
|
|
@@ -5022,27 +5260,27 @@ const CRow = vue.defineComponent({
|
|
|
5022
5260
|
},
|
|
5023
5261
|
},
|
|
5024
5262
|
setup(props, { slots }) {
|
|
5025
|
-
const
|
|
5026
|
-
BREAKPOINTS.forEach((bp) => {
|
|
5263
|
+
const repsonsiveClassNames = [];
|
|
5264
|
+
BREAKPOINTS$2.forEach((bp) => {
|
|
5027
5265
|
const breakpoint = props[bp];
|
|
5028
5266
|
const infix = bp === 'xs' ? '' : `-${bp}`;
|
|
5029
5267
|
if (typeof breakpoint === 'object') {
|
|
5030
5268
|
if (breakpoint.cols) {
|
|
5031
|
-
|
|
5269
|
+
repsonsiveClassNames.push(`row-cols${infix}-${breakpoint.cols}`);
|
|
5032
5270
|
}
|
|
5033
5271
|
if (typeof breakpoint.gutter === 'number') {
|
|
5034
|
-
|
|
5272
|
+
repsonsiveClassNames.push(`g${infix}-${breakpoint.gutter}`);
|
|
5035
5273
|
}
|
|
5036
5274
|
if (typeof breakpoint.gutterX === 'number') {
|
|
5037
|
-
|
|
5275
|
+
repsonsiveClassNames.push(`gx${infix}-${breakpoint.gutterX}`);
|
|
5038
5276
|
}
|
|
5039
5277
|
if (typeof breakpoint.gutterY === 'number') {
|
|
5040
|
-
|
|
5278
|
+
repsonsiveClassNames.push(`gy${infix}-${breakpoint.gutterY}`);
|
|
5041
5279
|
}
|
|
5042
5280
|
}
|
|
5043
5281
|
});
|
|
5044
5282
|
return () => vue.h('div', {
|
|
5045
|
-
class: ['row',
|
|
5283
|
+
class: ['row', repsonsiveClassNames],
|
|
5046
5284
|
}, slots.default && slots.default());
|
|
5047
5285
|
},
|
|
5048
5286
|
});
|
|
@@ -5336,86 +5574,6 @@ const CListGroupPlugin = {
|
|
|
5336
5574
|
},
|
|
5337
5575
|
};
|
|
5338
5576
|
|
|
5339
|
-
const CSpinner = vue.defineComponent({
|
|
5340
|
-
name: 'CSpinner',
|
|
5341
|
-
props: {
|
|
5342
|
-
/**
|
|
5343
|
-
* Sets the color context of the component to one of CoreUI’s themed colors.
|
|
5344
|
-
*
|
|
5345
|
-
* @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light'
|
|
5346
|
-
*/
|
|
5347
|
-
color: {
|
|
5348
|
-
type: String,
|
|
5349
|
-
default: undefined,
|
|
5350
|
-
required: false,
|
|
5351
|
-
validator: (value) => {
|
|
5352
|
-
return [
|
|
5353
|
-
'primary',
|
|
5354
|
-
'secondary',
|
|
5355
|
-
'success',
|
|
5356
|
-
'danger',
|
|
5357
|
-
'warning',
|
|
5358
|
-
'info',
|
|
5359
|
-
'dark',
|
|
5360
|
-
'light',
|
|
5361
|
-
].includes(value);
|
|
5362
|
-
},
|
|
5363
|
-
},
|
|
5364
|
-
/**
|
|
5365
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
5366
|
-
*/
|
|
5367
|
-
component: {
|
|
5368
|
-
type: String,
|
|
5369
|
-
default: 'div',
|
|
5370
|
-
required: false,
|
|
5371
|
-
},
|
|
5372
|
-
/**
|
|
5373
|
-
* Size the component small.
|
|
5374
|
-
*
|
|
5375
|
-
* @values 'sm'
|
|
5376
|
-
*/
|
|
5377
|
-
size: {
|
|
5378
|
-
type: String,
|
|
5379
|
-
default: undefined,
|
|
5380
|
-
required: false,
|
|
5381
|
-
validator: (value) => {
|
|
5382
|
-
return value === 'sm';
|
|
5383
|
-
},
|
|
5384
|
-
},
|
|
5385
|
-
/**
|
|
5386
|
-
* Set the button variant to an outlined button or a ghost button.
|
|
5387
|
-
*
|
|
5388
|
-
* @values 'border', 'grow'
|
|
5389
|
-
*/
|
|
5390
|
-
variant: {
|
|
5391
|
-
type: String,
|
|
5392
|
-
default: 'border',
|
|
5393
|
-
required: false,
|
|
5394
|
-
validator: (value) => {
|
|
5395
|
-
return ['border', 'grow'].includes(value);
|
|
5396
|
-
},
|
|
5397
|
-
},
|
|
5398
|
-
/**
|
|
5399
|
-
* Set visually hidden label for accessibility purposes.
|
|
5400
|
-
*/
|
|
5401
|
-
visuallyHiddenLabel: {
|
|
5402
|
-
type: String,
|
|
5403
|
-
default: 'Loading...',
|
|
5404
|
-
required: false,
|
|
5405
|
-
},
|
|
5406
|
-
},
|
|
5407
|
-
setup(props) {
|
|
5408
|
-
return () => vue.h(props.component, {
|
|
5409
|
-
class: [
|
|
5410
|
-
`spinner-${props.variant}`,
|
|
5411
|
-
`text-${props.color}`,
|
|
5412
|
-
props.size && `spinner-${props.variant}-${props.size}`,
|
|
5413
|
-
],
|
|
5414
|
-
role: 'status',
|
|
5415
|
-
}, vue.h('span', { class: ['visually-hidden'] }, props.visuallyHiddenLabel));
|
|
5416
|
-
},
|
|
5417
|
-
});
|
|
5418
|
-
|
|
5419
5577
|
const CLoadingButton = vue.defineComponent({
|
|
5420
5578
|
name: 'CLoadingButton',
|
|
5421
5579
|
props: {
|
|
@@ -5622,7 +5780,7 @@ const CModal = vue.defineComponent({
|
|
|
5622
5780
|
emit('show');
|
|
5623
5781
|
};
|
|
5624
5782
|
const handleAfterEnter = () => {
|
|
5625
|
-
window.addEventListener('
|
|
5783
|
+
window.addEventListener('mousedown', handleMouseDown);
|
|
5626
5784
|
window.addEventListener('keyup', handleKeyUp);
|
|
5627
5785
|
};
|
|
5628
5786
|
const handleLeave = (el, done) => {
|
|
@@ -5633,7 +5791,7 @@ const CModal = vue.defineComponent({
|
|
|
5633
5791
|
el.classList.remove('show');
|
|
5634
5792
|
};
|
|
5635
5793
|
const handleAfterLeave = (el) => {
|
|
5636
|
-
window.removeEventListener('
|
|
5794
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
5637
5795
|
window.removeEventListener('keyup', handleKeyUp);
|
|
5638
5796
|
el.style.display = 'none';
|
|
5639
5797
|
};
|
|
@@ -5655,7 +5813,10 @@ const CModal = vue.defineComponent({
|
|
|
5655
5813
|
}
|
|
5656
5814
|
}
|
|
5657
5815
|
};
|
|
5658
|
-
const
|
|
5816
|
+
const handleMouseDown = (event) => {
|
|
5817
|
+
window.addEventListener('mouseup', () => handleMouseUp(event), { once: true });
|
|
5818
|
+
};
|
|
5819
|
+
const handleMouseUp = (event) => {
|
|
5659
5820
|
if (modalContentRef.value && !modalContentRef.value.contains(event.target)) {
|
|
5660
5821
|
if (props.backdrop !== 'static') {
|
|
5661
5822
|
handleDismiss();
|
|
@@ -6864,19 +7025,20 @@ const COffcanvas = vue.defineComponent({
|
|
|
6864
7025
|
}, 1);
|
|
6865
7026
|
};
|
|
6866
7027
|
const handleAfterEnter = () => {
|
|
6867
|
-
window.addEventListener('
|
|
7028
|
+
window.addEventListener('mousedown', handleMouseDown);
|
|
7029
|
+
// window.addEventListener('click', handleClickOutside)
|
|
6868
7030
|
window.addEventListener('keyup', handleKeyUp);
|
|
6869
7031
|
};
|
|
6870
7032
|
const handleLeave = (el, done) => {
|
|
6871
7033
|
el.addEventListener('transitionend', () => {
|
|
6872
7034
|
done();
|
|
6873
7035
|
});
|
|
7036
|
+
window.removeEventListener('mousedown', handleMouseDown);
|
|
7037
|
+
window.removeEventListener('keyup', handleKeyUp);
|
|
6874
7038
|
el.classList.remove('show');
|
|
6875
7039
|
};
|
|
6876
7040
|
const handleAfterLeave = (el) => {
|
|
6877
7041
|
el.style.visibility = 'hidden';
|
|
6878
|
-
window.removeEventListener('click', handleClickOutside);
|
|
6879
|
-
window.removeEventListener('keyup', handleKeyUp);
|
|
6880
7042
|
};
|
|
6881
7043
|
const handleDismiss = () => {
|
|
6882
7044
|
visible.value = false;
|
|
@@ -6889,31 +7051,34 @@ const COffcanvas = vue.defineComponent({
|
|
|
6889
7051
|
}
|
|
6890
7052
|
}
|
|
6891
7053
|
};
|
|
6892
|
-
const
|
|
7054
|
+
const handleMouseDown = (event) => {
|
|
7055
|
+
window.addEventListener('mouseup', () => handleMouseUp(event), { once: true });
|
|
7056
|
+
};
|
|
7057
|
+
const handleMouseUp = (event) => {
|
|
6893
7058
|
if (offcanvasRef.value && !offcanvasRef.value.contains(event.target)) {
|
|
6894
7059
|
props.backdrop && handleDismiss();
|
|
6895
7060
|
}
|
|
6896
7061
|
};
|
|
6897
7062
|
return () => [
|
|
6898
7063
|
vue.h(vue.Transition, {
|
|
7064
|
+
css: false,
|
|
6899
7065
|
onEnter: (el, done) => handleEnter(el, done),
|
|
6900
7066
|
onAfterEnter: () => handleAfterEnter(),
|
|
6901
7067
|
onLeave: (el, done) => handleLeave(el, done),
|
|
6902
7068
|
onAfterLeave: (el) => handleAfterLeave(el),
|
|
6903
|
-
}, () =>
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
6907
|
-
{
|
|
6908
|
-
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
6912
|
-
|
|
6913
|
-
}, slots.default && slots.default())),
|
|
7069
|
+
}, () => vue.withDirectives(vue.h('div', {
|
|
7070
|
+
class: [
|
|
7071
|
+
'offcanvas',
|
|
7072
|
+
{
|
|
7073
|
+
[`offcanvas-${props.placement}`]: props.placement,
|
|
7074
|
+
},
|
|
7075
|
+
],
|
|
7076
|
+
ref: offcanvasRef,
|
|
7077
|
+
role: 'dialog',
|
|
7078
|
+
}, slots.default && slots.default()), [[vVisible, props.visible]])),
|
|
6914
7079
|
props.backdrop &&
|
|
6915
7080
|
vue.h(CBackdrop, {
|
|
6916
|
-
class: '
|
|
7081
|
+
class: 'offcanvas-backdrop',
|
|
6917
7082
|
visible: visible.value,
|
|
6918
7083
|
}),
|
|
6919
7084
|
];
|
|
@@ -7360,6 +7525,137 @@ const CPaginationPlugin = {
|
|
|
7360
7525
|
},
|
|
7361
7526
|
};
|
|
7362
7527
|
|
|
7528
|
+
const BREAKPOINTS$1 = [
|
|
7529
|
+
'xxl',
|
|
7530
|
+
'xl',
|
|
7531
|
+
'lg',
|
|
7532
|
+
'md',
|
|
7533
|
+
'sm',
|
|
7534
|
+
'xs',
|
|
7535
|
+
];
|
|
7536
|
+
const CPlaceholder = vue.defineComponent({
|
|
7537
|
+
name: 'CPlaceholder',
|
|
7538
|
+
props: {
|
|
7539
|
+
/**
|
|
7540
|
+
* Set animation type to better convey the perception of something being actively loaded.
|
|
7541
|
+
*
|
|
7542
|
+
* @values 'glow', 'wave'
|
|
7543
|
+
*/
|
|
7544
|
+
animation: {
|
|
7545
|
+
type: String,
|
|
7546
|
+
default: undefined,
|
|
7547
|
+
require: false,
|
|
7548
|
+
validator: (value) => {
|
|
7549
|
+
return ['glow', 'wave'].includes(value);
|
|
7550
|
+
},
|
|
7551
|
+
},
|
|
7552
|
+
/**
|
|
7553
|
+
* Sets the color context of the component to one of CoreUI’s themed colors.
|
|
7554
|
+
*
|
|
7555
|
+
* @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light'
|
|
7556
|
+
*/
|
|
7557
|
+
color: Color,
|
|
7558
|
+
/**
|
|
7559
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
7560
|
+
*/
|
|
7561
|
+
component: {
|
|
7562
|
+
type: String,
|
|
7563
|
+
default: 'span',
|
|
7564
|
+
required: false,
|
|
7565
|
+
},
|
|
7566
|
+
/**
|
|
7567
|
+
* Size the component extra small, small, or large.
|
|
7568
|
+
*
|
|
7569
|
+
* @values 'xs', 'sm', 'lg'
|
|
7570
|
+
*/
|
|
7571
|
+
size: {
|
|
7572
|
+
type: String,
|
|
7573
|
+
default: undefined,
|
|
7574
|
+
required: false,
|
|
7575
|
+
validator: (value) => {
|
|
7576
|
+
return ['xs', 'sm', 'lg'].includes(value);
|
|
7577
|
+
},
|
|
7578
|
+
},
|
|
7579
|
+
/**
|
|
7580
|
+
* The number of columns on extra small devices (<576px).
|
|
7581
|
+
*/
|
|
7582
|
+
xs: {
|
|
7583
|
+
type: Number,
|
|
7584
|
+
default: undefined,
|
|
7585
|
+
require: false,
|
|
7586
|
+
},
|
|
7587
|
+
/**
|
|
7588
|
+
* The number of columns on small devices (<768px).
|
|
7589
|
+
*/
|
|
7590
|
+
sm: {
|
|
7591
|
+
type: Number,
|
|
7592
|
+
default: undefined,
|
|
7593
|
+
require: false,
|
|
7594
|
+
},
|
|
7595
|
+
/**
|
|
7596
|
+
* The number of columns on medium devices (<992px).
|
|
7597
|
+
*/
|
|
7598
|
+
md: {
|
|
7599
|
+
type: Number,
|
|
7600
|
+
default: undefined,
|
|
7601
|
+
require: false,
|
|
7602
|
+
},
|
|
7603
|
+
/**
|
|
7604
|
+
* The number of columns on large devices (<1200px).
|
|
7605
|
+
*/
|
|
7606
|
+
lg: {
|
|
7607
|
+
type: Number,
|
|
7608
|
+
default: undefined,
|
|
7609
|
+
require: false,
|
|
7610
|
+
},
|
|
7611
|
+
/**
|
|
7612
|
+
* The number of columns on X-Large devices (<1400px).
|
|
7613
|
+
*/
|
|
7614
|
+
xl: {
|
|
7615
|
+
type: Number,
|
|
7616
|
+
default: undefined,
|
|
7617
|
+
require: false,
|
|
7618
|
+
},
|
|
7619
|
+
/**
|
|
7620
|
+
* The number of columns on XX-Large devices (≥1400px).
|
|
7621
|
+
*/
|
|
7622
|
+
xxl: {
|
|
7623
|
+
type: Number,
|
|
7624
|
+
default: undefined,
|
|
7625
|
+
require: false,
|
|
7626
|
+
},
|
|
7627
|
+
},
|
|
7628
|
+
setup(props, { slots }) {
|
|
7629
|
+
const repsonsiveClassNames = [];
|
|
7630
|
+
BREAKPOINTS$1.forEach((bp) => {
|
|
7631
|
+
const breakpoint = props[bp];
|
|
7632
|
+
const infix = bp === 'xs' ? '' : `-${bp}`;
|
|
7633
|
+
if (typeof breakpoint === 'number') {
|
|
7634
|
+
repsonsiveClassNames.push(`col${infix}-${breakpoint}`);
|
|
7635
|
+
}
|
|
7636
|
+
if (typeof breakpoint === 'boolean') {
|
|
7637
|
+
repsonsiveClassNames.push(`col${infix}`);
|
|
7638
|
+
}
|
|
7639
|
+
});
|
|
7640
|
+
return () => vue.h(props.component, {
|
|
7641
|
+
class: [
|
|
7642
|
+
props.animation ? `placeholder-${props.animation}` : 'placeholder',
|
|
7643
|
+
{
|
|
7644
|
+
[`bg-${props.color}`]: props.color,
|
|
7645
|
+
[`placeholder-${props.size}`]: props.size,
|
|
7646
|
+
},
|
|
7647
|
+
repsonsiveClassNames,
|
|
7648
|
+
],
|
|
7649
|
+
}, slots.default && slots.default());
|
|
7650
|
+
},
|
|
7651
|
+
});
|
|
7652
|
+
|
|
7653
|
+
const CPlaceholderPlugin = {
|
|
7654
|
+
install: (app) => {
|
|
7655
|
+
app.component(CPlaceholder.name, CPlaceholder);
|
|
7656
|
+
},
|
|
7657
|
+
};
|
|
7658
|
+
|
|
7363
7659
|
const CProgressBar = vue.defineComponent({
|
|
7364
7660
|
name: 'CProgressBar',
|
|
7365
7661
|
props: {
|
|
@@ -7877,90 +8173,6 @@ const CSidebarPlugin = {
|
|
|
7877
8173
|
},
|
|
7878
8174
|
};
|
|
7879
8175
|
|
|
7880
|
-
const CSpinnerPlugin = {
|
|
7881
|
-
install: (app) => {
|
|
7882
|
-
app.component(CSpinner.name, CSpinner);
|
|
7883
|
-
},
|
|
7884
|
-
};
|
|
7885
|
-
|
|
7886
|
-
const CElementCover = vue.defineComponent({
|
|
7887
|
-
name: 'CElementCover',
|
|
7888
|
-
props: {
|
|
7889
|
-
/**
|
|
7890
|
-
* Array of custom boundaries. Use to create custom cover area (instead of parent element area). Area is defined by four sides: 'top', 'bottom', 'right', 'left'. If side is not defined by any custom boundary it is equal to parent element boundary. Each custom boundary is object with keys:
|
|
7891
|
-
* - sides (array) - select boundaries of element to define boundaries. Sides names: 'top', 'bottom', 'right', 'left'.
|
|
7892
|
-
* - query (string) - query used to get element which define boundaries. Search will be done only inside parent element, by parent.querySelector(query) function. [docs]
|
|
7893
|
-
*
|
|
7894
|
-
* @type {sides: string[], query: string}[]
|
|
7895
|
-
*/
|
|
7896
|
-
boundaries: {
|
|
7897
|
-
// TODO: check if this is correct, TJ
|
|
7898
|
-
type: Array,
|
|
7899
|
-
require: true,
|
|
7900
|
-
},
|
|
7901
|
-
/**
|
|
7902
|
-
* Opacity of the cover. [docs]
|
|
7903
|
-
*
|
|
7904
|
-
* @type number
|
|
7905
|
-
*/
|
|
7906
|
-
opacity: {
|
|
7907
|
-
type: Number,
|
|
7908
|
-
require: false,
|
|
7909
|
-
},
|
|
7910
|
-
},
|
|
7911
|
-
setup(props) {
|
|
7912
|
-
let containerCoords = {};
|
|
7913
|
-
const elementRef = vue.ref();
|
|
7914
|
-
const getCustomBoundaries = () => {
|
|
7915
|
-
if (!props.boundaries || elementRef === null) {
|
|
7916
|
-
return {};
|
|
7917
|
-
}
|
|
7918
|
-
const parent = elementRef.value.parentElement;
|
|
7919
|
-
if (!parent) {
|
|
7920
|
-
return {};
|
|
7921
|
-
}
|
|
7922
|
-
const parentCoords = parent.getBoundingClientRect();
|
|
7923
|
-
const customBoundaries = {};
|
|
7924
|
-
props.boundaries.forEach((value) => {
|
|
7925
|
-
const element = parent.querySelector(value.query);
|
|
7926
|
-
if (!element || !value.sides) {
|
|
7927
|
-
return;
|
|
7928
|
-
}
|
|
7929
|
-
const coords = element.getBoundingClientRect();
|
|
7930
|
-
value.sides.forEach((side) => {
|
|
7931
|
-
const sideMargin = Math.abs(coords[side] - parentCoords[side]);
|
|
7932
|
-
customBoundaries[side] = `${sideMargin}px`;
|
|
7933
|
-
});
|
|
7934
|
-
});
|
|
7935
|
-
return customBoundaries;
|
|
7936
|
-
};
|
|
7937
|
-
vue.onMounted(function () {
|
|
7938
|
-
vue.nextTick(function () {
|
|
7939
|
-
containerCoords = getCustomBoundaries();
|
|
7940
|
-
});
|
|
7941
|
-
});
|
|
7942
|
-
return () => vue.h('div', {
|
|
7943
|
-
style: {
|
|
7944
|
-
...containerCoords,
|
|
7945
|
-
position: 'absolute',
|
|
7946
|
-
'background-color': `rgb(255,255,255,${props.opacity})`,
|
|
7947
|
-
},
|
|
7948
|
-
ref: elementRef,
|
|
7949
|
-
}, vue.h('div', // TODO: use slot to override this
|
|
7950
|
-
{
|
|
7951
|
-
style: {
|
|
7952
|
-
position: 'absolute',
|
|
7953
|
-
top: '50%',
|
|
7954
|
-
left: '50%',
|
|
7955
|
-
transform: 'translateX(-50%) translateY(-50%)',
|
|
7956
|
-
},
|
|
7957
|
-
}, vue.h(CSpinner, {
|
|
7958
|
-
variant: 'grow',
|
|
7959
|
-
color: 'primary',
|
|
7960
|
-
})));
|
|
7961
|
-
},
|
|
7962
|
-
});
|
|
7963
|
-
|
|
7964
8176
|
const CTable = vue.defineComponent({
|
|
7965
8177
|
name: 'CTable',
|
|
7966
8178
|
props: {
|
|
@@ -8411,9 +8623,12 @@ const CSmartTableHead = vue.defineComponent({
|
|
|
8411
8623
|
},
|
|
8412
8624
|
columnFilter: {
|
|
8413
8625
|
type: [Boolean, Object],
|
|
8414
|
-
default: undefined,
|
|
8415
8626
|
require: false,
|
|
8416
8627
|
},
|
|
8628
|
+
columnFilterValue: {
|
|
8629
|
+
type: Object,
|
|
8630
|
+
required: false,
|
|
8631
|
+
},
|
|
8417
8632
|
columnSorter: {
|
|
8418
8633
|
type: [Boolean, Object],
|
|
8419
8634
|
default: undefined,
|
|
@@ -8535,30 +8750,31 @@ const CSmartTableHead = vue.defineComponent({
|
|
|
8535
8750
|
})),
|
|
8536
8751
|
],
|
|
8537
8752
|
}),
|
|
8538
|
-
|
|
8539
|
-
|
|
8540
|
-
|
|
8541
|
-
|
|
8542
|
-
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8546
|
-
: typeof column.filter === 'undefined'
|
|
8753
|
+
props.columnFilter &&
|
|
8754
|
+
vue.h(CTableRow, {}, {
|
|
8755
|
+
default: () => [
|
|
8756
|
+
props.selectable && vue.h(CTableHeaderCell),
|
|
8757
|
+
props.columns.map((column) => vue.h(CTableHeaderCell, {
|
|
8758
|
+
...tableHeaderCellProps(column),
|
|
8759
|
+
}, {
|
|
8760
|
+
default: () => (typeof column !== 'object'
|
|
8547
8761
|
? true
|
|
8548
|
-
: column.filter
|
|
8549
|
-
|
|
8550
|
-
|
|
8551
|
-
|
|
8552
|
-
|
|
8553
|
-
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
|
|
8762
|
+
: typeof column.filter === 'undefined'
|
|
8763
|
+
? true
|
|
8764
|
+
: column.filter) &&
|
|
8765
|
+
vue.h(CFormInput, {
|
|
8766
|
+
size: 'sm',
|
|
8767
|
+
onInput: (event) => handleFilterInput(key(column), event.target.value),
|
|
8768
|
+
onChange: (event) => handleFilterChange(key(column), event.target.value),
|
|
8769
|
+
'aria-label': `column name: '${label(column)}' filter input`,
|
|
8770
|
+
...(props.columnFilterValue &&
|
|
8771
|
+
props.columnFilterValue[key(column)] && {
|
|
8772
|
+
value: props.columnFilterValue[key(column)],
|
|
8773
|
+
}),
|
|
8557
8774
|
}),
|
|
8558
|
-
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
|
-
}),
|
|
8775
|
+
})),
|
|
8776
|
+
],
|
|
8777
|
+
}),
|
|
8562
8778
|
],
|
|
8563
8779
|
});
|
|
8564
8780
|
},
|
|
@@ -8846,7 +9062,6 @@ const CSmartTable = vue.defineComponent({
|
|
|
8846
9062
|
*/
|
|
8847
9063
|
cleaner: {
|
|
8848
9064
|
type: Boolean,
|
|
8849
|
-
default: true,
|
|
8850
9065
|
required: false,
|
|
8851
9066
|
},
|
|
8852
9067
|
/**
|
|
@@ -8868,7 +9083,6 @@ const CSmartTable = vue.defineComponent({
|
|
|
8868
9083
|
*/
|
|
8869
9084
|
columnFilter: {
|
|
8870
9085
|
type: [Boolean, Object],
|
|
8871
|
-
default: undefined,
|
|
8872
9086
|
required: false,
|
|
8873
9087
|
},
|
|
8874
9088
|
/**
|
|
@@ -8945,7 +9159,6 @@ const CSmartTable = vue.defineComponent({
|
|
|
8945
9159
|
*/
|
|
8946
9160
|
itemsPerPage: {
|
|
8947
9161
|
type: Number,
|
|
8948
|
-
default: 10,
|
|
8949
9162
|
required: false,
|
|
8950
9163
|
},
|
|
8951
9164
|
/**
|
|
@@ -9017,7 +9230,8 @@ const CSmartTable = vue.defineComponent({
|
|
|
9017
9230
|
*/
|
|
9018
9231
|
selectable: Boolean,
|
|
9019
9232
|
/**
|
|
9020
|
-
* State of the sorter. Name key is column name, direction can be 'asc' or 'desc'. Set .sync modifier to track changes.
|
|
9233
|
+
* State of the sorter. Name key is column name, direction can be 'asc' or 'desc'. Set .sync modifier to track changes. eg.:
|
|
9234
|
+
* { column: 'status', state: 'asc' }
|
|
9021
9235
|
*
|
|
9022
9236
|
* @type SorterValue
|
|
9023
9237
|
*/
|
|
@@ -9057,7 +9271,6 @@ const CSmartTable = vue.defineComponent({
|
|
|
9057
9271
|
*/
|
|
9058
9272
|
tableFilter: {
|
|
9059
9273
|
type: [Boolean, Object],
|
|
9060
|
-
default: undefined,
|
|
9061
9274
|
required: false,
|
|
9062
9275
|
},
|
|
9063
9276
|
/**
|
|
@@ -9179,6 +9392,7 @@ const CSmartTable = vue.defineComponent({
|
|
|
9179
9392
|
const selectedAll = vue.ref();
|
|
9180
9393
|
vue.watch(items, () => {
|
|
9181
9394
|
const selected = items.value.filter((item) => item._selected === true);
|
|
9395
|
+
emit('selectedItemsChange', selected);
|
|
9182
9396
|
if (selected.length === items.value.length) {
|
|
9183
9397
|
selectedAll.value = true;
|
|
9184
9398
|
return;
|
|
@@ -9190,9 +9404,8 @@ const CSmartTable = vue.defineComponent({
|
|
|
9190
9404
|
if (selected.length !== 0 && selected.length !== items.value.length) {
|
|
9191
9405
|
selectedAll.value = 'indeterminate';
|
|
9192
9406
|
}
|
|
9193
|
-
emit('selectedItemsChange', selected);
|
|
9194
9407
|
});
|
|
9195
|
-
const itemsPerPage = vue.ref(props.itemsPerPage);
|
|
9408
|
+
const itemsPerPage = vue.ref(props.itemsPerPage || items.value.length);
|
|
9196
9409
|
const activePage = vue.ref(props.activePage);
|
|
9197
9410
|
const sorterState = vue.reactive(props.sorterValue || {});
|
|
9198
9411
|
const columnFilterState = vue.ref(props.columnFilterValue ? props.columnFilterValue : {});
|
|
@@ -9230,7 +9443,12 @@ const CSmartTable = vue.defineComponent({
|
|
|
9230
9443
|
state.state = 'desc';
|
|
9231
9444
|
}
|
|
9232
9445
|
else {
|
|
9233
|
-
|
|
9446
|
+
if (typeof props.columnSorter === 'object' && !props.columnSorter.resetable) {
|
|
9447
|
+
state.state = 'asc';
|
|
9448
|
+
}
|
|
9449
|
+
else {
|
|
9450
|
+
state.state = 0;
|
|
9451
|
+
}
|
|
9234
9452
|
}
|
|
9235
9453
|
}
|
|
9236
9454
|
else {
|
|
@@ -9371,22 +9589,25 @@ const CSmartTable = vue.defineComponent({
|
|
|
9371
9589
|
Object.values(columnFilterState.value).join(''));
|
|
9372
9590
|
});
|
|
9373
9591
|
return () => vue.h('div', {}, [
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9592
|
+
(props.tableFilter || props.cleaner) &&
|
|
9593
|
+
vue.h('div', {
|
|
9594
|
+
class: 'row my-2 mx-0',
|
|
9595
|
+
}, [
|
|
9596
|
+
props.tableFilter &&
|
|
9597
|
+
vue.h('div', {
|
|
9598
|
+
class: 'col-auto p-0',
|
|
9599
|
+
}, props.tableFilter &&
|
|
9600
|
+
vue.h(CSmartTableFilter, {
|
|
9601
|
+
filterLabel: props.tableFilterLabel,
|
|
9602
|
+
filterPlaceholder: props.tableFilterPlaceholder,
|
|
9603
|
+
onFilterInput: (value) => tableFilterChange(value, 'input'),
|
|
9604
|
+
onFilterChange: (value) => tableFilterChange(value, 'change'),
|
|
9605
|
+
value: tableFilterState.value,
|
|
9606
|
+
})),
|
|
9607
|
+
props.cleaner &&
|
|
9608
|
+
vue.h('div', {
|
|
9609
|
+
class: 'col-auto p-0',
|
|
9610
|
+
}, vue.h(CSmartTableCleaner, {
|
|
9390
9611
|
onClick: () => clean(),
|
|
9391
9612
|
isFiltered: isFiltered.value,
|
|
9392
9613
|
}, {
|
|
@@ -9395,8 +9616,7 @@ const CSmartTable = vue.defineComponent({
|
|
|
9395
9616
|
? slots.cleanerIcon()
|
|
9396
9617
|
: vue.h(CIcon, { width: '18', content: cilFilterX }),
|
|
9397
9618
|
})),
|
|
9398
|
-
],
|
|
9399
|
-
}),
|
|
9619
|
+
]),
|
|
9400
9620
|
vue.h('div', {
|
|
9401
9621
|
class: 'position-relative',
|
|
9402
9622
|
}, {
|
|
@@ -9409,7 +9629,8 @@ const CSmartTable = vue.defineComponent({
|
|
|
9409
9629
|
vue.h(CSmartTableHead, {
|
|
9410
9630
|
component: 'head',
|
|
9411
9631
|
...props.tableHeadProps,
|
|
9412
|
-
columnFilter:
|
|
9632
|
+
columnFilter: props.columnFilter,
|
|
9633
|
+
columnFilterValue: columnFilterState.value,
|
|
9413
9634
|
columns: props.columns,
|
|
9414
9635
|
columnSorter: props.columnSorter,
|
|
9415
9636
|
selectable: props.selectable,
|
|
@@ -10531,6 +10752,8 @@ var Components = /*#__PURE__*/Object.freeze({
|
|
|
10531
10752
|
CDropdownDivider: CDropdownDivider,
|
|
10532
10753
|
CDropdownMenu: CDropdownMenu,
|
|
10533
10754
|
CDropdownToggle: CDropdownToggle,
|
|
10755
|
+
CElementCoverPlugin: CElementCoverPlugin,
|
|
10756
|
+
CElementCover: CElementCover,
|
|
10534
10757
|
CFooterPlugin: CFooterPlugin,
|
|
10535
10758
|
CFooter: CFooter,
|
|
10536
10759
|
CFormPlugin: CFormPlugin,
|
|
@@ -10597,6 +10820,8 @@ var Components = /*#__PURE__*/Object.freeze({
|
|
|
10597
10820
|
CPagination: CPagination,
|
|
10598
10821
|
CPaginationItem: CPaginationItem,
|
|
10599
10822
|
CSmartPagination: CSmartPagination,
|
|
10823
|
+
CPlaceholderPlugin: CPlaceholderPlugin,
|
|
10824
|
+
CPlaceholder: CPlaceholder,
|
|
10600
10825
|
CProgressPlugin: CProgressPlugin,
|
|
10601
10826
|
CProgress: CProgress,
|
|
10602
10827
|
CProgressBar: CProgressBar,
|
|
@@ -10642,49 +10867,79 @@ var Components = /*#__PURE__*/Object.freeze({
|
|
|
10642
10867
|
CWidgetStatsF: CWidgetStatsF
|
|
10643
10868
|
});
|
|
10644
10869
|
|
|
10870
|
+
const BREAKPOINTS = [
|
|
10871
|
+
'xxl',
|
|
10872
|
+
'xl',
|
|
10873
|
+
'lg',
|
|
10874
|
+
'md',
|
|
10875
|
+
'sm',
|
|
10876
|
+
'xs',
|
|
10877
|
+
];
|
|
10878
|
+
var vcplaceholder = {
|
|
10879
|
+
name: 'c-placeholder',
|
|
10880
|
+
mounted(el, binding) {
|
|
10881
|
+
const value = binding.value;
|
|
10882
|
+
el.classList.add(value.animation ? `placeholder-${value.animation}` : 'placeholder');
|
|
10883
|
+
BREAKPOINTS.forEach((bp) => {
|
|
10884
|
+
const breakpoint = value[bp];
|
|
10885
|
+
const infix = bp === 'xs' ? '' : `-${bp}`;
|
|
10886
|
+
if (typeof breakpoint === 'number') {
|
|
10887
|
+
el.classList.add(`col${infix}-${breakpoint}`);
|
|
10888
|
+
}
|
|
10889
|
+
if (typeof breakpoint === 'boolean') {
|
|
10890
|
+
el.classList.add(`col${infix}`);
|
|
10891
|
+
}
|
|
10892
|
+
});
|
|
10893
|
+
},
|
|
10894
|
+
};
|
|
10895
|
+
|
|
10645
10896
|
const getUID$1 = (prefix) => {
|
|
10646
10897
|
do {
|
|
10647
10898
|
prefix += Math.floor(Math.random() * 1000000);
|
|
10648
10899
|
} while (document.getElementById(prefix));
|
|
10649
10900
|
return prefix;
|
|
10650
10901
|
};
|
|
10651
|
-
const
|
|
10652
|
-
const
|
|
10653
|
-
|
|
10654
|
-
|
|
10655
|
-
|
|
10656
|
-
|
|
10657
|
-
<div class="
|
|
10658
|
-
|
|
10902
|
+
const createPopoverElement = (id, header, content) => {
|
|
10903
|
+
const popover = document.createElement('div');
|
|
10904
|
+
popover.id = id;
|
|
10905
|
+
popover.classList.add('popover', 'bs-popover-auto', 'fade');
|
|
10906
|
+
popover.setAttribute('role', 'popover');
|
|
10907
|
+
popover.innerHTML = `<div class="popover-arrow" data-popper-arrow></div>
|
|
10908
|
+
<div class="popover-header">${header}</div>
|
|
10909
|
+
<div class="popover-body" id="">${content}</div>`;
|
|
10910
|
+
return popover;
|
|
10659
10911
|
};
|
|
10660
|
-
const
|
|
10661
|
-
document.body.appendChild(
|
|
10662
|
-
createPopper(el,
|
|
10912
|
+
const addPopoverElement = (popover, el, popperOptions) => {
|
|
10913
|
+
document.body.appendChild(popover);
|
|
10914
|
+
createPopper(el, popover, popperOptions);
|
|
10663
10915
|
setTimeout(() => {
|
|
10664
|
-
|
|
10916
|
+
popover.classList.add('show');
|
|
10665
10917
|
}, 1);
|
|
10666
10918
|
};
|
|
10667
|
-
const
|
|
10668
|
-
|
|
10919
|
+
const removePopoverElement = (popover) => {
|
|
10920
|
+
popover.classList.remove('show');
|
|
10669
10921
|
setTimeout(() => {
|
|
10670
|
-
document.body.removeChild(
|
|
10922
|
+
document.body.removeChild(popover);
|
|
10671
10923
|
}, 300);
|
|
10672
10924
|
};
|
|
10673
|
-
const
|
|
10674
|
-
const popperElement = document.getElementById(
|
|
10925
|
+
const togglePopoverElement = (popover, el, popperOptions) => {
|
|
10926
|
+
const popperElement = document.getElementById(popover.id);
|
|
10675
10927
|
if (popperElement && popperElement.classList.contains('show')) {
|
|
10676
|
-
|
|
10928
|
+
removePopoverElement(popover);
|
|
10677
10929
|
return;
|
|
10678
10930
|
}
|
|
10679
|
-
|
|
10931
|
+
addPopoverElement(popover, el, popperOptions);
|
|
10680
10932
|
};
|
|
10681
|
-
var
|
|
10933
|
+
var vcpopover = {
|
|
10934
|
+
name: 'c-popover',
|
|
10935
|
+
uid: '',
|
|
10682
10936
|
mounted(el, binding) {
|
|
10683
10937
|
const value = binding.value;
|
|
10684
10938
|
const content = typeof value === 'string' ? value : value.content ? value.content : '';
|
|
10685
|
-
const
|
|
10939
|
+
const header = value.header ? value.header : '';
|
|
10940
|
+
const trigger = value.trigger ? value.trigger : 'click';
|
|
10686
10941
|
// Popper Config
|
|
10687
|
-
const offset = value.offset ? value.offset : [0,
|
|
10942
|
+
const offset = value.offset ? value.offset : [0, 8];
|
|
10688
10943
|
const placement = value.placement ? value.placement : 'top';
|
|
10689
10944
|
const popperOptions = {
|
|
10690
10945
|
placement: placement,
|
|
@@ -10697,33 +10952,33 @@ var vctooltip = {
|
|
|
10697
10952
|
},
|
|
10698
10953
|
],
|
|
10699
10954
|
};
|
|
10700
|
-
const
|
|
10701
|
-
binding.arg =
|
|
10702
|
-
const
|
|
10955
|
+
const popoverUID = getUID$1('popover');
|
|
10956
|
+
binding.arg = popoverUID;
|
|
10957
|
+
const popover = createPopoverElement(popoverUID, header, content);
|
|
10703
10958
|
trigger.includes('click') &&
|
|
10704
10959
|
el.addEventListener('click', () => {
|
|
10705
|
-
|
|
10960
|
+
togglePopoverElement(popover, el, popperOptions);
|
|
10706
10961
|
});
|
|
10707
10962
|
if (trigger.includes('focus')) {
|
|
10708
10963
|
el.addEventListener('focus', () => {
|
|
10709
|
-
|
|
10964
|
+
addPopoverElement(popover, el, popperOptions);
|
|
10710
10965
|
});
|
|
10711
10966
|
el.addEventListener('blur', () => {
|
|
10712
|
-
|
|
10967
|
+
removePopoverElement(popover);
|
|
10713
10968
|
});
|
|
10714
10969
|
}
|
|
10715
10970
|
if (trigger.includes('hover')) {
|
|
10716
10971
|
el.addEventListener('mouseenter', () => {
|
|
10717
|
-
|
|
10972
|
+
addPopoverElement(popover, el, popperOptions);
|
|
10718
10973
|
});
|
|
10719
10974
|
el.addEventListener('mouseleave', () => {
|
|
10720
|
-
|
|
10975
|
+
removePopoverElement(popover);
|
|
10721
10976
|
});
|
|
10722
10977
|
}
|
|
10723
10978
|
},
|
|
10724
|
-
|
|
10725
|
-
const
|
|
10726
|
-
|
|
10979
|
+
unmounted(binding) {
|
|
10980
|
+
const popover = binding.arg && document.getElementById(binding.arg);
|
|
10981
|
+
popover && popover.remove();
|
|
10727
10982
|
},
|
|
10728
10983
|
};
|
|
10729
10984
|
|
|
@@ -10733,47 +10988,43 @@ const getUID = (prefix) => {
|
|
|
10733
10988
|
} while (document.getElementById(prefix));
|
|
10734
10989
|
return prefix;
|
|
10735
10990
|
};
|
|
10736
|
-
const
|
|
10737
|
-
const
|
|
10738
|
-
|
|
10739
|
-
|
|
10740
|
-
|
|
10741
|
-
|
|
10742
|
-
<div class="
|
|
10743
|
-
|
|
10744
|
-
return popover;
|
|
10991
|
+
const createTooltipElement = (id, content) => {
|
|
10992
|
+
const tooltip = document.createElement('div');
|
|
10993
|
+
tooltip.id = id;
|
|
10994
|
+
tooltip.classList.add('tooltip', 'bs-tooltip-auto', 'fade');
|
|
10995
|
+
tooltip.setAttribute('role', 'tooltip');
|
|
10996
|
+
tooltip.innerHTML = `<div class="tooltip-arrow" data-popper-arrow></div>
|
|
10997
|
+
<div class="tooltip-inner" id="">${content}</div>`;
|
|
10998
|
+
return tooltip;
|
|
10745
10999
|
};
|
|
10746
|
-
const
|
|
10747
|
-
document.body.appendChild(
|
|
10748
|
-
createPopper(el,
|
|
11000
|
+
const addTooltipElement = (tooltip, el, popperOptions) => {
|
|
11001
|
+
document.body.appendChild(tooltip);
|
|
11002
|
+
createPopper(el, tooltip, popperOptions);
|
|
10749
11003
|
setTimeout(() => {
|
|
10750
|
-
|
|
11004
|
+
tooltip.classList.add('show');
|
|
10751
11005
|
}, 1);
|
|
10752
11006
|
};
|
|
10753
|
-
const
|
|
10754
|
-
|
|
11007
|
+
const removeTooltipElement = (tooltip) => {
|
|
11008
|
+
tooltip.classList.remove('show');
|
|
10755
11009
|
setTimeout(() => {
|
|
10756
|
-
document.body.removeChild(
|
|
11010
|
+
document.body.removeChild(tooltip);
|
|
10757
11011
|
}, 300);
|
|
10758
11012
|
};
|
|
10759
|
-
const
|
|
10760
|
-
const popperElement = document.getElementById(
|
|
11013
|
+
const toggleTooltipElement = (tooltip, el, popperOptions) => {
|
|
11014
|
+
const popperElement = document.getElementById(tooltip.id);
|
|
10761
11015
|
if (popperElement && popperElement.classList.contains('show')) {
|
|
10762
|
-
|
|
11016
|
+
removeTooltipElement(tooltip);
|
|
10763
11017
|
return;
|
|
10764
11018
|
}
|
|
10765
|
-
|
|
11019
|
+
addTooltipElement(tooltip, el, popperOptions);
|
|
10766
11020
|
};
|
|
10767
|
-
var
|
|
10768
|
-
name: 'c-popover',
|
|
10769
|
-
uid: '',
|
|
11021
|
+
var vctooltip = {
|
|
10770
11022
|
mounted(el, binding) {
|
|
10771
11023
|
const value = binding.value;
|
|
10772
11024
|
const content = typeof value === 'string' ? value : value.content ? value.content : '';
|
|
10773
|
-
const
|
|
10774
|
-
const trigger = value.trigger ? value.trigger : 'click';
|
|
11025
|
+
const trigger = value.trigger ? value.trigger : 'hover';
|
|
10775
11026
|
// Popper Config
|
|
10776
|
-
const offset = value.offset ? value.offset : [0,
|
|
11027
|
+
const offset = value.offset ? value.offset : [0, 0];
|
|
10777
11028
|
const placement = value.placement ? value.placement : 'top';
|
|
10778
11029
|
const popperOptions = {
|
|
10779
11030
|
placement: placement,
|
|
@@ -10786,33 +11037,33 @@ var vcpopover = {
|
|
|
10786
11037
|
},
|
|
10787
11038
|
],
|
|
10788
11039
|
};
|
|
10789
|
-
const
|
|
10790
|
-
binding.arg =
|
|
10791
|
-
const
|
|
11040
|
+
const tooltipUID = getUID('tooltip');
|
|
11041
|
+
binding.arg = tooltipUID;
|
|
11042
|
+
const tooltip = createTooltipElement(tooltipUID, content);
|
|
10792
11043
|
trigger.includes('click') &&
|
|
10793
11044
|
el.addEventListener('click', () => {
|
|
10794
|
-
|
|
11045
|
+
toggleTooltipElement(tooltip, el, popperOptions);
|
|
10795
11046
|
});
|
|
10796
11047
|
if (trigger.includes('focus')) {
|
|
10797
11048
|
el.addEventListener('focus', () => {
|
|
10798
|
-
|
|
11049
|
+
addTooltipElement(tooltip, el, popperOptions);
|
|
10799
11050
|
});
|
|
10800
11051
|
el.addEventListener('blur', () => {
|
|
10801
|
-
|
|
11052
|
+
removeTooltipElement(tooltip);
|
|
10802
11053
|
});
|
|
10803
11054
|
}
|
|
10804
11055
|
if (trigger.includes('hover')) {
|
|
10805
11056
|
el.addEventListener('mouseenter', () => {
|
|
10806
|
-
|
|
11057
|
+
addTooltipElement(tooltip, el, popperOptions);
|
|
10807
11058
|
});
|
|
10808
11059
|
el.addEventListener('mouseleave', () => {
|
|
10809
|
-
|
|
11060
|
+
removeTooltipElement(tooltip);
|
|
10810
11061
|
});
|
|
10811
11062
|
}
|
|
10812
11063
|
},
|
|
10813
|
-
|
|
10814
|
-
const
|
|
10815
|
-
|
|
11064
|
+
beforeUnmount(binding) {
|
|
11065
|
+
const tooltip = binding.arg && document.getElementById(binding.arg);
|
|
11066
|
+
tooltip && tooltip.remove();
|
|
10816
11067
|
},
|
|
10817
11068
|
};
|
|
10818
11069
|
|
|
@@ -10839,6 +11090,7 @@ const CoreuiVue = {
|
|
|
10839
11090
|
// for (const directive in pluginDirectives) {
|
|
10840
11091
|
// app.directive(directive, Directives[directive])
|
|
10841
11092
|
// }
|
|
11093
|
+
app.directive('c-placeholder', vcplaceholder);
|
|
10842
11094
|
app.directive('c-popover', vcpopover);
|
|
10843
11095
|
app.directive('c-tooltip', vctooltip);
|
|
10844
11096
|
},
|
|
@@ -10901,6 +11153,8 @@ exports.CDropdownItem = CDropdownItem;
|
|
|
10901
11153
|
exports.CDropdownMenu = CDropdownMenu;
|
|
10902
11154
|
exports.CDropdownPlugin = CDropdownPlugin;
|
|
10903
11155
|
exports.CDropdownToggle = CDropdownToggle;
|
|
11156
|
+
exports.CElementCover = CElementCover;
|
|
11157
|
+
exports.CElementCoverPlugin = CElementCoverPlugin;
|
|
10904
11158
|
exports.CFooter = CFooter;
|
|
10905
11159
|
exports.CFooterPlugin = CFooterPlugin;
|
|
10906
11160
|
exports.CForm = CForm;
|
|
@@ -10962,6 +11216,8 @@ exports.COffcanvasTitle = COffcanvasTitle;
|
|
|
10962
11216
|
exports.CPagination = CPagination;
|
|
10963
11217
|
exports.CPaginationItem = CPaginationItem;
|
|
10964
11218
|
exports.CPaginationPlugin = CPaginationPlugin;
|
|
11219
|
+
exports.CPlaceholder = CPlaceholder;
|
|
11220
|
+
exports.CPlaceholderPlugin = CPlaceholderPlugin;
|
|
10965
11221
|
exports.CPopover = CPopover;
|
|
10966
11222
|
exports.CPopoverPlugin = CPopoverPlugin;
|
|
10967
11223
|
exports.CProgress = CProgress;
|
|
@@ -11008,6 +11264,7 @@ exports.CWidgetStatsE = CWidgetStatsE;
|
|
|
11008
11264
|
exports.CWidgetStatsF = CWidgetStatsF;
|
|
11009
11265
|
exports.CWidgetsStatsPlugin = CWidgetsStatsPlugin;
|
|
11010
11266
|
exports["default"] = CoreuiVue;
|
|
11267
|
+
exports.vcplaceholder = vcplaceholder;
|
|
11011
11268
|
exports.vcpopover = vcpopover;
|
|
11012
11269
|
exports.vctooltip = vctooltip;
|
|
11013
11270
|
//# sourceMappingURL=index.js.map
|