mirror of
https://github.com/tcyeee/obsidian-image-cluster.git
synced 2026-07-22 06:40:05 +00:00
Migrate to pnpm, refactor DOM helpers to Obsidian APIs, and use activeWindow/activeDocument globals
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
277c09263a
commit
dd83b99bfb
12 changed files with 331 additions and 2733 deletions
9
.github/workflows/release.yml
vendored
9
.github/workflows/release.yml
vendored
|
|
@ -10,6 +10,8 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
id-token: write
|
||||
attestations: write
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
|
|
@ -23,6 +25,13 @@ jobs:
|
|||
npm install
|
||||
npm run build
|
||||
|
||||
- name: Attest build provenance
|
||||
uses: actions/attest-build-provenance@v2
|
||||
with:
|
||||
subject-path: |
|
||||
main.js
|
||||
styles.css
|
||||
|
||||
- name: Create release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import esbuild from "esbuild";
|
||||
import process from "process";
|
||||
import builtins from "builtin-modules";
|
||||
import { builtinModules } from "module";
|
||||
|
||||
const banner =
|
||||
`/*
|
||||
|
|
@ -31,7 +31,7 @@ const context = await esbuild.context({
|
|||
"@lezer/common",
|
||||
"@lezer/highlight",
|
||||
"@lezer/lr",
|
||||
...builtins],
|
||||
...builtinModules],
|
||||
format: "cjs",
|
||||
target: "es2018",
|
||||
logLevel: "info",
|
||||
|
|
|
|||
2
main.ts
2
main.ts
|
|
@ -18,7 +18,7 @@ export default class ImgRowPlugin extends Plugin {
|
|||
}
|
||||
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, (await this.loadData()) as Partial<ImgRowPluginSettings>);
|
||||
// 将已保存的设置同步写入 config,使默认值即刻生效
|
||||
applySettingsToConfig(this.settings);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
"name": "Image Cluster",
|
||||
"version": "1.3.2",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Image Cluster helps you easily combine multiple images together in your notes, making your note interface more beautiful and organized.",
|
||||
"description": "Combine multiple images together in your notes for a more beautiful and organized layout.",
|
||||
"author": "tcyeee",
|
||||
"authorUrl": "https://tcyeee.top",
|
||||
"isDesktopOnly": false
|
||||
|
|
|
|||
2406
package-lock.json
generated
2406
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -13,10 +13,9 @@
|
|||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.11.6",
|
||||
"@typescript-eslint/eslint-plugin": "5.29.0",
|
||||
"@typescript-eslint/parser": "5.29.0",
|
||||
"builtin-modules": "3.3.0",
|
||||
"esbuild": "0.17.3",
|
||||
"@typescript-eslint/eslint-plugin": "5.62.0",
|
||||
"@typescript-eslint/parser": "5.62.0",
|
||||
"esbuild": "0.25.0",
|
||||
"obsidian": "latest",
|
||||
"tslib": "2.4.0",
|
||||
"typescript": "4.7.4"
|
||||
|
|
|
|||
487
pnpm-lock.yaml
487
pnpm-lock.yaml
|
|
@ -4,6 +4,14 @@ settings:
|
|||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
overrides:
|
||||
brace-expansion: ^1.1.13
|
||||
picomatch: ^2.3.2
|
||||
minimatch: ^3.1.4
|
||||
flatted: ^3.4.2
|
||||
js-yaml: ^4.1.1
|
||||
ajv: ^6.14.0
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
|
|
@ -12,17 +20,14 @@ importers:
|
|||
specifier: ^16.11.6
|
||||
version: 16.18.126
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: 5.29.0
|
||||
version: 5.29.0(@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@4.7.4))(eslint@8.57.1)(typescript@4.7.4)
|
||||
specifier: 5.62.0
|
||||
version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.7.4))(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: 5.29.0
|
||||
version: 5.29.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
builtin-modules:
|
||||
specifier: 3.3.0
|
||||
version: 3.3.0
|
||||
specifier: 5.62.0
|
||||
version: 5.62.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
esbuild:
|
||||
specifier: 0.17.3
|
||||
version: 0.17.3
|
||||
specifier: 0.25.0
|
||||
version: 0.25.0
|
||||
obsidian:
|
||||
specifier: latest
|
||||
version: 1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.37.2)
|
||||
|
|
@ -41,135 +46,153 @@ packages:
|
|||
'@codemirror/view@6.37.2':
|
||||
resolution: {integrity: sha512-XD3LdgQpxQs5jhOOZ2HRVT+Rj59O4Suc7g2ULvZ+Yi8eCkickrkZ5JFuoDhs2ST1mNI5zSsNYgR3NGa4OUrbnw==}
|
||||
|
||||
'@esbuild/android-arm64@0.17.3':
|
||||
resolution: {integrity: sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/aix-ppc64@0.25.0':
|
||||
resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ppc64]
|
||||
os: [aix]
|
||||
|
||||
'@esbuild/android-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-arm@0.17.3':
|
||||
resolution: {integrity: sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/android-arm@0.25.0':
|
||||
resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-x64@0.17.3':
|
||||
resolution: {integrity: sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/android-x64@0.25.0':
|
||||
resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/darwin-arm64@0.17.3':
|
||||
resolution: {integrity: sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/darwin-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/darwin-x64@0.17.3':
|
||||
resolution: {integrity: sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/darwin-x64@0.25.0':
|
||||
resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/freebsd-arm64@0.17.3':
|
||||
resolution: {integrity: sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/freebsd-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/freebsd-x64@0.17.3':
|
||||
resolution: {integrity: sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/freebsd-x64@0.25.0':
|
||||
resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/linux-arm64@0.17.3':
|
||||
resolution: {integrity: sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-arm@0.17.3':
|
||||
resolution: {integrity: sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-arm@0.25.0':
|
||||
resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ia32@0.17.3':
|
||||
resolution: {integrity: sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-ia32@0.25.0':
|
||||
resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-loong64@0.17.3':
|
||||
resolution: {integrity: sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-loong64@0.25.0':
|
||||
resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-mips64el@0.17.3':
|
||||
resolution: {integrity: sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-mips64el@0.25.0':
|
||||
resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ppc64@0.17.3':
|
||||
resolution: {integrity: sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-ppc64@0.25.0':
|
||||
resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-riscv64@0.17.3':
|
||||
resolution: {integrity: sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-riscv64@0.25.0':
|
||||
resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-s390x@0.17.3':
|
||||
resolution: {integrity: sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-s390x@0.25.0':
|
||||
resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-x64@0.17.3':
|
||||
resolution: {integrity: sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/linux-x64@0.25.0':
|
||||
resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/netbsd-x64@0.17.3':
|
||||
resolution: {integrity: sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/netbsd-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/netbsd-x64@0.25.0':
|
||||
resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/openbsd-x64@0.17.3':
|
||||
resolution: {integrity: sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/openbsd-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/openbsd-x64@0.25.0':
|
||||
resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/sunos-x64@0.17.3':
|
||||
resolution: {integrity: sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/sunos-x64@0.25.0':
|
||||
resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
|
||||
'@esbuild/win32-arm64@0.17.3':
|
||||
resolution: {integrity: sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/win32-arm64@0.25.0':
|
||||
resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-ia32@0.17.3':
|
||||
resolution: {integrity: sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/win32-ia32@0.25.0':
|
||||
resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-x64@0.17.3':
|
||||
resolution: {integrity: sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==}
|
||||
engines: {node: '>=12'}
|
||||
'@esbuild/win32-x64@0.25.0':
|
||||
resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
|
|
@ -231,11 +254,14 @@ packages:
|
|||
'@types/node@16.18.126':
|
||||
resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==}
|
||||
|
||||
'@types/semver@7.7.1':
|
||||
resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
|
||||
|
||||
'@types/tern@0.23.9':
|
||||
resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@5.29.0':
|
||||
resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==}
|
||||
'@typescript-eslint/eslint-plugin@5.62.0':
|
||||
resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^5.0.0
|
||||
|
|
@ -245,8 +271,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@5.29.0':
|
||||
resolution: {integrity: sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==}
|
||||
'@typescript-eslint/parser@5.62.0':
|
||||
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
|
@ -255,12 +281,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/scope-manager@5.29.0':
|
||||
resolution: {integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==}
|
||||
'@typescript-eslint/scope-manager@5.62.0':
|
||||
resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
'@typescript-eslint/type-utils@5.29.0':
|
||||
resolution: {integrity: sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==}
|
||||
'@typescript-eslint/type-utils@5.62.0':
|
||||
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
|
|
@ -269,12 +295,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/types@5.29.0':
|
||||
resolution: {integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==}
|
||||
'@typescript-eslint/types@5.62.0':
|
||||
resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@5.29.0':
|
||||
resolution: {integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==}
|
||||
'@typescript-eslint/typescript-estree@5.62.0':
|
||||
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -282,14 +308,14 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@5.29.0':
|
||||
resolution: {integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==}
|
||||
'@typescript-eslint/utils@5.62.0':
|
||||
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
||||
'@typescript-eslint/visitor-keys@5.29.0':
|
||||
resolution: {integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==}
|
||||
'@typescript-eslint/visitor-keys@5.62.0':
|
||||
resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
'@ungap/structured-clone@1.3.0':
|
||||
|
|
@ -305,8 +331,8 @@ packages:
|
|||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
ajv@6.12.6:
|
||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||
ajv@6.15.0:
|
||||
resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
|
||||
|
||||
ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
|
|
@ -326,17 +352,13 @@ packages:
|
|||
balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
brace-expansion@1.1.12:
|
||||
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
|
||||
brace-expansion@1.1.14:
|
||||
resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==}
|
||||
|
||||
braces@3.0.3:
|
||||
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
builtin-modules@3.3.0:
|
||||
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
callsites@3.1.0:
|
||||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -382,9 +404,9 @@ packages:
|
|||
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
esbuild@0.17.3:
|
||||
resolution: {integrity: sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==}
|
||||
engines: {node: '>=12'}
|
||||
esbuild@0.25.0:
|
||||
resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
|
||||
engines: {node: '>=18'}
|
||||
hasBin: true
|
||||
|
||||
escape-string-regexp@4.0.0:
|
||||
|
|
@ -399,16 +421,6 @@ packages:
|
|||
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
eslint-utils@3.0.0:
|
||||
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
|
||||
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
|
||||
peerDependencies:
|
||||
eslint: '>=5'
|
||||
|
||||
eslint-visitor-keys@2.1.0:
|
||||
resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
eslint-visitor-keys@3.4.3:
|
||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
|
@ -416,6 +428,7 @@ packages:
|
|||
eslint@8.57.1:
|
||||
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
|
||||
hasBin: true
|
||||
|
||||
espree@9.6.1:
|
||||
|
|
@ -474,15 +487,12 @@ packages:
|
|||
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
|
||||
flatted@3.3.3:
|
||||
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
|
||||
flatted@3.4.2:
|
||||
resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
|
||||
functional-red-black-tree@1.0.1:
|
||||
resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||
engines: {node: '>= 6'}
|
||||
|
|
@ -493,7 +503,7 @@ packages:
|
|||
|
||||
glob@7.2.3:
|
||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||
deprecated: Glob versions prior to v9 are no longer supported
|
||||
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
|
||||
|
||||
globals@13.24.0:
|
||||
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
|
||||
|
|
@ -519,17 +529,18 @@ packages:
|
|||
engines: {node: '>=6'}
|
||||
|
||||
imurmurhash@0.1.4:
|
||||
resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
|
||||
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
|
||||
engines: {node: '>=0.8.19'}
|
||||
|
||||
inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
|
||||
|
||||
inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
is-extglob@2.1.1:
|
||||
resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
|
||||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-glob@4.0.3:
|
||||
|
|
@ -547,8 +558,8 @@ packages:
|
|||
isexe@2.0.0:
|
||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||
|
||||
js-yaml@4.1.0:
|
||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||
js-yaml@4.1.1:
|
||||
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
|
||||
hasBin: true
|
||||
|
||||
json-buffer@3.0.1:
|
||||
|
|
@ -558,7 +569,7 @@ packages:
|
|||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||
|
||||
json-stable-stringify-without-jsonify@1.0.1:
|
||||
resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
|
||||
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
|
||||
|
||||
keyv@4.5.4:
|
||||
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
|
||||
|
|
@ -582,8 +593,8 @@ packages:
|
|||
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
||||
engines: {node: '>=8.6'}
|
||||
|
||||
minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
minimatch@3.1.5:
|
||||
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
|
||||
|
||||
moment@2.29.4:
|
||||
resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
|
||||
|
|
@ -591,6 +602,9 @@ packages:
|
|||
ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
natural-compare-lite@1.4.0:
|
||||
resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
|
||||
|
||||
natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
|
|
@ -635,8 +649,8 @@ packages:
|
|||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
picomatch@2.3.1:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
picomatch@2.3.2:
|
||||
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
|
||||
engines: {node: '>=8.6'}
|
||||
|
||||
prelude-ls@1.2.1:
|
||||
|
|
@ -650,10 +664,6 @@ packages:
|
|||
queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
regexpp@3.2.0:
|
||||
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
resolve-from@4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
|
|
@ -703,7 +713,7 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
|
||||
text-table@0.2.0:
|
||||
resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
|
||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||
|
||||
to-regex-range@5.0.1:
|
||||
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||
|
|
@ -769,70 +779,79 @@ snapshots:
|
|||
style-mod: 4.1.2
|
||||
w3c-keyname: 2.2.8
|
||||
|
||||
'@esbuild/android-arm64@0.17.3':
|
||||
'@esbuild/aix-ppc64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-arm@0.17.3':
|
||||
'@esbuild/android-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-x64@0.17.3':
|
||||
'@esbuild/android-arm@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-arm64@0.17.3':
|
||||
'@esbuild/android-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-x64@0.17.3':
|
||||
'@esbuild/darwin-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-arm64@0.17.3':
|
||||
'@esbuild/darwin-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-x64@0.17.3':
|
||||
'@esbuild/freebsd-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm64@0.17.3':
|
||||
'@esbuild/freebsd-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm@0.17.3':
|
||||
'@esbuild/linux-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ia32@0.17.3':
|
||||
'@esbuild/linux-arm@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-loong64@0.17.3':
|
||||
'@esbuild/linux-ia32@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-mips64el@0.17.3':
|
||||
'@esbuild/linux-loong64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ppc64@0.17.3':
|
||||
'@esbuild/linux-mips64el@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-riscv64@0.17.3':
|
||||
'@esbuild/linux-ppc64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-s390x@0.17.3':
|
||||
'@esbuild/linux-riscv64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-x64@0.17.3':
|
||||
'@esbuild/linux-s390x@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/netbsd-x64@0.17.3':
|
||||
'@esbuild/linux-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openbsd-x64@0.17.3':
|
||||
'@esbuild/netbsd-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/sunos-x64@0.17.3':
|
||||
'@esbuild/netbsd-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-arm64@0.17.3':
|
||||
'@esbuild/openbsd-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-ia32@0.17.3':
|
||||
'@esbuild/openbsd-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-x64@0.17.3':
|
||||
'@esbuild/sunos-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-arm64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-ia32@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
|
||||
|
|
@ -844,14 +863,14 @@ snapshots:
|
|||
|
||||
'@eslint/eslintrc@2.1.4':
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
ajv: 6.15.0
|
||||
debug: 4.4.1
|
||||
espree: 9.6.1
|
||||
globals: 13.24.0
|
||||
ignore: 5.3.2
|
||||
import-fresh: 3.3.1
|
||||
js-yaml: 4.1.0
|
||||
minimatch: 3.1.2
|
||||
js-yaml: 4.1.1
|
||||
minimatch: 3.1.5
|
||||
strip-json-comments: 3.1.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -862,7 +881,7 @@ snapshots:
|
|||
dependencies:
|
||||
'@humanwhocodes/object-schema': 2.0.3
|
||||
debug: 4.4.1
|
||||
minimatch: 3.1.2
|
||||
minimatch: 3.1.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -894,21 +913,24 @@ snapshots:
|
|||
|
||||
'@types/node@16.18.126': {}
|
||||
|
||||
'@types/semver@7.7.1': {}
|
||||
|
||||
'@types/tern@0.23.9':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.8
|
||||
|
||||
'@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@4.7.4))(eslint@8.57.1)(typescript@4.7.4)':
|
||||
'@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.7.4))(eslint@8.57.1)(typescript@4.7.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.29.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/scope-manager': 5.29.0
|
||||
'@typescript-eslint/type-utils': 5.29.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/utils': 5.29.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/scope-manager': 5.62.0
|
||||
'@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
debug: 4.4.1
|
||||
eslint: 8.57.1
|
||||
functional-red-black-tree: 1.0.1
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
regexpp: 3.2.0
|
||||
natural-compare-lite: 1.4.0
|
||||
semver: 7.7.2
|
||||
tsutils: 3.21.0(typescript@4.7.4)
|
||||
optionalDependencies:
|
||||
|
|
@ -916,11 +938,11 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@5.29.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
'@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 5.29.0
|
||||
'@typescript-eslint/types': 5.29.0
|
||||
'@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4)
|
||||
'@typescript-eslint/scope-manager': 5.62.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.7.4)
|
||||
debug: 4.4.1
|
||||
eslint: 8.57.1
|
||||
optionalDependencies:
|
||||
|
|
@ -928,14 +950,15 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@5.29.0':
|
||||
'@typescript-eslint/scope-manager@5.62.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.29.0
|
||||
'@typescript-eslint/visitor-keys': 5.29.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/visitor-keys': 5.62.0
|
||||
|
||||
'@typescript-eslint/type-utils@5.29.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
'@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 5.29.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.7.4)
|
||||
'@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.7.4)
|
||||
debug: 4.4.1
|
||||
eslint: 8.57.1
|
||||
tsutils: 3.21.0(typescript@4.7.4)
|
||||
|
|
@ -944,12 +967,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@5.29.0': {}
|
||||
'@typescript-eslint/types@5.62.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@5.29.0(typescript@4.7.4)':
|
||||
'@typescript-eslint/typescript-estree@5.62.0(typescript@4.7.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.29.0
|
||||
'@typescript-eslint/visitor-keys': 5.29.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/visitor-keys': 5.62.0
|
||||
debug: 4.4.1
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -960,22 +983,24 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@5.29.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
'@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@4.7.4)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
|
||||
'@types/json-schema': 7.0.15
|
||||
'@typescript-eslint/scope-manager': 5.29.0
|
||||
'@typescript-eslint/types': 5.29.0
|
||||
'@typescript-eslint/typescript-estree': 5.29.0(typescript@4.7.4)
|
||||
'@types/semver': 7.7.1
|
||||
'@typescript-eslint/scope-manager': 5.62.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.7.4)
|
||||
eslint: 8.57.1
|
||||
eslint-scope: 5.1.1
|
||||
eslint-utils: 3.0.0(eslint@8.57.1)
|
||||
semver: 7.7.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/visitor-keys@5.29.0':
|
||||
'@typescript-eslint/visitor-keys@5.62.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.29.0
|
||||
'@typescript-eslint/types': 5.62.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@ungap/structured-clone@1.3.0': {}
|
||||
|
|
@ -986,7 +1011,7 @@ snapshots:
|
|||
|
||||
acorn@8.15.0: {}
|
||||
|
||||
ajv@6.12.6:
|
||||
ajv@6.15.0:
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.3
|
||||
fast-json-stable-stringify: 2.1.0
|
||||
|
|
@ -1005,7 +1030,7 @@ snapshots:
|
|||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.12:
|
||||
brace-expansion@1.1.14:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
|
|
@ -1014,8 +1039,6 @@ snapshots:
|
|||
dependencies:
|
||||
fill-range: 7.1.1
|
||||
|
||||
builtin-modules@3.3.0: {}
|
||||
|
||||
callsites@3.1.0: {}
|
||||
|
||||
chalk@4.1.2:
|
||||
|
|
@ -1053,30 +1076,33 @@ snapshots:
|
|||
dependencies:
|
||||
esutils: 2.0.3
|
||||
|
||||
esbuild@0.17.3:
|
||||
esbuild@0.25.0:
|
||||
optionalDependencies:
|
||||
'@esbuild/android-arm': 0.17.3
|
||||
'@esbuild/android-arm64': 0.17.3
|
||||
'@esbuild/android-x64': 0.17.3
|
||||
'@esbuild/darwin-arm64': 0.17.3
|
||||
'@esbuild/darwin-x64': 0.17.3
|
||||
'@esbuild/freebsd-arm64': 0.17.3
|
||||
'@esbuild/freebsd-x64': 0.17.3
|
||||
'@esbuild/linux-arm': 0.17.3
|
||||
'@esbuild/linux-arm64': 0.17.3
|
||||
'@esbuild/linux-ia32': 0.17.3
|
||||
'@esbuild/linux-loong64': 0.17.3
|
||||
'@esbuild/linux-mips64el': 0.17.3
|
||||
'@esbuild/linux-ppc64': 0.17.3
|
||||
'@esbuild/linux-riscv64': 0.17.3
|
||||
'@esbuild/linux-s390x': 0.17.3
|
||||
'@esbuild/linux-x64': 0.17.3
|
||||
'@esbuild/netbsd-x64': 0.17.3
|
||||
'@esbuild/openbsd-x64': 0.17.3
|
||||
'@esbuild/sunos-x64': 0.17.3
|
||||
'@esbuild/win32-arm64': 0.17.3
|
||||
'@esbuild/win32-ia32': 0.17.3
|
||||
'@esbuild/win32-x64': 0.17.3
|
||||
'@esbuild/aix-ppc64': 0.25.0
|
||||
'@esbuild/android-arm': 0.25.0
|
||||
'@esbuild/android-arm64': 0.25.0
|
||||
'@esbuild/android-x64': 0.25.0
|
||||
'@esbuild/darwin-arm64': 0.25.0
|
||||
'@esbuild/darwin-x64': 0.25.0
|
||||
'@esbuild/freebsd-arm64': 0.25.0
|
||||
'@esbuild/freebsd-x64': 0.25.0
|
||||
'@esbuild/linux-arm': 0.25.0
|
||||
'@esbuild/linux-arm64': 0.25.0
|
||||
'@esbuild/linux-ia32': 0.25.0
|
||||
'@esbuild/linux-loong64': 0.25.0
|
||||
'@esbuild/linux-mips64el': 0.25.0
|
||||
'@esbuild/linux-ppc64': 0.25.0
|
||||
'@esbuild/linux-riscv64': 0.25.0
|
||||
'@esbuild/linux-s390x': 0.25.0
|
||||
'@esbuild/linux-x64': 0.25.0
|
||||
'@esbuild/netbsd-arm64': 0.25.0
|
||||
'@esbuild/netbsd-x64': 0.25.0
|
||||
'@esbuild/openbsd-arm64': 0.25.0
|
||||
'@esbuild/openbsd-x64': 0.25.0
|
||||
'@esbuild/sunos-x64': 0.25.0
|
||||
'@esbuild/win32-arm64': 0.25.0
|
||||
'@esbuild/win32-ia32': 0.25.0
|
||||
'@esbuild/win32-x64': 0.25.0
|
||||
|
||||
escape-string-regexp@4.0.0: {}
|
||||
|
||||
|
|
@ -1090,13 +1116,6 @@ snapshots:
|
|||
esrecurse: 4.3.0
|
||||
estraverse: 5.3.0
|
||||
|
||||
eslint-utils@3.0.0(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
eslint-visitor-keys: 2.1.0
|
||||
|
||||
eslint-visitor-keys@2.1.0: {}
|
||||
|
||||
eslint-visitor-keys@3.4.3: {}
|
||||
|
||||
eslint@8.57.1:
|
||||
|
|
@ -1109,7 +1128,7 @@ snapshots:
|
|||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
'@ungap/structured-clone': 1.3.0
|
||||
ajv: 6.12.6
|
||||
ajv: 6.15.0
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.6
|
||||
debug: 4.4.1
|
||||
|
|
@ -1130,11 +1149,11 @@ snapshots:
|
|||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
is-path-inside: 3.0.3
|
||||
js-yaml: 4.1.0
|
||||
js-yaml: 4.1.1
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
levn: 0.4.1
|
||||
lodash.merge: 4.6.2
|
||||
minimatch: 3.1.2
|
||||
minimatch: 3.1.5
|
||||
natural-compare: 1.4.0
|
||||
optionator: 0.9.4
|
||||
strip-ansi: 6.0.1
|
||||
|
|
@ -1195,16 +1214,14 @@ snapshots:
|
|||
|
||||
flat-cache@3.2.0:
|
||||
dependencies:
|
||||
flatted: 3.3.3
|
||||
flatted: 3.4.2
|
||||
keyv: 4.5.4
|
||||
rimraf: 3.0.2
|
||||
|
||||
flatted@3.3.3: {}
|
||||
flatted@3.4.2: {}
|
||||
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
functional-red-black-tree@1.0.1: {}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
dependencies:
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -1218,7 +1235,7 @@ snapshots:
|
|||
fs.realpath: 1.0.0
|
||||
inflight: 1.0.6
|
||||
inherits: 2.0.4
|
||||
minimatch: 3.1.2
|
||||
minimatch: 3.1.5
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
|
||||
|
|
@ -1267,7 +1284,7 @@ snapshots:
|
|||
|
||||
isexe@2.0.0: {}
|
||||
|
||||
js-yaml@4.1.0:
|
||||
js-yaml@4.1.1:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
|
||||
|
|
@ -1297,16 +1314,18 @@ snapshots:
|
|||
micromatch@4.0.8:
|
||||
dependencies:
|
||||
braces: 3.0.3
|
||||
picomatch: 2.3.1
|
||||
picomatch: 2.3.2
|
||||
|
||||
minimatch@3.1.2:
|
||||
minimatch@3.1.5:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.12
|
||||
brace-expansion: 1.1.14
|
||||
|
||||
moment@2.29.4: {}
|
||||
|
||||
ms@2.1.3: {}
|
||||
|
||||
natural-compare-lite@1.4.0: {}
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
obsidian@1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.37.2):
|
||||
|
|
@ -1349,7 +1368,7 @@ snapshots:
|
|||
|
||||
path-type@4.0.0: {}
|
||||
|
||||
picomatch@2.3.1: {}
|
||||
picomatch@2.3.2: {}
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
|
|
@ -1357,8 +1376,6 @@ snapshots:
|
|||
|
||||
queue-microtask@1.2.3: {}
|
||||
|
||||
regexpp@3.2.0: {}
|
||||
|
||||
resolve-from@4.0.0: {}
|
||||
|
||||
reusify@1.1.0: {}
|
||||
|
|
|
|||
7
pnpm-workspace.yaml
Normal file
7
pnpm-workspace.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
overrides:
|
||||
brace-expansion: "^1.1.13"
|
||||
picomatch: "^2.3.2"
|
||||
minimatch: "^3.1.4"
|
||||
flatted: "^3.4.2"
|
||||
js-yaml: "^4.1.1"
|
||||
ajv: "^6.14.0"
|
||||
|
|
@ -54,8 +54,7 @@ export function addImageLayoutMarkdownProcessor(plugin: ImgRowPlugin) {
|
|||
|
||||
// 列表中展示缩略图,点击后仍然使用 srcList 中的原图
|
||||
const imgEl = createImage(option, thumbSrc, srcList, imgIdx);
|
||||
const wrapper = document.createElement("div");
|
||||
wrapper.classList.add("plugin-image-wrapper");
|
||||
const wrapper = createDiv({ cls: "plugin-image-wrapper" });
|
||||
wrapper.dataset.imgLine = line.trim(); // 保存原始 markdown 行,供拖拽排序写回使用
|
||||
wrapper.appendChild(imgEl);
|
||||
container.appendChild(wrapper);
|
||||
|
|
@ -109,7 +108,7 @@ export function addImageLayoutMarkdownProcessor(plugin: ImgRowPlugin) {
|
|||
* @returns 图片元素
|
||||
*/
|
||||
function createImage(option: SettingOptions, src: string, srcList?: string[], idx?: number): HTMLImageElement {
|
||||
const img = document.createElement("img");
|
||||
const img = createEl("img");
|
||||
img.src = src;
|
||||
img.classList.add("plugin-image");
|
||||
img.style.setProperty("--plugin-image-size", `${option.size}px`);
|
||||
|
|
@ -117,10 +116,9 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
|
||||
const openOverlay = () => {
|
||||
let curIdx = idx || 0;
|
||||
const overlay = document.createElement("div");
|
||||
overlay.classList.add("plugin-image-overlay");
|
||||
const overlay = createDiv({ cls: "plugin-image-overlay" });
|
||||
|
||||
const largeImg = document.createElement("img");
|
||||
const largeImg = createEl("img");
|
||||
largeImg.src = srcList?.[curIdx] || src;
|
||||
largeImg.classList.add("plugin-image-large");
|
||||
|
||||
|
|
@ -138,10 +136,10 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
largeImg.addEventListener("load", applyTallMode);
|
||||
if (largeImg.complete && largeImg.naturalWidth > 0) applyTallMode();
|
||||
|
||||
const prevBtn = document.createElement("button");
|
||||
const prevBtn = createEl("button");
|
||||
prevBtn.textContent = "←";
|
||||
prevBtn.className = "plugin-image-nav-btn plugin-image-nav-btn-prev";
|
||||
const nextBtn = document.createElement("button");
|
||||
const nextBtn = createEl("button");
|
||||
nextBtn.textContent = "→";
|
||||
nextBtn.className = "plugin-image-nav-btn plugin-image-nav-btn-next";
|
||||
|
||||
|
|
@ -306,7 +304,7 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
setCssProps(largeImg, { transform: `translate(${exitX}px, 0) scale(${scale})` });
|
||||
setCssProps(largeImg, { opacity: "0" });
|
||||
|
||||
setTimeout(() => {
|
||||
activeWindow.setTimeout(() => {
|
||||
// 阶段二:切换图源,瞬间移到入场起始位置(不触发 transition)
|
||||
curIdx = newIdx;
|
||||
largeImg.src = srcList[curIdx];
|
||||
|
|
@ -324,7 +322,7 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
setCssProps(largeImg, { transform: "translate(0, 0) scale(1)" });
|
||||
setCssProps(largeImg, { opacity: "1" });
|
||||
|
||||
setTimeout(() => {
|
||||
activeWindow.setTimeout(() => {
|
||||
largeImg.style.removeProperty("transition"); // 还原 CSS 默认 transition
|
||||
isAnimating = false;
|
||||
}, ANIM_MS);
|
||||
|
|
@ -352,7 +350,7 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
updateBtnState();
|
||||
|
||||
overlay.appendChild(largeImg);
|
||||
document.body.appendChild(overlay);
|
||||
activeDocument.body.appendChild(overlay);
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
overlay.classList.add("plugin-image-overlay-visible");
|
||||
|
|
@ -375,11 +373,11 @@ function createImage(option: SettingOptions, src: string, srcList?: string[], id
|
|||
}
|
||||
}
|
||||
};
|
||||
document.addEventListener("keydown", handleKeydown);
|
||||
activeDocument.addEventListener("keydown", handleKeydown);
|
||||
function closePreview() {
|
||||
overlay.classList.remove("plugin-image-overlay-visible");
|
||||
setTimeout(() => { overlay.remove() }, 300);
|
||||
document.removeEventListener("keydown", handleKeydown);
|
||||
activeWindow.setTimeout(() => { overlay.remove() }, 300);
|
||||
activeDocument.removeEventListener("keydown", handleKeydown);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -421,8 +419,7 @@ export function createContainer(option: SettingOptions, plugin: ImgRowPlugin, ct
|
|||
const container = createImageContainerElement(option);
|
||||
|
||||
// 外层包装:统一承载 setting 按钮 + 面板,便于整体迁移到 .cm-preview-code-block
|
||||
const settingWrapper = document.createElement("div");
|
||||
settingWrapper.className = "plugin-image-setting-outer";
|
||||
const settingWrapper = createDiv({ cls: "plugin-image-setting-outer" });
|
||||
container.appendChild(settingWrapper);
|
||||
|
||||
const settingBtn = createSettingButtonElement();
|
||||
|
|
@ -432,10 +429,10 @@ export function createContainer(option: SettingOptions, plugin: ImgRowPlugin, ct
|
|||
const sizeGroupName = `imgs-size-${Math.random().toString(36).slice(2, 8)}`;
|
||||
|
||||
// setting 面板由 setupSettingPanel 创建;
|
||||
// 挂到 document.body 以彻底脱离 CodeMirror 渲染树,
|
||||
// 挂到 activeDocument.body 以彻底脱离 CodeMirror 渲染树,
|
||||
// 避免祖先元素的 transform/will-change 干扰 position:fixed 定位
|
||||
const { panel, persistIfNeeded, limitCheckbox } = setupSettingPanel(option, plugin, ctx, el, container, sizeGroupName);
|
||||
document.body.appendChild(panel);
|
||||
activeDocument.body.appendChild(panel);
|
||||
// 关联 limitCheckbox,供蒙版点击时同步 UI 状态
|
||||
if (limitCheckbox) containerLimitCheckboxMap.set(container, limitCheckbox);
|
||||
|
||||
|
|
@ -462,7 +459,7 @@ export function createContainer(option: SettingOptions, plugin: ImgRowPlugin, ct
|
|||
// 点击 wrapper 或 panel 之外时自动关闭(panel 已移至 body,需单独判断)
|
||||
// 使用 AbortController 以便在容器销毁时移除监听器,避免泄漏
|
||||
const clickAbortCtrl = new AbortController();
|
||||
document.addEventListener("click", (e: MouseEvent) => {
|
||||
activeDocument.addEventListener("click", (e: MouseEvent) => {
|
||||
// 容器已从 DOM 中移除时,顺带清理 panel 和监听器
|
||||
if (!container.isConnected) {
|
||||
panel.remove();
|
||||
|
|
@ -482,8 +479,7 @@ export function createContainer(option: SettingOptions, plugin: ImgRowPlugin, ct
|
|||
});
|
||||
|
||||
// 安全区域:面板顶部透明块,覆盖按钮与面板之间的间隙,防止鼠标经过间隙时面板提前消失
|
||||
const safeZone = document.createElement("div");
|
||||
safeZone.classList.add("plugin-image-panel-safe-zone");
|
||||
const safeZone = createDiv({ cls: "plugin-image-panel-safe-zone" });
|
||||
panel.appendChild(safeZone);
|
||||
|
||||
// 鼠标移入/移出图片容器:控制阅读模式下按钮的可见性
|
||||
|
|
@ -745,7 +741,7 @@ function applyLimitRows(container: HTMLDivElement, option: SettingOptions, onLim
|
|||
// 如果容器还没有正确布局(宽度为 0),稍后重试一次
|
||||
if (container.offsetWidth === 0 && retryCount < config.LIMIT_MAX_RETRY) {
|
||||
retryCount++;
|
||||
setTimeout(runLimit, config.LIMIT_DELAY);
|
||||
activeWindow.setTimeout(runLimit, config.LIMIT_DELAY);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -810,11 +806,8 @@ function applyLimitRows(container: HTMLDivElement, option: SettingOptions, onLim
|
|||
el.classList.remove("plugin-image-row-hidden");
|
||||
el.classList.add("plugin-image-more-wrapper");
|
||||
|
||||
const mask = document.createElement("div");
|
||||
mask.className = "plugin-image-more-mask";
|
||||
const text = document.createElement("span");
|
||||
text.className = "plugin-image-more-text";
|
||||
text.textContent = `+ ${remainingCount}`;
|
||||
const mask = createDiv({ cls: "plugin-image-more-mask" });
|
||||
const text = createSpan({ cls: "plugin-image-more-text", text: `+ ${remainingCount}` });
|
||||
mask.appendChild(text);
|
||||
|
||||
// 点击蒙版:关闭 limit,同步 UI 复选框,并持久化。
|
||||
|
|
|
|||
55
src/ui.ts
55
src/ui.ts
|
|
@ -4,8 +4,7 @@ import { SettingOptions, SettingPanelDom } from "./domain";
|
|||
* 创建图片容器元素,设置基础类名和间距变量。
|
||||
*/
|
||||
export function createImageContainerElement(option: SettingOptions): HTMLDivElement {
|
||||
const container = document.createElement("div");
|
||||
container.classList.add("plugin-image-container");
|
||||
const container = createDiv({ cls: "plugin-image-container" });
|
||||
container.style.setProperty("--plugin-container-gap", `${option.gap}px`);
|
||||
return container;
|
||||
}
|
||||
|
|
@ -14,12 +13,10 @@ export function createImageContainerElement(option: SettingOptions): HTMLDivElem
|
|||
* 创建右上角的 setting 按钮(仅图标,无事件绑定)。
|
||||
*/
|
||||
export function createSettingButtonElement(): HTMLDivElement {
|
||||
const settingBtn = document.createElement("div");
|
||||
settingBtn.className = "plugin-image-setting-btn-container clickable-icon";
|
||||
const settingBtn = createDiv({ cls: "plugin-image-setting-btn-container clickable-icon" });
|
||||
settingBtn.setAttribute("aria-label", "Image group settings");
|
||||
|
||||
const settingIcon = document.createElement("div");
|
||||
settingIcon.className = "icon--settings";
|
||||
const settingIcon = createDiv({ cls: "icon--settings" });
|
||||
|
||||
settingBtn.appendChild(settingIcon);
|
||||
|
||||
|
|
@ -32,21 +29,18 @@ export function createSettingButtonElement(): HTMLDivElement {
|
|||
*/
|
||||
export function createSettingPanelDom(sizeGroupName: string): SettingPanelDom {
|
||||
// 尺寸选项分组(滑块样式的按钮组)
|
||||
const sizeGroup = document.createElement("div");
|
||||
sizeGroup.className = "plugin-image-setting-size-group";
|
||||
const sizeGroup = createDiv({ cls: "plugin-image-setting-size-group" });
|
||||
sizeGroup.dataset.size = "medium";
|
||||
|
||||
// 背景滑块条
|
||||
const slider = document.createElement("div");
|
||||
slider.className = "plugin-image-setting-size-slider";
|
||||
const slider = createDiv({ cls: "plugin-image-setting-size-slider" });
|
||||
sizeGroup.appendChild(slider);
|
||||
|
||||
sizeGroup.appendChild(createSizeRadio("small", "S", sizeGroupName));
|
||||
sizeGroup.appendChild(createSizeRadio("medium", "M", sizeGroupName));
|
||||
sizeGroup.appendChild(createSizeRadio("large", "L", sizeGroupName));
|
||||
|
||||
const panel = document.createElement("div");
|
||||
panel.className = "plugin-image-setting-panel";
|
||||
const panel = createDiv({ cls: "plugin-image-setting-panel" });
|
||||
panel.appendChild(sizeGroup);
|
||||
panel.appendChild(createSettingCheckbox("border", "border"));
|
||||
panel.appendChild(createSettingCheckbox("shadow", "shadow"));
|
||||
|
|
@ -66,18 +60,13 @@ export function createSettingPanelDom(sizeGroupName: string): SettingPanelDom {
|
|||
|
||||
// 尺寸选项单选(内部仍然使用 radio,外观是按钮组)
|
||||
function createSizeRadio(sizeKey: "small" | "medium" | "large", labelText: string, sizeGroupName: string) {
|
||||
const label = document.createElement("label");
|
||||
label.className = "plugin-image-setting-size-radio";
|
||||
const label = createEl("label", { cls: "plugin-image-setting-size-radio" });
|
||||
|
||||
const input = document.createElement("input");
|
||||
input.type = "radio";
|
||||
input.className = "plugin-image-setting-size-radio-input";
|
||||
const input = createEl("input", { cls: "plugin-image-setting-size-radio-input", type: "radio" });
|
||||
input.dataset.size = sizeKey;
|
||||
input.name = sizeGroupName;
|
||||
|
||||
const textSpan = document.createElement("span");
|
||||
textSpan.className = "plugin-image-setting-size-radio-text";
|
||||
textSpan.textContent = labelText;
|
||||
const textSpan = createSpan({ cls: "plugin-image-setting-size-radio-text", text: labelText });
|
||||
|
||||
label.appendChild(input);
|
||||
label.appendChild(textSpan);
|
||||
|
|
@ -93,23 +82,16 @@ function createSizeRadio(sizeKey: "small" | "medium" | "large", labelText: strin
|
|||
* @returns
|
||||
*/
|
||||
function createSettingCheckbox(settingKey: "border" | "shadow" | "hidden" | "limit", text: string) {
|
||||
const label = document.createElement("label");
|
||||
label.className = "plugin-image-setting-checkbox";
|
||||
const label = createEl("label", { cls: "plugin-image-setting-checkbox" });
|
||||
|
||||
const textSpan = document.createElement("span");
|
||||
textSpan.className = "plugin-image-setting-checkbox-label";
|
||||
textSpan.textContent = text;
|
||||
const textSpan = createSpan({ cls: "plugin-image-setting-checkbox-label", text });
|
||||
|
||||
const switchWrapper = document.createElement("div");
|
||||
switchWrapper.className = "plugin-image-setting-switch";
|
||||
const switchWrapper = createDiv({ cls: "plugin-image-setting-switch" });
|
||||
|
||||
const input = document.createElement("input");
|
||||
input.type = "checkbox";
|
||||
input.className = "plugin-image-setting-switch-input";
|
||||
const input = createEl("input", { cls: "plugin-image-setting-switch-input", type: "checkbox" });
|
||||
input.dataset.setting = settingKey;
|
||||
|
||||
const track = document.createElement("span");
|
||||
track.className = "plugin-image-setting-switch-track";
|
||||
const track = createSpan({ cls: "plugin-image-setting-switch-track" });
|
||||
|
||||
switchWrapper.appendChild(input);
|
||||
switchWrapper.appendChild(track);
|
||||
|
|
@ -128,14 +110,11 @@ function createSettingCheckbox(settingKey: "border" | "shadow" | "hidden" | "lim
|
|||
* @returns 错误提示元素
|
||||
*/
|
||||
export function createErrorDiv(option: SettingOptions): HTMLDivElement {
|
||||
const errorDiv = document.createElement("div");
|
||||
errorDiv.classList.add("plugin-image-error", "plugin-image");
|
||||
const errorDiv = createDiv({ cls: ["plugin-image-error", "plugin-image"] });
|
||||
|
||||
const icon = document.createElement("div");
|
||||
icon.className = "icon--error-picture";
|
||||
const icon = createDiv({ cls: "icon--error-picture" });
|
||||
|
||||
const text = document.createElement("span");
|
||||
text.textContent = "404";
|
||||
const text = createSpan({ text: "404" });
|
||||
|
||||
errorDiv.appendChild(icon);
|
||||
errorDiv.appendChild(text);
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ export async function ensureThumbnailForFile(plugin: ImgRowPlugin, file: TFile,
|
|||
const sx = (width - cropSize) / 2;
|
||||
const sy = (height - cropSize) / 2;
|
||||
|
||||
const canvas = document.createElement("canvas");
|
||||
const canvas = createEl("canvas");
|
||||
canvas.width = targetSide;
|
||||
canvas.height = targetSide;
|
||||
const ctx = canvas.getContext("2d");
|
||||
|
|
|
|||
36
styles.css
36
styles.css
|
|
@ -66,7 +66,7 @@
|
|||
|
||||
.plugin-image-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
|
|
@ -77,8 +77,6 @@
|
|||
z-index: 9999;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
/* 新增:让内部按钮绝对定位参照本身容器 */
|
||||
position: fixed;
|
||||
}
|
||||
.plugin-image-nav-btn {
|
||||
width: 48px;
|
||||
|
|
@ -103,7 +101,7 @@
|
|||
}
|
||||
.plugin-image-nav-btn:disabled {
|
||||
background: rgba(180,180,180,0.5);
|
||||
color: #aaa;
|
||||
color: #aaaaaa;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.plugin-image-nav-btn-prev { left:32px; }
|
||||
|
|
@ -137,26 +135,26 @@
|
|||
}
|
||||
|
||||
.plugin-image-border-large {
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
.plugin-image-more-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.plugin-image-row-hidden {
|
||||
display: none !important;
|
||||
.workspace .plugin-image-row-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.plugin-image-more-mask {
|
||||
pointer-events: all !important ;
|
||||
.workspace .plugin-image-more-mask {
|
||||
pointer-events: all;
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(0, 0, 0, 0.45);
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
border-radius: inherit;
|
||||
|
|
@ -187,7 +185,7 @@
|
|||
position: fixed;
|
||||
min-width: 160px;
|
||||
display: none;
|
||||
background: #fff;
|
||||
background: #ffffff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 6px 24px rgba(0,0,0,0.13);
|
||||
padding: 17px 26px 16px 18px;
|
||||
|
|
@ -217,7 +215,7 @@
|
|||
color: #575757;
|
||||
}
|
||||
.plugin-image-setting-panel input[type="checkbox"] {
|
||||
accent-color: #888;
|
||||
accent-color: #888888;
|
||||
}
|
||||
.plugin-image-setting-checkbox-label {
|
||||
user-select: none;
|
||||
|
|
@ -251,7 +249,7 @@
|
|||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 999px;
|
||||
background: #fff;
|
||||
background: #ffffff;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
|
||||
transition: transform 0.18s ease;
|
||||
}
|
||||
|
|
@ -292,15 +290,17 @@
|
|||
.plugin-image-setting-size-group[data-size="large"] .plugin-image-setting-size-slider {
|
||||
transform: translateX(200%);
|
||||
}
|
||||
.workspace .plugin-image-setting-size-radio {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.plugin-image-setting-size-radio {
|
||||
position: relative;
|
||||
flex: 1 1 0;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
cursor: pointer;
|
||||
font-size: 12.5px;
|
||||
color: #555;
|
||||
color: #555555;
|
||||
z-index: 1;
|
||||
}
|
||||
.plugin-image-setting-size-radio-input {
|
||||
|
|
@ -317,7 +317,7 @@
|
|||
border-radius: 999px;
|
||||
}
|
||||
.plugin-image-setting-size-radio-input:checked + .plugin-image-setting-size-radio-text {
|
||||
color: #fff;
|
||||
color: #ffffff;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue