diff --git a/eslint.config.ts b/eslint.config.ts index d2acd43..97698c6 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -82,6 +82,7 @@ export default defineConfigWithVueTs( 'import-x/no-unresolved': 'off', // https://github.com/pzmosquito/eslint-import-resolver-vite/blob/67da5e259ee4c9da4c44d81b93364ae2777d00eb/index.js#L100 'import-x/newline-after-import': 'error', 'import-x/first': 'error', + 'import-x/no-named-as-default': 'off', }, }, // endregion <<< eslint-plugin-import-x <<< @@ -96,6 +97,7 @@ export default defineConfigWithVueTs( 'perfectionist/sort-objects': 'off', 'perfectionist/sort-imports': ['error'], 'perfectionist/sort-modules': 'off', + 'perfectionist/sort-object-types': 'off', }, }, // endregion <<< eslint-plugin-perfectionist <<< diff --git a/package.json b/package.json index 9956ce0..aaed119 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@primeuix/themes": "^1.0.1", "@splinetool/runtime": "^1.9.82", "@types/p5": "^1.7.6", + "@types/sortablejs": "^1.15.8", "@unhead/vue": "^2.0.5", "@vant/use": "^1.6.0", "@vueuse/core": "^13.1.0", @@ -78,6 +79,7 @@ "radix-vue": "^1.9.17", "reka-ui": "^2.2.0", "satellite.js": "^5.0.0", + "sortablejs": "^1.15.6", "tailwind-merge": "^3.2.0", "tdesign-icons-vue-next": "^0.3.5", "three": "^0.175.0", @@ -85,6 +87,7 @@ "utils4u": "^4.2.3", "vant": "^4.9.18", "vue": "^3.5.13", + "vue-draggable-plus": "^0.6.0", "vue-i18n": "^11.1.3", "vue-page-stack": "^3.2.0", "vue-router": "^4.5.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e815149..b6fdbc4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,6 +34,9 @@ importers: '@types/p5': specifier: ^1.7.6 version: 1.7.6 + '@types/sortablejs': + specifier: ^1.15.8 + version: 1.15.8 '@unhead/vue': specifier: ^2.0.5 version: 2.0.5(vue@3.5.13(typescript@5.8.3)) @@ -115,6 +118,9 @@ importers: satellite.js: specifier: ^5.0.0 version: 5.0.0 + sortablejs: + specifier: ^1.15.6 + version: 1.15.6 tailwind-merge: specifier: ^3.2.0 version: 3.2.0 @@ -136,6 +142,9 @@ importers: vue: specifier: ^3.5.13 version: 3.5.13(typescript@5.8.3) + vue-draggable-plus: + specifier: ^0.6.0 + version: 0.6.0(@types/sortablejs@1.15.8) vue-i18n: specifier: ^11.1.3 version: 11.1.3(vue@3.5.13(typescript@5.8.3)) @@ -1442,6 +1451,9 @@ packages: '@types/readdir-glob@1.1.5': resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} + '@types/sortablejs@1.15.8': + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} + '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} @@ -4141,6 +4153,9 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + sortablejs@1.15.6: + resolution: {integrity: sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4748,6 +4763,15 @@ packages: '@vue/composition-api': optional: true + vue-draggable-plus@0.6.0: + resolution: {integrity: sha512-G5TSfHrt9tX9EjdG49InoFJbt2NYk0h3kgjgKxkFWr3ulIUays0oFObr5KZ8qzD4+QnhtALiRwIqY6qul4egqw==} + peerDependencies: + '@types/sortablejs': ^1.15.0 + '@vue/composition-api': '*' + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue-eslint-parser@10.1.3: resolution: {integrity: sha512-dbCBnd2e02dYWsXoqX5yKUZlOt+ExIpq7hmHKPb5ZqKcjf++Eo0hMseFTZMLKThrUk61m+Uv6A2YSBve6ZvuDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5869,6 +5893,8 @@ snapshots: dependencies: '@types/node': 22.14.0 + '@types/sortablejs@1.15.8': {} + '@types/stats.js@0.17.3': {} '@types/three@0.175.0': @@ -8845,6 +8871,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + sortablejs@1.15.6: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -9504,6 +9532,10 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.8.3) + vue-draggable-plus@0.6.0(@types/sortablejs@1.15.8): + dependencies: + '@types/sortablejs': 1.15.8 + vue-eslint-parser@10.1.3(eslint@9.24.0(jiti@2.4.2)): dependencies: debug: 4.4.0 diff --git a/src/pages/PkgsUsage/SortableJS.page.vue b/src/pages/PkgsUsage/SortableJS.page.vue new file mode 100644 index 0000000..709774a --- /dev/null +++ b/src/pages/PkgsUsage/SortableJS.page.vue @@ -0,0 +1,429 @@ + + + + + diff --git a/src/pages/PkgsUsage/VueDraggablePlus.page.vue b/src/pages/PkgsUsage/VueDraggablePlus.page.vue new file mode 100644 index 0000000..e06bdf4 --- /dev/null +++ b/src/pages/PkgsUsage/VueDraggablePlus.page.vue @@ -0,0 +1,330 @@ + + + + + diff --git a/typed-router.d.ts b/typed-router.d.ts index fa5a207..7c3ca67 100644 --- a/typed-router.d.ts +++ b/typed-router.d.ts @@ -35,7 +35,9 @@ declare module 'vue-router/auto-routes' { 'PageP5Js': RouteRecordInfo<'PageP5Js', '/Page/p5_js', Record, Record>, 'PageStyle': RouteRecordInfo<'PageStyle', '/Page/Style', Record, Record>, 'PkgsUsageI18n': RouteRecordInfo<'PkgsUsageI18n', '/PkgsUsage/I18n', Record, Record>, + 'PkgsUsageSortableJS': RouteRecordInfo<'PkgsUsageSortableJS', '/PkgsUsage/SortableJS', Record, Record>, 'PkgsUsageTsEnumUtil': RouteRecordInfo<'PkgsUsageTsEnumUtil', '/PkgsUsage/ts-enum-util', Record, Record>, + 'PkgsUsageVueDraggablePlus': RouteRecordInfo<'PkgsUsageVueDraggablePlus', '/PkgsUsage/VueDraggablePlus', Record, Record>, 'UIComponentsAntdV': RouteRecordInfo<'UIComponentsAntdV', '/UI-components/AntdV', Record, Record>, 'UIComponentsComponents': RouteRecordInfo<'UIComponentsComponents', '/UI-components/Components', Record, Record>, 'UIComponentsInfiniteLoading': RouteRecordInfo<'UIComponentsInfiniteLoading', '/UI-components/infinite-loading', Record, Record>, diff --git a/vite.config.ts b/vite.config.ts index 12efdec..be725be 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -34,6 +34,7 @@ export default defineConfig(({ command, mode }) => { 'p5', '@splinetool/runtime', 'satellite.js', + 'ts-enum-util' ], exclude: ['quill', 'chart.js/auto'], },