Skip to content

Commit 60edfe9

Browse files
committed
refactor: CElementCover - change boundaries API
1 parent d1aeb80 commit 60edfe9

File tree

4 files changed

+11
-19
lines changed

4 files changed

+11
-19
lines changed

src/components/element-cover/CElementCover.vue

+6-14
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,17 @@ export default {
6767
setOffsets () {
6868
const parent = this.$el.parentElement
6969
this.parentCoords = parent.getBoundingClientRect()
70-
this.boundaries.forEach(cover => {
71-
const element = this.getElement(parent, cover.tag, cover.class)
72-
if (!element || !cover.sides) {
70+
this.boundaries.forEach(({sides, query}) => {
71+
const element = parent.querySelector(query)
72+
if (!element || !sides) {
7373
return
7474
}
75-
cover.sides.forEach(side => {
76-
const sideMargin = Math.abs(element[side] - this.parentCoords[side])
75+
const coords = element.getBoundingClientRect()
76+
sides.forEach(side => {
77+
const sideMargin = Math.abs(coords[side] - this.parentCoords[side])
7778
this.containerCoords[side] = sideMargin + 'px'
7879
})
7980
})
80-
},
81-
getElement (node, tag, styleClass) {
82-
let element = null
83-
if (styleClass) {
84-
element = node.getElementsByClassName(styleClass)[0]
85-
} else if (tag) {
86-
element = node.getElementsByTagName(tag)[0]
87-
}
88-
return element ? element.getBoundingClientRect() : null
8981
}
9082
}
9183
}

src/components/element-cover/tests/CElementCover.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ const App = localVue.extend({
1616
boundaries: [
1717
{
1818
sides: ['top', 'left'],
19-
class: 'first'
19+
query: '.first'
2020
},
2121
{
2222
sides: ['bottom'],
23-
tag: 'non-existing'
23+
query: 'non-existing'
2424
},
2525
{
2626
sides: ['bottom']

src/components/index.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ export declare class CDropdownHeader extends Vue {
150150
export declare class CDropdownItem extends CLink {}
151151

152152
export declare class CElementCover extends Vue {
153-
boundaries: Array<{side: string[], tag?: string, class?: string}>
153+
boundaries: Array<{side: string[], query: string }>
154154
centered: boolean
155155
opacity: number
156156
}

src/components/table/CDataTable.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@
190190
<slot name="loading" v-if="loading">
191191
<CElementCover
192192
:boundaries="[
193-
{ sides: ['top'], tag: 'TD' },
194-
{ sides: ['bottom'], tag: 'TBODY' }
193+
{ sides: ['top'], query: 'td' },
194+
{ sides: ['bottom'], query: 'tbody' }
195195
]"
196196
/>
197197
</slot>

0 commit comments

Comments
 (0)