36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import zIndexManager from './z-index-manager';
|
|
const ctx = '@@ziContext';
|
|
// We don't expect manually bound zindex should be changed
|
|
const zindexable = {
|
|
mounted(el, bindings) {
|
|
const { value = {} } = bindings;
|
|
const { zIndex, enabled } = value;
|
|
el[ctx] = {
|
|
enabled: !!enabled,
|
|
initialized: false
|
|
};
|
|
if (enabled) {
|
|
zIndexManager.ensureZIndex(el, zIndex);
|
|
el[ctx].initialized = true;
|
|
}
|
|
},
|
|
updated(el, bindings) {
|
|
const { value = {} } = bindings;
|
|
const { zIndex, enabled } = value;
|
|
const cachedEnabled = el[ctx].enabled;
|
|
if (enabled && !cachedEnabled) {
|
|
zIndexManager.ensureZIndex(el, zIndex);
|
|
el[ctx].initialized = true;
|
|
}
|
|
el[ctx].enabled = !!enabled;
|
|
},
|
|
unmounted(el, bindings) {
|
|
if (!el[ctx].initialized)
|
|
return;
|
|
const { value = {} } = bindings;
|
|
const { zIndex } = value;
|
|
zIndexManager.unregister(el, zIndex);
|
|
}
|
|
};
|
|
export default zindexable;
|