From c7b51025d0899f59436fd3bd6d1b188066738357 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:39:02 +0100 Subject: [PATCH] refactor(background): move background into separate package Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- packages/background/.eslintrc.js | 8 +++ packages/background/README.md | 34 +++++++++ packages/background/package.json | 48 +++++++++++++ packages/background/src/Background.vue | 92 +++++++++++++++++++++++++ packages/background/src/NodeToolbar.vue | 91 ++++++++++++++++++++++++ packages/background/src/index.ts | 2 + packages/background/src/types.ts | 25 +++++++ packages/background/tsconfig.json | 31 +++++++++ packages/background/vite.config.ts | 45 ++++++++++++ pnpm-lock.yaml | 19 +++++ 10 files changed, 395 insertions(+) create mode 100644 packages/background/.eslintrc.js create mode 100644 packages/background/README.md create mode 100644 packages/background/package.json create mode 100644 packages/background/src/Background.vue create mode 100644 packages/background/src/NodeToolbar.vue create mode 100644 packages/background/src/index.ts create mode 100644 packages/background/src/types.ts create mode 100644 packages/background/tsconfig.json create mode 100644 packages/background/vite.config.ts diff --git a/packages/background/.eslintrc.js b/packages/background/.eslintrc.js new file mode 100644 index 00000000..98c0e4cb --- /dev/null +++ b/packages/background/.eslintrc.js @@ -0,0 +1,8 @@ +module.exports = { + rules: { + 'no-use-before-define': 0, + 'vue/no-setup-props-destructure': 0, + }, + extends: ['../../.eslintrc.js'], + ignorePatterns: ['!**/*'], +} diff --git a/packages/background/README.md b/packages/background/README.md new file mode 100644 index 00000000..82251afb --- /dev/null +++ b/packages/background/README.md @@ -0,0 +1,34 @@ +# Vue Flow: Background Component + +This is a background component for Vue Flow. +It can be used to create a background in your canvas. + +## 🛠 Setup + +```bash +# install +$ yarn add @vue-flow/background + +# or +$ npm i --save @vue-flow/background +``` + +## 🎮 Quickstart + +```vue + + + + +``` diff --git a/packages/background/package.json b/packages/background/package.json new file mode 100644 index 00000000..e79c4c8f --- /dev/null +++ b/packages/background/package.json @@ -0,0 +1,48 @@ +{ + "name": "@vue-flow/background", + "version": "1.0.0", + "private": false, + "license": "MIT", + "author": "Burak Cakmakoglu<78412429+bcakmakoglu@users.noreply.github.com>", + "repository": { + "type": "git", + "url": "git+https://github.com/bcakmakoglu/vue-flow/packages/plugins/background" + }, + "homepage": "https://github.com/bcakmakoglu/vue-flow#readme", + "bugs": { + "url": "https://github.com/bcakmakoglu/vue-flow/issues" + }, + "main": "./dist/vue-flow-plugin-background.js", + "module": "./dist/vue-flow-background.mjs", + "types": "./dist/index.d.ts", + "unpkg": "./dist/vue-flow-background.iife.js", + "jsdelivr": "./dist/vue-flow-background.iife.js", + "files": [ + "dist" + ], + "sideEffects": false, + "scripts": { + "build": "vite build", + "types": "vue-tsc --declaration --emitDeclarationOnly && pnpm lint:dist", + "lint": "eslint --ext \".js,.jsx,.ts,.tsx\" --fix --ignore-path ../../.gitignore .", + "lint:dist": "eslint --ext \".ts,.tsx\" -c .eslintrc.js --fix ./dist", + "test": "exit 0" + }, + "peerDependencies": { + "@vue-flow/core": "^1.0.0", + "vue": "^3.2.37" + }, + "dependencies": {}, + "devDependencies": { + "@vue-flow/core": "workspace:*", + "@vitejs/plugin-vue": "^3.2.0", + "unplugin-auto-import": "^0.12.0", + "vite": "^3.2.5", + "vite-plugin-vue-type-imports": "0.2.0", + "vue-tsc": "^1.0.11" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + } +} diff --git a/packages/background/src/Background.vue b/packages/background/src/Background.vue new file mode 100644 index 00000000..8a04ff20 --- /dev/null +++ b/packages/background/src/Background.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/packages/background/src/NodeToolbar.vue b/packages/background/src/NodeToolbar.vue new file mode 100644 index 00000000..b42b7377 --- /dev/null +++ b/packages/background/src/NodeToolbar.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/packages/background/src/index.ts b/packages/background/src/index.ts new file mode 100644 index 00000000..e7aaa4b7 --- /dev/null +++ b/packages/background/src/index.ts @@ -0,0 +1,2 @@ +export { default as Background } from './Background.vue' +export * from './types' diff --git a/packages/background/src/types.ts b/packages/background/src/types.ts new file mode 100644 index 00000000..487583ca --- /dev/null +++ b/packages/background/src/types.ts @@ -0,0 +1,25 @@ +export enum BackgroundVariant { + Lines = 'lines', + Dots = 'dots', +} + +export interface BackgroundProps { + /** The background pattern variant, {@link BackgroundVariant} */ + variant?: BackgroundVariant + /** Background pattern gap */ + gap?: number + /** Background pattern size */ + size?: number + /** Background pattern color */ + patternColor?: string + /** Background color */ + bgColor?: string + /** Background height */ + height?: number + /** Background width */ + width?: number + /** Background x-coordinate (offset x) */ + x?: number + /** Background y-coordinate (offset y) */ + y?: number +} diff --git a/packages/background/tsconfig.json b/packages/background/tsconfig.json new file mode 100644 index 00000000..e9fd0ac1 --- /dev/null +++ b/packages/background/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "es2017", + "lib": [ + "DOM", + "ESNext" + ], + "strict": true, + "esModuleInterop": true, + "incremental": false, + "skipLibCheck": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": false, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "declaration": true, + "declarationDir": "./dist", + "emitDeclarationOnly": true, + "types": [], + }, + "include": [ + "./src", + ], + "exclude": [ + "node_modules", + "dist" + ] +} diff --git a/packages/background/vite.config.ts b/packages/background/vite.config.ts new file mode 100644 index 00000000..5789c6c5 --- /dev/null +++ b/packages/background/vite.config.ts @@ -0,0 +1,45 @@ +import { resolve } from 'path' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import AutoImport from 'unplugin-auto-import/vite' +import vueTypes from 'vite-plugin-vue-type-imports' + +// https://vitejs.dev/config/ +export default defineConfig({ + resolve: { + extensions: ['.ts', '.vue'], + }, + build: { + emptyOutDir: false, + lib: { + formats: ['es', 'cjs', 'iife'], + entry: resolve(__dirname, 'src/index.ts'), + fileName: 'vue-flow-background', + name: 'vueFlowBackground', + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: ['vue', '@vue-flow/core'], + output: { + dir: './dist', + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + 'vue': 'Vue', + '@vue-flow/core': 'VueFlow', + }, + }, + }, + }, + plugins: [ + vue({ + reactivityTransform: true, + }), + vueTypes(), + AutoImport({ + imports: ['vue', 'vue/macros'], + dts: 'src/auto-imports.d.ts', + }), + ], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index afdaf329..17530db8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -200,6 +200,25 @@ importers: vite-svg-loader: 3.6.0 vue-tsc: 1.0.11_typescript@4.8.4 + packages/background: + specifiers: + '@vitejs/plugin-vue': ^3.2.0 + '@vue-flow/core': workspace:* + unplugin-auto-import: ^0.12.0 + vite: ^3.2.5 + vite-plugin-vue-type-imports: 0.2.0 + vue: ^3.2.37 + vue-tsc: ^1.0.11 + dependencies: + vue: 3.2.40 + devDependencies: + '@vitejs/plugin-vue': 3.2.0_vite@3.2.5+vue@3.2.40 + '@vue-flow/core': link:../core + unplugin-auto-import: 0.12.0 + vite: 3.2.5 + vite-plugin-vue-type-imports: 0.2.0_ek75d3noihdfv6qzog663yntom + vue-tsc: 1.0.11_typescript@4.8.4 + packages/core: specifiers: '@rollup/plugin-replace': ^5.0.1