vue: from jsx to template

This commit is contained in:
Rene
2019-08-01 22:15:57 +02:00
parent 3b6630a30a
commit 4baf988e06
2 changed files with 0 additions and 84 deletions
@@ -1,73 +0,0 @@
import Vue, { VueConstructor, VNode, CreateElement, PropType } from 'vue';
import OverlayScrollbars from 'overlayscrollbars';
export interface OverlayScrollbarsComponentData {
}
export interface OverlayScrollbarsComponentMethods {
osInstance(): OverlayScrollbars | null;
osTarget(): HTMLDivElement | null;
}
export interface OverlayScrollbarsComponentComputed {
}
export interface OverlayScrollbarsComponentProps {
options: OverlayScrollbars.Options;
extensions: OverlayScrollbars.Extensions;
}
// https://github.com/vuejs/vue/issues/7060
export class OverlayScrollbarsComponent extends Vue.extend<OverlayScrollbarsComponentData, OverlayScrollbarsComponentMethods, OverlayScrollbarsComponentComputed, OverlayScrollbarsComponentProps>({
name: 'overlay-scrollbars', // https://vuejs.org/v2/guide/components-registration.html#Component-Names
props: {
options: {
type: Object as PropType<OverlayScrollbars.Options>
},
extensions: {
type: [String, Array, Object] as PropType<OverlayScrollbars.Extensions>
}
},
methods: {
osInstance(): OverlayScrollbars | null {
return (this as OverlayScrollbarsComponent)._osInstace;
},
osTarget(): HTMLDivElement | null {
return this.$el as HTMLDivElement || null;
}
},
watch: {
options(currOptions: OverlayScrollbars.Options, oldOptions: OverlayScrollbars.Options) {
let osInstance = (this as OverlayScrollbarsComponent)._osInstace;
if (OverlayScrollbars.valid(osInstance)) {
osInstance.options(currOptions);
}
}
},
data() {
return {};
},
mounted() {
(this as OverlayScrollbarsComponent)._osInstace = OverlayScrollbars(this.osTarget(), this.options || {}, this.extensions);
},
beforeDestroy() {
let osInstance = (this as OverlayScrollbarsComponent)._osInstace;
if (OverlayScrollbars.valid(osInstance)) {
osInstance.destroy();
(this as OverlayScrollbarsComponent)._osInstace = null;
}
},
render(createElement: CreateElement): VNode {
return (
<div>
{this.$slots.default}
</div>
);
}
}) {
private _osInstace: OverlayScrollbars | null = null;
}
-11
View File
@@ -1,11 +0,0 @@
import Vue, { VNode } from 'vue';
declare global {
namespace JSX {
interface Element extends VNode { }
interface ElementClass extends Vue { }
interface IntrinsicElements {
[elem: string]: any;
}
}
}