zcw-shared 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +87 -55
  2. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +13 -0
  3. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +46 -0
  4. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +1 -0
  5. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +4 -0
  6. package/dist/functions/platform/tencent-cloud/getSecret.js +19 -0
  7. package/dist/functions/platform/tencent-cloud/getSecret.js.map +1 -0
  8. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +27 -0
  9. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +287 -0
  10. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +1 -0
  11. package/dist/functions/platform/uniapp/build.d.ts +21 -0
  12. package/dist/functions/platform/uniapp/build.js +83 -0
  13. package/dist/functions/platform/uniapp/build.js.map +1 -0
  14. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +11 -0
  15. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +30 -0
  16. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +1 -0
  17. package/dist/functions/platform/uniapp/detectProjectType.d.ts +20 -0
  18. package/dist/functions/platform/uniapp/detectProjectType.js +68 -0
  19. package/dist/functions/platform/uniapp/detectProjectType.js.map +1 -0
  20. package/dist/functions/platform/uniapp/parseManifest.d.ts +18 -0
  21. package/dist/functions/platform/uniapp/parseManifest.js +49 -0
  22. package/dist/functions/platform/uniapp/parseManifest.js.map +1 -0
  23. package/dist/functions/platform/uniapp/waitForPages.d.ts +7 -0
  24. package/dist/functions/platform/uniapp/waitForPages.js +20 -0
  25. package/dist/functions/platform/uniapp/waitForPages.js.map +1 -0
  26. package/dist/functions/string/visualizeRegexSteps.d.ts +39 -0
  27. package/dist/functions/string/visualizeRegexSteps.js +446 -0
  28. package/dist/functions/string/visualizeRegexSteps.js.map +1 -0
  29. package/dist/functions/utils/createI18n.d.ts +2 -0
  30. package/dist/functions/utils/createI18n.js +97 -0
  31. package/dist/functions/utils/createI18n.js.map +1 -0
  32. package/dist/functions/utils/formatString.d.ts +5 -0
  33. package/dist/functions/utils/formatString.js +9 -0
  34. package/dist/functions/utils/formatString.js.map +1 -0
  35. package/dist/functions/vue/dynamicMount.d.ts +6 -4
  36. package/dist/functions/vue/isVNode.d.ts +1 -1
  37. package/dist/functions/vue/isVueComponent.d.ts +1 -1
  38. package/dist/hooks/usePermission.d.ts +7 -0
  39. package/dist/hooks/usePermission.js +123 -0
  40. package/dist/hooks/usePermission.js.map +1 -0
  41. package/dist/vue-hooks/browser/useBattery.d.ts +1 -1
  42. package/dist/vue-hooks/browser/useBluetooth.d.ts +1 -1
  43. package/dist/vue-hooks/browser/useCamera.d.ts +1 -1
  44. package/dist/vue-hooks/browser/useClipboard.d.ts +1 -1
  45. package/dist/vue-hooks/browser/useFileUpload.d.ts +3 -2
  46. package/dist/vue-hooks/browser/useFileUpload.js +12 -1
  47. package/dist/vue-hooks/browser/useFileUpload.js.map +1 -1
  48. package/dist/vue-hooks/browser/useFullscreen.d.ts +1 -1
  49. package/dist/vue-hooks/browser/useGamepad.d.ts +1 -1
  50. package/dist/vue-hooks/browser/useGeolocation.d.ts +1 -1
  51. package/dist/vue-hooks/browser/useMediaSession.d.ts +1 -1
  52. package/dist/vue-hooks/browser/useMicrophone.d.ts +1 -1
  53. package/dist/vue-hooks/browser/useNetwork.d.ts +1 -1
  54. package/dist/vue-hooks/browser/useOrientation.d.ts +1 -1
  55. package/dist/vue-hooks/browser/usePageVisibility.d.ts +1 -1
  56. package/dist/vue-hooks/browser/useScreenOrientation.d.ts +1 -1
  57. package/dist/vue-hooks/browser/useScreenWakeLock.d.ts +1 -1
  58. package/dist/vue-hooks/browser/useShare.d.ts +1 -1
  59. package/dist/vue-hooks/browser/useVibration.d.ts +1 -1
  60. package/dist/vue-hooks/dom/useAutoUpdate.d.ts +1 -1
  61. package/dist/vue-hooks/dom/useClickOutside.d.ts +1 -1
  62. package/dist/vue-hooks/dom/useDraggable.d.ts +4 -4
  63. package/dist/vue-hooks/dom/useEventListener.d.ts +1 -1
  64. package/dist/vue-hooks/dom/useKeyboard.d.ts +29 -0
  65. package/dist/vue-hooks/dom/useKeyboard.js +129 -0
  66. package/dist/vue-hooks/dom/useKeyboard.js.map +1 -0
  67. package/dist/vue-hooks/dom/useResizable.d.ts +8 -3
  68. package/dist/vue-hooks/history/useDebouncedRefHistory.d.ts +1 -1
  69. package/dist/vue-hooks/history/useManualRefHistory.d.ts +1 -1
  70. package/dist/vue-hooks/history/useRefHistory.d.ts +1 -1
  71. package/dist/vue-hooks/state/injectLocal.d.ts +1 -1
  72. package/dist/vue-hooks/state/provideLocal.d.ts +1 -1
  73. package/dist/vue-hooks/state/useAsyncState.d.ts +1 -1
  74. package/dist/vue-hooks/state/useCounter.d.ts +1 -1
  75. package/dist/vue-hooks/state/useFileUpload.d.ts +23 -0
  76. package/dist/vue-hooks/state/useFileUpload.js +93 -0
  77. package/dist/vue-hooks/state/useFileUpload.js.map +1 -0
  78. package/dist/vue-hooks/state/useToggle.d.ts +1 -1
  79. package/dist/vue-hooks/time/useInterval.d.ts +1 -1
  80. package/dist/vue-hooks/time/useTimeout.d.ts +1 -1
  81. package/dist/vue-hooks/worker/useWebWorker.d.ts +4 -4
  82. package/dist/vue-hooks/worker/useWorkerFunction.d.ts +4 -4
  83. package/dist/vue-hooks/worker/useWorkerPool.d.ts +4 -4
  84. package/package.json +1 -1
  85. package/types/vue.d.ts +1 -1
  86. package/dist/functions/algorithm/lcsVisual.d.ts +0 -6
  87. package/dist/functions/algorithm/lcsVisual.js +0 -88
  88. package/dist/functions/algorithm/lcsVisual.js.map +0 -1
  89. package/dist/functions/algorithm/mergeSortVisual.d.ts +0 -5
  90. package/dist/functions/algorithm/mergeSortVisual.js +0 -103
  91. package/dist/functions/algorithm/mergeSortVisual.js.map +0 -1
  92. package/dist/functions/algorithm/nQueensVisual.d.ts +0 -14
  93. package/dist/functions/algorithm/nQueensVisual.js +0 -94
  94. package/dist/functions/algorithm/nQueensVisual.js.map +0 -1
  95. package/dist/functions/algorithm/numIslandsVisual.d.ts +0 -17
  96. package/dist/functions/algorithm/numIslandsVisual.js +0 -102
  97. package/dist/functions/algorithm/numIslandsVisual.js.map +0 -1
  98. package/dist/functions/algorithm/quickSortVisual.d.ts +0 -18
  99. package/dist/functions/algorithm/quickSortVisual.js +0 -104
  100. package/dist/functions/algorithm/quickSortVisual.js.map +0 -1
  101. package/dist/functions/browser/detectDevice.d.ts +0 -10
  102. package/dist/functions/browser/detectDevice.js +0 -49
  103. package/dist/functions/browser/detectDevice.js.map +0 -1
  104. package/dist/functions/cookie/getCookie.d.ts +0 -5
  105. package/dist/functions/cookie/getCookie.js +0 -14
  106. package/dist/functions/cookie/getCookie.js.map +0 -1
  107. package/dist/functions/cookie/removeCookie.d.ts +0 -8
  108. package/dist/functions/cookie/removeCookie.js +0 -12
  109. package/dist/functions/cookie/removeCookie.js.map +0 -1
  110. package/dist/functions/cookie/setCookie.d.ts +0 -11
  111. package/dist/functions/cookie/setCookie.js +0 -23
  112. package/dist/functions/cookie/setCookie.js.map +0 -1
  113. package/dist/functions/data-structures/EventEmitter.d.ts +0 -32
  114. package/dist/functions/data-structures/EventEmitter.js +0 -108
  115. package/dist/functions/data-structures/EventEmitter.js.map +0 -1
  116. package/dist/functions/data-structures/MyPromise.d.ts +0 -32
  117. package/dist/functions/data-structures/MyPromise.js +0 -254
  118. package/dist/functions/data-structures/MyPromise.js.map +0 -1
  119. package/dist/functions/reactive/useReactiveCookie.d.ts +0 -19
  120. package/dist/functions/reactive/useReactiveCookie.js +0 -84
  121. package/dist/functions/reactive/useReactiveCookie.js.map +0 -1
  122. package/dist/hooks/useClickOutside.d.ts +0 -12
  123. package/dist/hooks/useClickOutside.js +0 -16
  124. package/dist/hooks/useClickOutside.js.map +0 -1
  125. package/dist/hooks/useClipboard.d.ts +0 -20
  126. package/dist/hooks/useClipboard.js +0 -33
  127. package/dist/hooks/useClipboard.js.map +0 -1
  128. package/dist/hooks/useCounter.d.ts +0 -19
  129. package/dist/hooks/useCounter.js +0 -44
  130. package/dist/hooks/useCounter.js.map +0 -1
  131. package/dist/hooks/useEventListener.d.ts +0 -14
  132. package/dist/hooks/useEventListener.js +0 -18
  133. package/dist/hooks/useEventListener.js.map +0 -1
  134. package/dist/hooks/useInterval.d.ts +0 -19
  135. package/dist/hooks/useInterval.js +0 -33
  136. package/dist/hooks/useInterval.js.map +0 -1
  137. package/dist/hooks/useTimeout.d.ts +0 -20
  138. package/dist/hooks/useTimeout.js +0 -40
  139. package/dist/hooks/useTimeout.js.map +0 -1
  140. package/dist/hooks/useToggle.d.ts +0 -15
  141. package/dist/hooks/useToggle.js +0 -23
  142. package/dist/hooks/useToggle.js.map +0 -1
  143. package/dist/reactive/createGlobalState.d.ts +0 -2
  144. package/dist/reactive/createGlobalState.js +0 -11
  145. package/dist/reactive/createGlobalState.js.map +0 -1
  146. package/dist/reactive/createSharedComposable.d.ts +0 -2
  147. package/dist/reactive/createSharedComposable.js +0 -13
  148. package/dist/reactive/createSharedComposable.js.map +0 -1
  149. package/dist/reactive/errorManager.d.ts +0 -63
  150. package/dist/reactive/errorManager.js +0 -199
  151. package/dist/reactive/errorManager.js.map +0 -1
  152. package/dist/reactive/i18n.d.ts +0 -27
  153. package/dist/reactive/i18n.js +0 -119
  154. package/dist/reactive/i18n.js.map +0 -1
  155. package/dist/reactive/permission.d.ts +0 -40
  156. package/dist/reactive/permission.js +0 -189
  157. package/dist/reactive/permission.js.map +0 -1
  158. package/dist/reactive/pinia.d.ts +0 -52
  159. package/dist/reactive/pinia.js +0 -183
  160. package/dist/reactive/pinia.js.map +0 -1
  161. package/dist/reactive/useAltool.d.ts +0 -39
  162. package/dist/reactive/useAltool.js +0 -350
  163. package/dist/reactive/useAltool.js.map +0 -1
  164. package/dist/reactive/useCache.d.ts +0 -18
  165. package/dist/reactive/useCache.js +0 -82
  166. package/dist/reactive/useCache.js.map +0 -1
  167. package/dist/reactive/useLocalStorage.d.ts +0 -8
  168. package/dist/reactive/useLocalStorage.js +0 -101
  169. package/dist/reactive/useLocalStorage.js.map +0 -1
  170. package/dist/reactive/usePluginSystem.d.ts +0 -11
  171. package/dist/reactive/usePluginSystem.js +0 -34
  172. package/dist/reactive/usePluginSystem.js.map +0 -1
  173. package/dist/reactive/useSessionStorage.d.ts +0 -8
  174. package/dist/reactive/useSessionStorage.js +0 -101
  175. package/dist/reactive/useSessionStorage.js.map +0 -1
  176. package/dist/reactive/useStorage.d.ts +0 -13
  177. package/dist/reactive/useStorage.js +0 -62
  178. package/dist/reactive/useStorage.js.map +0 -1
  179. package/dist/reactive/useStorageWithIndexedDB.d.ts +0 -8
  180. package/dist/reactive/useStorageWithIndexedDB.js +0 -132
  181. package/dist/reactive/useStorageWithIndexedDB.js.map +0 -1
  182. package/references/vue.d.ts +0 -242
@@ -1,4 +1,4 @@
1
- import type { Ref } from '../../../references/vue.d';
1
+ import type { Ref } from 'vue';
2
2
  import type { setTimeout } from '../../../references/timer.d';
3
3
  import type { VueCompositionAPI } from '../../../types/vue.d';
4
4
  export interface AsyncStateEnvironment {
@@ -1,4 +1,4 @@
1
- import type { Ref } from '../../../references/vue.d';
1
+ import type { Ref } from 'vue';
2
2
  import type { VueCompositionAPI } from '../../../types/vue.d';
3
3
  export interface UseCounterDeps {
4
4
  vue: Pick<Required<VueCompositionAPI>, 'ref'>;
@@ -0,0 +1,23 @@
1
+ import type { Ref } from '../../../references/vue.d';
2
+ import type { VueCompositionAPI } from '../../../types/vue.d';
3
+ import type { UploadFile, BeforeUploadHandler, UploadHandler, AfterUploadHandler } from '../../../types/file-upload.d';
4
+ import type { File } from '../../../references/browser.d';
5
+ export interface UseFileUploadEnvironment {
6
+ vue: Pick<Required<VueCompositionAPI>, 'ref' | 'shallowRef' | 'watch'>;
7
+ }
8
+ export interface UseFileUploadOptions {
9
+ fileList?: UploadFile[];
10
+ maxCount?: number;
11
+ beforeUpload?: BeforeUploadHandler;
12
+ upload?: UploadHandler;
13
+ afterUpload?: AfterUploadHandler;
14
+ }
15
+ export interface UseFileUploadReturn {
16
+ readonly fileList: Ref<UploadFile[]>;
17
+ readonly: (list: UploadFile[]) => void;
18
+ appendFileAt: (file: UploadFile, index?: number) => void;
19
+ replaceFileAt: (file: UploadFile, index: number) => void;
20
+ addFile: (file: File) => Promise<void>;
21
+ }
22
+ export declare function useFileUpload(options: UseFileUploadOptions, env: UseFileUploadEnvironment): UseFileUploadReturn;
23
+ export default useFileUpload;
@@ -0,0 +1,93 @@
1
+ export function useFileUpload(options, env) {
2
+ const { fileList: initialFileList = [], maxCount, beforeUpload, upload, afterUpload } = options;
3
+ const fileList = env.vue.shallowRef(initialFileList);
4
+ function readonly(list) {
5
+ fileList.value = list;
6
+ }
7
+ function checkMaxCount() {
8
+ if (maxCount !== undefined && fileList.value.length >= maxCount) {
9
+ return false;
10
+ }
11
+ return true;
12
+ }
13
+ function generateUid() {
14
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
15
+ }
16
+ function appendFileAt(file, index) {
17
+ if (!checkMaxCount()) {
18
+ throw new Error(`文件数量已达到最大限制 ${maxCount}`);
19
+ }
20
+ if (index === undefined || index === null) {
21
+ fileList.value = [...fileList.value, file];
22
+ }
23
+ else {
24
+ if (index < 0 || index > fileList.value.length) {
25
+ throw new Error(`索引 ${index} 超出范围`);
26
+ }
27
+ const newList = [...fileList.value];
28
+ newList.splice(index, 0, file);
29
+ fileList.value = newList;
30
+ }
31
+ }
32
+ function replaceFileAt(file, index) {
33
+ if (index < 0 || index >= fileList.value.length) {
34
+ throw new Error(`索引 ${index} 超出范围`);
35
+ }
36
+ const newList = [...fileList.value];
37
+ newList[index] = file;
38
+ fileList.value = newList;
39
+ }
40
+ async function addFile(file) {
41
+ if (!checkMaxCount()) {
42
+ throw new Error(`文件数量已达到最大限制 ${maxCount}`);
43
+ }
44
+ let processedFile = file;
45
+ if (beforeUpload) {
46
+ processedFile = await beforeUpload(file);
47
+ }
48
+ if (processedFile === false) {
49
+ return;
50
+ }
51
+ const finalFile = (processedFile || file);
52
+ const uploadFile = {
53
+ uid: generateUid(),
54
+ file: finalFile,
55
+ state: 'ready'
56
+ };
57
+ appendFileAt(uploadFile);
58
+ if (!upload) {
59
+ uploadFile.state = 'done';
60
+ return;
61
+ }
62
+ try {
63
+ uploadFile.state = 'uploading';
64
+ const result = await upload(finalFile);
65
+ if (result) {
66
+ uploadFile.onlinePreview = result;
67
+ }
68
+ uploadFile.state = 'done';
69
+ if (afterUpload) {
70
+ await afterUpload(finalFile, result);
71
+ }
72
+ }
73
+ catch (error) {
74
+ uploadFile.state = 'failed';
75
+ throw error;
76
+ }
77
+ finally {
78
+ const currentIndex = fileList.value.findIndex(item => item.uid === uploadFile.uid);
79
+ if (currentIndex !== -1) {
80
+ replaceFileAt(uploadFile, currentIndex);
81
+ }
82
+ }
83
+ }
84
+ return {
85
+ fileList: fileList,
86
+ readonly,
87
+ appendFileAt,
88
+ replaceFileAt,
89
+ addFile
90
+ };
91
+ }
92
+ export default useFileUpload;
93
+ //# sourceMappingURL=useFileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileUpload.js","sourceRoot":"","sources":["../../../src/vue-hooks/state/useFileUpload.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Ref } from '../../../references/vue.d';
1
+ import type { Ref } from 'vue';
2
2
  import type { VueCompositionAPI } from '../../../types/vue.d';
3
3
  export interface UseToggleDeps {
4
4
  vue: Pick<Required<VueCompositionAPI>, 'ref'>;
@@ -1,4 +1,4 @@
1
- import type { Ref } from '../../../references/vue.d';
1
+ import type { Ref } from 'vue';
2
2
  import type { setInterval, clearInterval } from '../../../references/timer.d';
3
3
  import type { VueCompositionAPI } from '../../../types/vue.d';
4
4
  export interface UseIntervalDeps {
@@ -1,4 +1,4 @@
1
- import type { Ref } from '../../../references/vue.d';
1
+ import type { Ref } from 'vue';
2
2
  import type { setTimeout, clearTimeout } from '../../../references/timer.d';
3
3
  import type { VueCompositionAPI } from '../../../types/vue.d';
4
4
  export interface UseTimeoutDeps {
@@ -1,6 +1,6 @@
1
1
  import type { Transferable, WorkerConstructor } from '../../../references/worker.d';
2
2
  import type { setTimeout, clearTimeout } from '../../../references/timer.d';
3
- import type { Ref } from '../../../references/vue.d';
3
+ import type { Ref } from 'vue';
4
4
  import type { WebWorkerOptions, WebWorkerResult } from '../../../types/worker';
5
5
  export interface WebWorkerDeps {
6
6
  Worker: WorkerConstructor;
@@ -9,9 +9,9 @@ export interface WebWorkerDeps {
9
9
  ref: <T>(value: T) => Ref<T>;
10
10
  }
11
11
  export default function useWebWorker(deps: WebWorkerDeps, options: WebWorkerOptions): {
12
- isReady: Ref<boolean>;
13
- isLoading: Ref<boolean>;
14
- error: Ref<Error | null>;
12
+ isReady: Ref<boolean, boolean>;
13
+ isLoading: Ref<boolean, boolean>;
14
+ error: Ref<Error | null, Error | null>;
15
15
  postMessage: <T>(data: unknown, transfer?: Transferable[]) => Promise<WebWorkerResult<T>>;
16
16
  postMessages: <T>(messages: any[], transfer?: Transferable[][]) => Promise<WebWorkerResult<T>[]>;
17
17
  terminate: () => void;
@@ -1,7 +1,7 @@
1
1
  import type { Window } from '../../../references/browser.d';
2
2
  import type { WorkerConstructor } from '../../../references/worker.d';
3
3
  import type { setTimeout, clearTimeout } from '../../../references/timer.d';
4
- import type { Ref } from '../../../references/vue.d';
4
+ import type { Ref } from 'vue';
5
5
  import type { WorkerFunction, WorkerFunctionOptions, WorkerFunctionResult } from '../../../types/worker';
6
6
  export interface WorkerFunctionDeps {
7
7
  Worker: WorkerConstructor;
@@ -12,9 +12,9 @@ export interface WorkerFunctionDeps {
12
12
  ref: <T>(value: T) => Ref<T>;
13
13
  }
14
14
  export default function useWorkerFunction<T extends any[], R>(deps: WorkerFunctionDeps, options: WorkerFunctionOptions, fn: WorkerFunction<T, R>): {
15
- isReady: Ref<boolean>;
16
- isLoading: Ref<boolean>;
17
- error: Ref<Error | null>;
15
+ isReady: Ref<boolean, boolean>;
16
+ isLoading: Ref<boolean, boolean>;
17
+ error: Ref<Error | null, Error | null>;
18
18
  execute: (...args: T) => Promise<WorkerFunctionResult<R>>;
19
19
  terminate: () => void;
20
20
  getStatus: () => {
@@ -1,6 +1,6 @@
1
1
  import type { WorkerConstructor } from '../../../references/worker.d';
2
2
  import type { setTimeout, clearTimeout, setInterval, clearInterval } from '../../../references/timer.d';
3
- import type { Ref } from '../../../references/vue.d';
3
+ import type { Ref } from 'vue';
4
4
  import type { WebWorkerOptions, WorkerTask, WorkerPoolResult, WorkerPoolStats } from '../../../types/worker';
5
5
  export interface WorkerPoolDeps {
6
6
  Worker: WorkerConstructor;
@@ -18,9 +18,9 @@ export default function useWorkerPool(deps: WorkerPoolDeps, options: WebWorkerOp
18
18
  minPoolSize?: number;
19
19
  maxPoolSize?: number;
20
20
  }): {
21
- isReady: Ref<boolean>;
22
- isLoading: Ref<boolean>;
23
- error: Ref<Error | null>;
21
+ isReady: Ref<boolean, boolean>;
22
+ isLoading: Ref<boolean, boolean>;
23
+ error: Ref<Error | null, Error | null>;
24
24
  execute: <T>(task: WorkerTask) => Promise<WorkerPoolResult<T>>;
25
25
  executeBatch: <T>(tasks: WorkerTask[]) => Promise<WorkerPoolResult<T>[]>;
26
26
  cancelTask: (taskId: number) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcw-shared",
3
- "version": "1.29.0",
3
+ "version": "1.31.0",
4
4
  "files": [
5
5
  "references",
6
6
  "dist",
package/types/vue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ColorReference } from './design-system.d'
2
- import type { Ref, InjectionKey, WatchStopHandle } from '../references/vue.d'
2
+ import type { Ref, InjectionKey, WatchStopHandle } from 'vue'
3
3
 
4
4
  /**
5
5
  * Vue Composition API 通用接口
@@ -1,6 +0,0 @@
1
- import type { DPTableVisualStep } from '../../../types/algorithm-visual';
2
- export declare function lcsVisual(str1: string, str2: string): {
3
- steps: DPTableVisualStep[];
4
- length: number;
5
- sequence: string;
6
- };
@@ -1,88 +0,0 @@
1
- export function lcsVisual(str1, str2) {
2
- const steps = [];
3
- let stepNumber = 0;
4
- const m = str1.length;
5
- const n = str2.length;
6
- const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
7
- steps.push({
8
- stepNumber: stepNumber++,
9
- description: '初始化DP表',
10
- dpTable: dp.map(row => [...row])
11
- });
12
- for (let i = 1; i <= m; i++) {
13
- for (let j = 1; j <= n; j++) {
14
- steps.push({
15
- stepNumber: stepNumber++,
16
- description: `处理 str1[${i - 1}]='${str1[i - 1]}' 和 str2[${j - 1}]='${str2[j - 1]}'`,
17
- dpTable: dp.map(row => [...row]),
18
- currentCell: { row: i, col: j }
19
- });
20
- if (str1[i - 1] === str2[j - 1]) {
21
- dp[i][j] = dp[i - 1][j - 1] + 1;
22
- steps.push({
23
- stepNumber: stepNumber++,
24
- description: `字符相同!dp[${i}][${j}] = dp[${i - 1}][${j - 1}] + 1 = ${dp[i][j]}`,
25
- dpTable: dp.map(row => [...row]),
26
- currentCell: { row: i, col: j },
27
- dependencies: [{ row: i - 1, col: j - 1 }],
28
- currentValue: dp[i][j]
29
- });
30
- }
31
- else {
32
- dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
33
- steps.push({
34
- stepNumber: stepNumber++,
35
- description: `字符不同,取最大值: dp[${i}][${j}] = max(${dp[i - 1][j]}, ${dp[i][j - 1]}) = ${dp[i][j]}`,
36
- dpTable: dp.map(row => [...row]),
37
- currentCell: { row: i, col: j },
38
- dependencies: [{ row: i - 1, col: j }, { row: i, col: j - 1 }],
39
- currentValue: dp[i][j]
40
- });
41
- }
42
- }
43
- }
44
- let i = m, j = n;
45
- const lcs = [];
46
- while (i > 0 && j > 0) {
47
- if (str1[i - 1] === str2[j - 1]) {
48
- lcs.unshift(str1[i - 1]);
49
- steps.push({
50
- stepNumber: stepNumber++,
51
- description: `回溯: 字符'${str1[i - 1]}'是LCS的一部分`,
52
- dpTable: dp.map(row => [...row]),
53
- currentCell: { row: i, col: j }
54
- });
55
- i--;
56
- j--;
57
- }
58
- else if (dp[i - 1][j] > dp[i][j - 1]) {
59
- steps.push({
60
- stepNumber: stepNumber++,
61
- description: `回溯: 向上移动`,
62
- dpTable: dp.map(row => [...row]),
63
- currentCell: { row: i, col: j }
64
- });
65
- i--;
66
- }
67
- else {
68
- steps.push({
69
- stepNumber: stepNumber++,
70
- description: `回溯: 向左移动`,
71
- dpTable: dp.map(row => [...row]),
72
- currentCell: { row: i, col: j }
73
- });
74
- j--;
75
- }
76
- }
77
- steps.push({
78
- stepNumber: stepNumber++,
79
- description: `LCS构建完成: "${lcs.join('')}", 长度 ${dp[m][n]}`,
80
- dpTable: dp.map(row => [...row])
81
- });
82
- return {
83
- steps,
84
- length: dp[m][n],
85
- sequence: lcs.join('')
86
- };
87
- }
88
- //# sourceMappingURL=lcsVisual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lcsVisual.js","sourceRoot":"","sources":["../../../src/functions/algorithm/lcsVisual.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { ArrayVisualStep } from '../../../types/algorithm-visual';
2
- export declare function mergeSortVisual(arr: number[]): {
3
- steps: ArrayVisualStep[];
4
- result: number[];
5
- };
@@ -1,103 +0,0 @@
1
- export function mergeSortVisual(arr) {
2
- const steps = [];
3
- let stepNumber = 0;
4
- const result = [...arr];
5
- steps.push({
6
- stepNumber: stepNumber++,
7
- description: '开始归并排序',
8
- array: [...result],
9
- highlights: {}
10
- });
11
- function merge(arr, left, mid, right) {
12
- const leftArr = arr.slice(left, mid + 1);
13
- const rightArr = arr.slice(mid + 1, right + 1);
14
- steps.push({
15
- stepNumber: stepNumber++,
16
- description: `合并两个已排序数组: [${left}..${mid}] 和 [${mid + 1}..${right}]`,
17
- array: [...arr],
18
- highlights: { primary: [mid], secondary: Array.from({ length: right - left + 1 }, (_, i) => left + i) },
19
- range: { left, right }
20
- });
21
- let i = 0, j = 0, k = left;
22
- while (i < leftArr.length && j < rightArr.length) {
23
- steps.push({
24
- stepNumber: stepNumber++,
25
- description: `比较 ${leftArr[i]} 和 ${rightArr[j]}`,
26
- array: [...arr],
27
- highlights: { comparing: [left + i, mid + 1 + j] },
28
- range: { left, right }
29
- });
30
- if (leftArr[i] <= rightArr[j]) {
31
- arr[k] = leftArr[i];
32
- steps.push({
33
- stepNumber: stepNumber++,
34
- description: `选择 ${leftArr[i]},放入位置 ${k}`,
35
- array: [...arr],
36
- highlights: { completed: [k] },
37
- range: { left, right }
38
- });
39
- i++;
40
- }
41
- else {
42
- arr[k] = rightArr[j];
43
- steps.push({
44
- stepNumber: stepNumber++,
45
- description: `选择 ${rightArr[j]},放入位置 ${k}`,
46
- array: [...arr],
47
- highlights: { completed: [k] },
48
- range: { left, right }
49
- });
50
- j++;
51
- }
52
- k++;
53
- }
54
- while (i < leftArr.length) {
55
- arr[k] = leftArr[i];
56
- steps.push({
57
- stepNumber: stepNumber++,
58
- description: `复制剩余元素 ${leftArr[i]} 到位置 ${k}`,
59
- array: [...arr],
60
- highlights: { completed: [k] },
61
- range: { left, right }
62
- });
63
- i++;
64
- k++;
65
- }
66
- while (j < rightArr.length) {
67
- arr[k] = rightArr[j];
68
- steps.push({
69
- stepNumber: stepNumber++,
70
- description: `复制剩余元素 ${rightArr[j]} 到位置 ${k}`,
71
- array: [...arr],
72
- highlights: { completed: [k] },
73
- range: { left, right }
74
- });
75
- j++;
76
- k++;
77
- }
78
- }
79
- function mergeSortHelper(arr, left, right) {
80
- if (left >= right)
81
- return;
82
- const mid = Math.floor((left + right) / 2);
83
- steps.push({
84
- stepNumber: stepNumber++,
85
- description: `分割数组 [${left}..${right}] 为 [${left}..${mid}] 和 [${mid + 1}..${right}]`,
86
- array: [...arr],
87
- highlights: { primary: [mid] },
88
- range: { left, right }
89
- });
90
- mergeSortHelper(arr, left, mid);
91
- mergeSortHelper(arr, mid + 1, right);
92
- merge(arr, left, mid, right);
93
- }
94
- mergeSortHelper(result, 0, result.length - 1);
95
- steps.push({
96
- stepNumber: stepNumber++,
97
- description: '归并排序完成!',
98
- array: [...result],
99
- highlights: { completed: result.map((_, i) => i) }
100
- });
101
- return { steps, result };
102
- }
103
- //# sourceMappingURL=mergeSortVisual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mergeSortVisual.js","sourceRoot":"","sources":["../../../src/functions/algorithm/mergeSortVisual.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { BacktrackVisualStep } from '../../../types/algorithm-visual';
2
- export interface NQueensVisualStep extends BacktrackVisualStep {
3
- board: string[][];
4
- currentRow: number;
5
- tryingCol?: number;
6
- conflicts?: Array<{
7
- row: number;
8
- col: number;
9
- }>;
10
- }
11
- export declare function nQueensVisual(n: number): {
12
- steps: NQueensVisualStep[];
13
- solutions: string[][];
14
- };
@@ -1,94 +0,0 @@
1
- export function nQueensVisual(n) {
2
- const steps = [];
3
- let stepNumber = 0;
4
- const solutions = [];
5
- const board = Array.from({ length: n }, () => Array(n).fill('.'));
6
- const cols = new Set();
7
- const diag1 = new Set();
8
- const diag2 = new Set();
9
- steps.push({
10
- stepNumber: stepNumber++,
11
- description: `开始解决${n}皇后问题`,
12
- path: [],
13
- board: board.map(r => [...r]),
14
- currentRow: 0
15
- });
16
- function backtrack(row) {
17
- if (row === n) {
18
- solutions.push(board.map(r => r.join('')));
19
- steps.push({
20
- stepNumber: stepNumber++,
21
- description: `找到一个解决方案!(第${solutions.length}个)`,
22
- path: Array.from({ length: n }, (_, i) => board[i].indexOf('Q')),
23
- board: board.map(r => [...r]),
24
- currentRow: row,
25
- isBacktracking: false
26
- });
27
- return;
28
- }
29
- for (let col = 0; col < n; col++) {
30
- steps.push({
31
- stepNumber: stepNumber++,
32
- description: `第${row}行: 尝试在第${col}列放置皇后`,
33
- path: Array.from({ length: row }, (_, i) => board[i].indexOf('Q')),
34
- board: board.map(r => [...r]),
35
- currentRow: row,
36
- tryingCol: col
37
- });
38
- const hasConflict = cols.has(col) || diag1.has(row - col) || diag2.has(row + col);
39
- if (hasConflict) {
40
- const conflicts = [];
41
- for (let i = 0; i < row; i++) {
42
- const queenCol = board[i].indexOf('Q');
43
- if (queenCol === col || i - queenCol === row - col || i + queenCol === row + col) {
44
- conflicts.push({ row: i, col: queenCol });
45
- }
46
- }
47
- steps.push({
48
- stepNumber: stepNumber++,
49
- description: `冲突!该位置会与已放置的皇后冲突`,
50
- path: [],
51
- board: board.map(r => [...r]),
52
- currentRow: row,
53
- tryingCol: col,
54
- conflicts
55
- });
56
- continue;
57
- }
58
- board[row][col] = 'Q';
59
- cols.add(col);
60
- diag1.add(row - col);
61
- diag2.add(row + col);
62
- steps.push({
63
- stepNumber: stepNumber++,
64
- description: `在(${row}, ${col})放置皇后,继续下一行`,
65
- path: Array.from({ length: row + 1 }, (_, i) => board[i].indexOf('Q')),
66
- board: board.map(r => [...r]),
67
- currentRow: row
68
- });
69
- backtrack(row + 1);
70
- board[row][col] = '.';
71
- cols.delete(col);
72
- diag1.delete(row - col);
73
- diag2.delete(row + col);
74
- steps.push({
75
- stepNumber: stepNumber++,
76
- description: `回溯:移除(${row}, ${col})的皇后`,
77
- path: Array.from({ length: row }, (_, i) => board[i].indexOf('Q')),
78
- board: board.map(r => [...r]),
79
- currentRow: row,
80
- isBacktracking: true
81
- });
82
- }
83
- }
84
- backtrack(0);
85
- steps.push({
86
- stepNumber: stepNumber++,
87
- description: `完成!共找到${solutions.length}个解决方案`,
88
- path: [],
89
- board: board.map(r => [...r]),
90
- currentRow: n
91
- });
92
- return { steps, solutions };
93
- }
94
- //# sourceMappingURL=nQueensVisual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nQueensVisual.js","sourceRoot":"","sources":["../../../src/functions/algorithm/nQueensVisual.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { GraphVisualStep } from '../../../types/algorithm-visual';
2
- export interface IslandVisualStep extends GraphVisualStep {
3
- grid: string[][];
4
- currentPos?: {
5
- row: number;
6
- col: number;
7
- };
8
- islandCount: number;
9
- stack?: Array<{
10
- row: number;
11
- col: number;
12
- }>;
13
- }
14
- export declare function numIslandsVisual(grid: string[][]): {
15
- steps: IslandVisualStep[];
16
- count: number;
17
- };