feat: plugin config
update: package.json
This commit is contained in:
+1
-1
@@ -36,7 +36,6 @@
|
||||
"d3-zoom": "^3.0.0",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"pinia": "^2.0.0-beta.3",
|
||||
"vue": "^3.0.5",
|
||||
"vue-demi": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -76,6 +75,7 @@
|
||||
"rollup-plugin-vue": "^6.0.0",
|
||||
"typescript": "^4.3.5",
|
||||
"vite": "^2.3.8",
|
||||
"vue": "^3.0.5",
|
||||
"vue-tsc": "^0.0.24"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import RevueFlow from './container/RevueFlow';
|
||||
import { App, inject, InjectionKey } from 'vue-demi';
|
||||
|
||||
export default RevueFlow;
|
||||
|
||||
@@ -25,3 +26,32 @@ export { default as useUpdateNodeInternals } from './hooks/useUpdateNodeInternal
|
||||
|
||||
export * from './additional-components';
|
||||
export * from './types';
|
||||
|
||||
export interface RevueFlowOptions {
|
||||
theme: string;
|
||||
}
|
||||
|
||||
export interface RevueFlowPlugin {
|
||||
options?: RevueFlowOptions;
|
||||
|
||||
install(app: App): void;
|
||||
}
|
||||
|
||||
export const RevueFlowPluginSymbol: InjectionKey<RevueFlowPlugin> = Symbol();
|
||||
|
||||
export function RevueFlowPlugin(): RevueFlowPlugin {
|
||||
const RevueFlowPlugin = inject(RevueFlowPluginSymbol);
|
||||
if (!RevueFlowPlugin) throw new Error('No RevueFlowPlugin provided.');
|
||||
|
||||
return RevueFlowPlugin;
|
||||
}
|
||||
|
||||
export function createVueCounterPlugin(options?: RevueFlowOptions): RevueFlowPlugin {
|
||||
return {
|
||||
options,
|
||||
install(app: App) {
|
||||
app.component('revue-flow', RevueFlow);
|
||||
app.provide(RevueFlowPluginSymbol, this);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user