zcw-shared 2.25.0 → 2.26.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 (227) hide show
  1. package/README.md +73 -13
  2. package/dist/functions/ai/buildResolvedLlmToolsList.d.ts +0 -1
  3. package/dist/functions/ai/buildResolvedLlmToolsList.js +0 -1
  4. package/dist/functions/ai/buildResolvedLlmToolsList.js.map +1 -1
  5. package/dist/functions/array/filterListExcludingIds.d.ts +0 -1
  6. package/dist/functions/array/filterListExcludingIds.js +0 -1
  7. package/dist/functions/array/filterListExcludingIds.js.map +1 -1
  8. package/dist/functions/browser/readBrowserAppendToBodyDeps.d.ts +3 -0
  9. package/dist/functions/browser/readBrowserAppendToBodyDeps.js +8 -0
  10. package/dist/functions/browser/readBrowserAppendToBodyDeps.js.map +1 -0
  11. package/dist/functions/browser/readBrowserDetectDeps.d.ts +2 -0
  12. package/dist/functions/browser/readBrowserDetectDeps.js +8 -5
  13. package/dist/functions/browser/readBrowserDetectDeps.js.map +1 -1
  14. package/dist/functions/browser/readBrowserHost.d.ts +57 -0
  15. package/dist/functions/browser/readBrowserHost.js +61 -0
  16. package/dist/functions/browser/readBrowserHost.js.map +1 -0
  17. package/dist/functions/browser/readBrowserImageCompressDeps.d.ts +2 -0
  18. package/dist/functions/browser/readBrowserImageCompressDeps.js +13 -10
  19. package/dist/functions/browser/readBrowserImageCompressDeps.js.map +1 -1
  20. package/dist/functions/browser/readBrowserLassoSelectionEnvironment.d.ts +4 -0
  21. package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js +23 -0
  22. package/dist/functions/browser/readBrowserLassoSelectionEnvironment.js.map +1 -0
  23. package/dist/functions/browser/readBrowserVueHookDeps.d.ts +14 -0
  24. package/dist/functions/browser/readBrowserVueHookDeps.js +85 -0
  25. package/dist/functions/browser/readBrowserVueHookDeps.js.map +1 -0
  26. package/dist/functions/browser/requireBrowserLocalStorage.d.ts +2 -1
  27. package/dist/functions/browser/requireBrowserLocalStorage.js +3 -6
  28. package/dist/functions/browser/requireBrowserLocalStorage.js.map +1 -1
  29. package/dist/functions/chat/chatAppearancePrefs.d.ts +6 -1
  30. package/dist/functions/chat/chatAppearancePrefs.js +6 -4
  31. package/dist/functions/chat/chatAppearancePrefs.js.map +1 -1
  32. package/dist/functions/chat/createBrowserChatAppearanceModeAccess.d.ts +2 -1
  33. package/dist/functions/chat/createBrowserChatAppearanceModeAccess.js +8 -11
  34. package/dist/functions/chat/createBrowserChatAppearanceModeAccess.js.map +1 -1
  35. package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.d.ts +2 -1
  36. package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.js +12 -12
  37. package/dist/functions/chat/createBrowserChatDownloadDirectoryPrefAccess.js.map +1 -1
  38. package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.d.ts +2 -1
  39. package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.js +7 -14
  40. package/dist/functions/chat/createBrowserChatFileMessageLocalPathAccess.js.map +1 -1
  41. package/dist/functions/chat/createBrowserChatRootFontSizeAccess.d.ts +2 -1
  42. package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js +14 -13
  43. package/dist/functions/chat/createBrowserChatRootFontSizeAccess.js.map +1 -1
  44. package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.d.ts +1 -19
  45. package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.js +1 -34
  46. package/dist/functions/cloudDisk/collectElementIdsInContentLassoBox.js.map +1 -1
  47. package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.d.ts +2 -1
  48. package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.js +11 -19
  49. package/dist/functions/cloudDisk/createBrowserCloudDiskPrivacyStorageAccess.js.map +1 -1
  50. package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.d.ts +2 -1
  51. package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.js +7 -11
  52. package/dist/functions/cloudDisk/createBrowserCloudDiskQuickAccessStorageAccess.js.map +1 -1
  53. package/dist/functions/dom/appTheme.d.ts +10 -0
  54. package/dist/functions/dom/appTheme.js +11 -0
  55. package/dist/functions/dom/appTheme.js.map +1 -0
  56. package/dist/functions/dom/copyHtmlAndPlainToClipboard.d.ts +3 -1
  57. package/dist/functions/dom/copyHtmlAndPlainToClipboard.js +14 -10
  58. package/dist/functions/dom/copyHtmlAndPlainToClipboard.js.map +1 -1
  59. package/dist/functions/dom/copyTextToClipboard.d.ts +3 -1
  60. package/dist/functions/dom/copyTextToClipboard.js +5 -4
  61. package/dist/functions/dom/copyTextToClipboard.js.map +1 -1
  62. package/dist/functions/dom/createTooltipLongPressHandlers.d.ts +24 -0
  63. package/dist/functions/dom/createTooltipLongPressHandlers.js +84 -0
  64. package/dist/functions/dom/createTooltipLongPressHandlers.js.map +1 -0
  65. package/dist/functions/dom/domDocumentSelection.d.ts +4 -0
  66. package/dist/functions/dom/domDocumentSelection.js +39 -0
  67. package/dist/functions/dom/domDocumentSelection.js.map +1 -0
  68. package/dist/functions/dom/domSelectionInElement.d.ts +4 -3
  69. package/dist/functions/dom/domSelectionInElement.js +10 -10
  70. package/dist/functions/dom/domSelectionInElement.js.map +1 -1
  71. package/dist/functions/dom/fetchBlobFromUrl.d.ts +7 -1
  72. package/dist/functions/dom/fetchBlobFromUrl.js +7 -5
  73. package/dist/functions/dom/fetchBlobFromUrl.js.map +1 -1
  74. package/dist/functions/dom/fileDrag.d.ts +11 -0
  75. package/dist/functions/dom/fileDrag.js +14 -0
  76. package/dist/functions/dom/fileDrag.js.map +1 -0
  77. package/dist/functions/dom/imageBlobToPng.d.ts +5 -4
  78. package/dist/functions/dom/imageBlobToPng.js +23 -16
  79. package/dist/functions/dom/imageBlobToPng.js.map +1 -1
  80. package/dist/functions/dom/lassoSelection.d.ts +84 -0
  81. package/dist/functions/dom/lassoSelection.js +199 -0
  82. package/dist/functions/dom/lassoSelection.js.map +1 -0
  83. package/dist/functions/dom/readBrowserDomDeps.d.ts +41 -0
  84. package/dist/functions/dom/readBrowserDomDeps.js +63 -0
  85. package/dist/functions/dom/readBrowserDomDeps.js.map +1 -0
  86. package/dist/functions/dom/resolveOverlayTeleportParent.d.ts +7 -0
  87. package/dist/functions/dom/resolveOverlayTeleportParent.js +11 -0
  88. package/dist/functions/dom/resolveOverlayTeleportParent.js.map +1 -0
  89. package/dist/functions/dom/safeBrowserDom.d.ts +17 -0
  90. package/dist/functions/dom/safeBrowserDom.js +42 -0
  91. package/dist/functions/dom/safeBrowserDom.js.map +1 -0
  92. package/dist/functions/dom/writeImageBlobToClipboard.d.ts +5 -1
  93. package/dist/functions/dom/writeImageBlobToClipboard.js +8 -5
  94. package/dist/functions/dom/writeImageBlobToClipboard.js.map +1 -1
  95. package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.d.ts +2 -0
  96. package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.js +9 -10
  97. package/dist/functions/download/createBrowserDownloadDepsFromGlobalThis.js.map +1 -1
  98. package/dist/functions/file/isJpegImageFile.d.ts +0 -1
  99. package/dist/functions/file/isJpegImageFile.js +0 -1
  100. package/dist/functions/file/isJpegImageFile.js.map +1 -1
  101. package/dist/functions/im/assignChatConversationToWindowLocation.d.ts +5 -1
  102. package/dist/functions/im/assignChatConversationToWindowLocation.js +5 -4
  103. package/dist/functions/im/assignChatConversationToWindowLocation.js.map +1 -1
  104. package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.d.ts +5 -1
  105. package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.js +11 -8
  106. package/dist/functions/im/copyUsingClonedRangesOrMessagePlainText.js.map +1 -1
  107. package/dist/functions/im/executeCopyChatMessageContent.d.ts +4 -1
  108. package/dist/functions/im/executeCopyChatMessageContent.js +6 -3
  109. package/dist/functions/im/executeCopyChatMessageContent.js.map +1 -1
  110. package/dist/functions/im/imBubbleSelectionClipboard.d.ts +2 -1
  111. package/dist/functions/im/imBubbleSelectionClipboard.js +10 -11
  112. package/dist/functions/im/imBubbleSelectionClipboard.js.map +1 -1
  113. package/dist/functions/im/imChatMessagePagination.d.ts +0 -1
  114. package/dist/functions/im/imChatMessagePagination.js +0 -1
  115. package/dist/functions/im/imChatMessagePagination.js.map +1 -1
  116. package/dist/functions/im/imImagePixelExtra.d.ts +0 -1
  117. package/dist/functions/im/imImagePixelExtra.js +0 -1
  118. package/dist/functions/im/imImagePixelExtra.js.map +1 -1
  119. package/dist/functions/im/imOrchestrationTypes.d.ts +5 -0
  120. package/dist/functions/im/imOrchestrationTypes.js +2 -0
  121. package/dist/functions/im/imOrchestrationTypes.js.map +1 -0
  122. package/dist/functions/im/imOutboundMediaHelpers.d.ts +7 -1
  123. package/dist/functions/im/imOutboundMediaHelpers.js +15 -7
  124. package/dist/functions/im/imOutboundMediaHelpers.js.map +1 -1
  125. package/dist/functions/im/index.d.ts +2 -2
  126. package/dist/functions/im/index.js +2 -2
  127. package/dist/functions/im/index.js.map +1 -1
  128. package/dist/functions/im/newImClientMessageIdFromBrowser.d.ts +4 -3
  129. package/dist/functions/im/newImClientMessageIdFromBrowser.js +7 -15
  130. package/dist/functions/im/newImClientMessageIdFromBrowser.js.map +1 -1
  131. package/dist/functions/number/clampIndex.d.ts +1 -0
  132. package/dist/functions/number/clampIndex.js +6 -0
  133. package/dist/functions/number/clampIndex.js.map +1 -0
  134. package/dist/functions/release/capacitorOtaReleaseManifestFetch.d.ts +2 -1
  135. package/dist/functions/release/capacitorOtaReleaseManifestFetch.js +3 -2
  136. package/dist/functions/release/capacitorOtaReleaseManifestFetch.js.map +1 -1
  137. package/dist/functions/release/capacitorReleaseManifestFetch.d.ts +2 -1
  138. package/dist/functions/release/capacitorReleaseManifestFetch.js +3 -2
  139. package/dist/functions/release/capacitorReleaseManifestFetch.js.map +1 -1
  140. package/dist/functions/release/capacitorUpdateDefaults.d.ts +4 -0
  141. package/dist/functions/release/capacitorUpdateDefaults.js +10 -10
  142. package/dist/functions/release/capacitorUpdateDefaults.js.map +1 -1
  143. package/dist/functions/release/createCapacitorUpdateFetchDeps.js +13 -7
  144. package/dist/functions/release/createCapacitorUpdateFetchDeps.js.map +1 -1
  145. package/dist/functions/release/createReleaseManifestFetchDeps.d.ts +1 -2
  146. package/dist/functions/release/createReleaseManifestFetchDeps.js +5 -10
  147. package/dist/functions/release/createReleaseManifestFetchDeps.js.map +1 -1
  148. package/dist/functions/release/electronReleaseManifestFetch.d.ts +4 -1
  149. package/dist/functions/release/electronReleaseManifestFetch.js +12 -7
  150. package/dist/functions/release/electronReleaseManifestFetch.js.map +1 -1
  151. package/dist/functions/release/isCapacitorWebViewOnViteDevServer.js +4 -4
  152. package/dist/functions/release/isCapacitorWebViewOnViteDevServer.js.map +1 -1
  153. package/dist/functions/release/readBrowserReleaseDeps.d.ts +14 -0
  154. package/dist/functions/release/readBrowserReleaseDeps.js +19 -0
  155. package/dist/functions/release/readBrowserReleaseDeps.js.map +1 -0
  156. package/dist/functions/release/releaseUpdateDismissSession.d.ts +3 -2
  157. package/dist/functions/release/releaseUpdateDismissSession.js +10 -7
  158. package/dist/functions/release/releaseUpdateDismissSession.js.map +1 -1
  159. package/dist/functions/release/verifyHttpContentLength.d.ts +2 -0
  160. package/dist/functions/release/verifyHttpContentLength.js +4 -1
  161. package/dist/functions/release/verifyHttpContentLength.js.map +1 -1
  162. package/dist/functions/storage/createBrowserSessionStorageKit.d.ts +12 -0
  163. package/dist/functions/storage/createBrowserSessionStorageKit.js +16 -0
  164. package/dist/functions/storage/createBrowserSessionStorageKit.js.map +1 -0
  165. package/dist/functions/storage/createBrowserStringStorageKit.d.ts +12 -0
  166. package/dist/functions/storage/createBrowserStringStorageKit.js +14 -0
  167. package/dist/functions/storage/createBrowserStringStorageKit.js.map +1 -0
  168. package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.d.ts +2 -1
  169. package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.js +5 -9
  170. package/dist/functions/wallet/createBrowserWalletPayPasswordSessionAccess.js.map +1 -1
  171. package/dist/permissions/catalog.d.ts +4 -0
  172. package/dist/permissions/catalog.js +22 -0
  173. package/dist/permissions/catalog.js.map +1 -1
  174. package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.d.ts +7 -0
  175. package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.js +7 -0
  176. package/dist/vue-hooks/browser/useBrowserFileObjectUrlMap.js.map +1 -0
  177. package/dist/vue-hooks/browser/useFileObjectUrlMap.d.ts +19 -0
  178. package/dist/vue-hooks/browser/useFileObjectUrlMap.js +46 -0
  179. package/dist/vue-hooks/browser/useFileObjectUrlMap.js.map +1 -0
  180. package/dist/vue-hooks/dom/useBrowserFocusVisible.d.ts +9 -0
  181. package/dist/vue-hooks/dom/useBrowserFocusVisible.js +8 -0
  182. package/dist/vue-hooks/dom/useBrowserFocusVisible.js.map +1 -0
  183. package/dist/vue-hooks/dom/useBrowserLassoSelection.d.ts +16 -0
  184. package/dist/vue-hooks/dom/useBrowserLassoSelection.js +7 -0
  185. package/dist/vue-hooks/dom/useBrowserLassoSelection.js.map +1 -0
  186. package/dist/vue-hooks/dom/useFocusVisible.d.ts +17 -0
  187. package/dist/vue-hooks/dom/useFocusVisible.js +53 -0
  188. package/dist/vue-hooks/dom/useFocusVisible.js.map +1 -0
  189. package/dist/vue-hooks/dom/useLassoSelection.d.ts +53 -0
  190. package/dist/vue-hooks/dom/useLassoSelection.js +244 -0
  191. package/dist/vue-hooks/dom/useLassoSelection.js.map +1 -0
  192. package/dist/vue-hooks/time/useBrowserDelayedTrue.d.ts +2 -0
  193. package/dist/vue-hooks/time/useBrowserDelayedTrue.js +7 -0
  194. package/dist/vue-hooks/time/useBrowserDelayedTrue.js.map +1 -0
  195. package/dist/vue-hooks/time/useDelayedTrue.d.ts +11 -0
  196. package/dist/vue-hooks/time/useDelayedTrue.js +29 -0
  197. package/dist/vue-hooks/time/useDelayedTrue.js.map +1 -0
  198. package/package.json +29 -2
  199. package/types/component-material.d.ts +40 -0
  200. package/types/lowcode.d.ts +63 -0
  201. package/types/rbac.d.ts +0 -3
  202. package/types/vue.d.ts +9 -1
  203. package/dist/functions/file/extractVideoCover.d.ts +0 -6
  204. package/dist/functions/file/extractVideoCover.js +0 -57
  205. package/dist/functions/file/extractVideoCover.js.map +0 -1
  206. package/dist/functions/im/imInlineContentTokens.d.ts +0 -49
  207. package/dist/functions/im/imInlineContentTokens.js +0 -185
  208. package/dist/functions/im/imInlineContentTokens.js.map +0 -1
  209. package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.d.ts +0 -7
  210. package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.js +0 -10
  211. package/dist/functions/im/materializeUploadFileFromMediaBlobRecord.js.map +0 -1
  212. package/dist/functions/im/parseImMentionSegments.d.ts +0 -19
  213. package/dist/functions/im/parseImMentionSegments.js +0 -92
  214. package/dist/functions/im/parseImMentionSegments.js.map +0 -1
  215. package/dist/functions/image/compressImageToWidth.d.ts +0 -12
  216. package/dist/functions/image/compressImageToWidth.js +0 -44
  217. package/dist/functions/image/compressImageToWidth.js.map +0 -1
  218. package/dist/functions/image/compressJpgToTargetSize.d.ts +0 -13
  219. package/dist/functions/image/compressJpgToTargetSize.js +0 -132
  220. package/dist/functions/image/compressJpgToTargetSize.js.map +0 -1
  221. package/dist/functions/image/compressToTargetSize.d.ts +0 -13
  222. package/dist/functions/image/compressToTargetSizeJpg.d.ts +0 -13
  223. package/dist/functions/image/compressToTargetSizeJpg.js +0 -132
  224. package/dist/functions/image/compressToTargetSizeJpg.js.map +0 -1
  225. package/dist/permissions/allPermissionCode.js.map +0 -1
  226. package/dist/permissions/definePermissionGroup.js.map +0 -1
  227. package/dist/permissions/groups.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ export function useDelayedTrue(source, deps, delayMs = 500) {
2
+ const delayed = deps.vue.ref(false);
3
+ let timer = null;
4
+ deps.vue.watch(source, (v) => {
5
+ if (timer != null) {
6
+ deps.host.clearTimeout(timer);
7
+ timer = null;
8
+ }
9
+ if (!v) {
10
+ delayed.value = false;
11
+ return;
12
+ }
13
+ if (delayMs <= 0) {
14
+ delayed.value = true;
15
+ return;
16
+ }
17
+ timer = deps.host.setTimeout(() => {
18
+ timer = null;
19
+ if (source.value)
20
+ delayed.value = true;
21
+ }, delayMs);
22
+ }, { immediate: true });
23
+ deps.vue.onUnmounted(() => {
24
+ if (timer != null)
25
+ deps.host.clearTimeout(timer);
26
+ });
27
+ return delayed;
28
+ }
29
+ //# sourceMappingURL=useDelayedTrue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDelayedTrue.js","sourceRoot":"","sources":["../../../src/vue-hooks/time/useDelayedTrue.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,IAAwB,EACxB,OAAO,GAAG,GAAG;IAEb,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,KAAK,GAAmD,IAAI,CAAA;IAEhE,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,MAAM,EACN,CAAC,CAAC,EAAE,EAAE;QACJ,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAC7B,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;YACrB,OAAM;QACR,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;YACpB,OAAM;QACR,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK,GAAG,IAAI,CAAA;YACZ,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QACxC,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAA;IAED,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;QACxB,IAAI,KAAK,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcw-shared",
3
- "version": "2.25.0",
3
+ "version": "2.26.0",
4
4
  "files": [
5
5
  "references",
6
6
  "dist",
@@ -33,7 +33,7 @@
33
33
  "typescript": "^5.8.3",
34
34
  "vitepress": "^1.6.4",
35
35
  "vue": "^3.5.22",
36
- "zcw-vue-ui": "^1.25.1"
36
+ "zcw-vue-ui": "^1.30.0"
37
37
  },
38
38
  "exports": {
39
39
  "./constants/aiChatSuggestions": "./dist/constants/aiChatSuggestions.js",
@@ -173,9 +173,13 @@
173
173
  "./functions/browser/isMobile": "./dist/functions/browser/isMobile.js",
174
174
  "./functions/browser/isNonNativeBrowserShell": "./dist/functions/browser/isNonNativeBrowserShell.js",
175
175
  "./functions/browser/isWeChat": "./dist/functions/browser/isWeChat.js",
176
+ "./functions/browser/readBrowserAppendToBodyDeps": "./dist/functions/browser/readBrowserAppendToBodyDeps.js",
176
177
  "./functions/browser/readBrowserDetectDeps": "./dist/functions/browser/readBrowserDetectDeps.js",
178
+ "./functions/browser/readBrowserHost": "./dist/functions/browser/readBrowserHost.js",
177
179
  "./functions/browser/readBrowserImageCompressDeps": "./dist/functions/browser/readBrowserImageCompressDeps.js",
180
+ "./functions/browser/readBrowserLassoSelectionEnvironment": "./dist/functions/browser/readBrowserLassoSelectionEnvironment.js",
178
181
  "./functions/browser/readBrowserOsInfo": "./dist/functions/browser/readBrowserOsInfo.js",
182
+ "./functions/browser/readBrowserVueHookDeps": "./dist/functions/browser/readBrowserVueHookDeps.js",
179
183
  "./functions/browser/requireBrowserLocalStorage": "./dist/functions/browser/requireBrowserLocalStorage.js",
180
184
  "./functions/browser/shortcutModKeyHint": "./dist/functions/browser/shortcutModKeyHint.js",
181
185
  "./functions/build/readCapacitorShellExecBuildFlag": "./dist/functions/build/readCapacitorShellExecBuildFlag.js",
@@ -262,16 +266,20 @@
262
266
  "./functions/design-tokens/generateVariables": "./dist/functions/design-tokens/generateVariables.js",
263
267
  "./functions/design-tokens/mixColors": "./dist/functions/design-tokens/mixColors.js",
264
268
  "./functions/design-tokens/parseDesignTokens": "./dist/functions/design-tokens/parseDesignTokens.js",
269
+ "./functions/dom/appTheme": "./dist/functions/dom/appTheme.js",
265
270
  "./functions/dom/computePosition": "./dist/functions/dom/computePosition.js",
266
271
  "./functions/dom/copyHtmlAndPlainToClipboard": "./dist/functions/dom/copyHtmlAndPlainToClipboard.js",
267
272
  "./functions/dom/copyTextToClipboard": "./dist/functions/dom/copyTextToClipboard.js",
268
273
  "./functions/dom/createSharedKeyboardCenter": "./dist/functions/dom/createSharedKeyboardCenter.js",
269
274
  "./functions/dom/createThrottledEventListener": "./dist/functions/dom/createThrottledEventListener.js",
275
+ "./functions/dom/createTooltipLongPressHandlers": "./dist/functions/dom/createTooltipLongPressHandlers.js",
270
276
  "./functions/dom/demonstrateResourceLoading": "./dist/functions/dom/demonstrateResourceLoading.js",
271
277
  "./functions/dom/detectOverflow": "./dist/functions/dom/detectOverflow.js",
278
+ "./functions/dom/domDocumentSelection": "./dist/functions/dom/domDocumentSelection.js",
272
279
  "./functions/dom/domSelectionInElement": "./dist/functions/dom/domSelectionInElement.js",
273
280
  "./functions/dom/executeCopyTextToClipboard": "./dist/functions/dom/executeCopyTextToClipboard.js",
274
281
  "./functions/dom/fetchBlobFromUrl": "./dist/functions/dom/fetchBlobFromUrl.js",
282
+ "./functions/dom/fileDrag": "./dist/functions/dom/fileDrag.js",
275
283
  "./functions/dom/getAlignment": "./dist/functions/dom/getAlignment.js",
276
284
  "./functions/dom/getBasePlacement": "./dist/functions/dom/getBasePlacement.js",
277
285
  "./functions/dom/getCrossAxisFlip": "./dist/functions/dom/getCrossAxisFlip.js",
@@ -283,9 +291,13 @@
283
291
  "./functions/dom/imageBlobToPng": "./dist/functions/dom/imageBlobToPng.js",
284
292
  "./functions/dom/isTextTruncated": "./dist/functions/dom/isTextTruncated.js",
285
293
  "./functions/dom/isValidPlacement": "./dist/functions/dom/isValidPlacement.js",
294
+ "./functions/dom/lassoSelection": "./dist/functions/dom/lassoSelection.js",
286
295
  "./functions/dom/localFileInput": "./dist/functions/dom/localFileInput.js",
287
296
  "./functions/dom/pickFile": "./dist/functions/dom/pickFile.js",
297
+ "./functions/dom/readBrowserDomDeps": "./dist/functions/dom/readBrowserDomDeps.js",
288
298
  "./functions/dom/resolveChatMessageImageFromContextMenu": "./dist/functions/dom/resolveChatMessageImageFromContextMenu.js",
299
+ "./functions/dom/resolveOverlayTeleportParent": "./dist/functions/dom/resolveOverlayTeleportParent.js",
300
+ "./functions/dom/safeBrowserDom": "./dist/functions/dom/safeBrowserDom.js",
289
301
  "./functions/dom/writeImageBlobToClipboard": "./dist/functions/dom/writeImageBlobToClipboard.js",
290
302
  "./functions/download/adaptDownloadDispatcherForUrlFeedback": "./dist/functions/download/adaptDownloadDispatcherForUrlFeedback.js",
291
303
  "./functions/download/buildCapacitorDownloadRelativePath": "./dist/functions/download/buildCapacitorDownloadRelativePath.js",
@@ -483,6 +495,7 @@
483
495
  "./functions/im/imMessageNormalize": "./dist/functions/im/imMessageNormalize.js",
484
496
  "./functions/im/imMessageToChatMessage": "./dist/functions/im/imMessageToChatMessage.js",
485
497
  "./functions/im/imMultiSelectBatchAction": "./dist/functions/im/imMultiSelectBatchAction.js",
498
+ "./functions/im/imOrchestrationTypes": "./dist/functions/im/imOrchestrationTypes.js",
486
499
  "./functions/im/imOutboundListSummary": "./dist/functions/im/imOutboundListSummary.js",
487
500
  "./functions/im/imOutboundMediaHelpers": "./dist/functions/im/imOutboundMediaHelpers.js",
488
501
  "./functions/im/imOutboundPatch": "./dist/functions/im/imOutboundPatch.js",
@@ -581,6 +594,7 @@
581
594
  "./functions/math/percentile": "./dist/functions/math/percentile.js",
582
595
  "./functions/math/sum": "./dist/functions/math/sum.js",
583
596
  "./functions/number/clamp": "./dist/functions/number/clamp.js",
597
+ "./functions/number/clampIndex": "./dist/functions/number/clampIndex.js",
584
598
  "./functions/number/formatNumber": "./dist/functions/number/formatNumber.js",
585
599
  "./functions/number/random": "./dist/functions/number/random.js",
586
600
  "./functions/number/range": "./dist/functions/number/range.js",
@@ -660,6 +674,7 @@
660
674
  "./functions/release/openElectronDesktopClientDownload": "./dist/functions/release/openElectronDesktopClientDownload.js",
661
675
  "./functions/release/pickCapacitorAndroidPackage": "./dist/functions/release/pickCapacitorAndroidPackage.js",
662
676
  "./functions/release/pickElectronReleasePackage": "./dist/functions/release/pickElectronReleasePackage.js",
677
+ "./functions/release/readBrowserReleaseDeps": "./dist/functions/release/readBrowserReleaseDeps.js",
663
678
  "./functions/release/releaseUpdateDismissSession": "./dist/functions/release/releaseUpdateDismissSession.js",
664
679
  "./functions/release/releaseUpdatePolicy": "./dist/functions/release/releaseUpdatePolicy.js",
665
680
  "./functions/release/sanitizeCapacitorDownloadFileName": "./dist/functions/release/sanitizeCapacitorDownloadFileName.js",
@@ -670,6 +685,8 @@
670
685
  "./functions/software/findSoftware": "./dist/functions/software/findSoftware.js",
671
686
  "./functions/sse/namedSseStream": "./dist/functions/sse/namedSseStream.js",
672
687
  "./functions/storage/clearAppCachePreservingAuth": "./dist/functions/storage/clearAppCachePreservingAuth.js",
688
+ "./functions/storage/createBrowserSessionStorageKit": "./dist/functions/storage/createBrowserSessionStorageKit.js",
689
+ "./functions/storage/createBrowserStringStorageKit": "./dist/functions/storage/createBrowserStringStorageKit.js",
673
690
  "./functions/storage/useDexieShortcuts": "./dist/functions/storage/useDexieShortcuts.js",
674
691
  "./functions/storage/useLocalStorage": "./dist/functions/storage/useLocalStorage.js",
675
692
  "./functions/storage/useSessionStorage": "./dist/functions/storage/useSessionStorage.js",
@@ -803,8 +820,10 @@
803
820
  "./vue-hooks/browser/useBattery": "./dist/vue-hooks/browser/useBattery.js",
804
821
  "./vue-hooks/browser/useBluetooth": "./dist/vue-hooks/browser/useBluetooth.js",
805
822
  "./vue-hooks/browser/useBridgeMessage": "./dist/vue-hooks/browser/useBridgeMessage.js",
823
+ "./vue-hooks/browser/useBrowserFileObjectUrlMap": "./dist/vue-hooks/browser/useBrowserFileObjectUrlMap.js",
806
824
  "./vue-hooks/browser/useCamera": "./dist/vue-hooks/browser/useCamera.js",
807
825
  "./vue-hooks/browser/useClipboard": "./dist/vue-hooks/browser/useClipboard.js",
826
+ "./vue-hooks/browser/useFileObjectUrlMap": "./dist/vue-hooks/browser/useFileObjectUrlMap.js",
808
827
  "./vue-hooks/browser/useFileUpload": "./dist/vue-hooks/browser/useFileUpload.js",
809
828
  "./vue-hooks/browser/useFullscreen": "./dist/vue-hooks/browser/useFullscreen.js",
810
829
  "./vue-hooks/browser/useGamepad": "./dist/vue-hooks/browser/useGamepad.js",
@@ -821,9 +840,13 @@
821
840
  "./vue-hooks/browser/useWechatJSSDK": "./dist/vue-hooks/browser/useWechatJSSDK.js",
822
841
  "./vue-hooks/dom/useAppendToBody": "./dist/vue-hooks/dom/useAppendToBody.js",
823
842
  "./vue-hooks/dom/useAutoUpdate": "./dist/vue-hooks/dom/useAutoUpdate.js",
843
+ "./vue-hooks/dom/useBrowserFocusVisible": "./dist/vue-hooks/dom/useBrowserFocusVisible.js",
844
+ "./vue-hooks/dom/useBrowserLassoSelection": "./dist/vue-hooks/dom/useBrowserLassoSelection.js",
824
845
  "./vue-hooks/dom/useClickOutside": "./dist/vue-hooks/dom/useClickOutside.js",
825
846
  "./vue-hooks/dom/useDraggable": "./dist/vue-hooks/dom/useDraggable.js",
826
847
  "./vue-hooks/dom/useEventListener": "./dist/vue-hooks/dom/useEventListener.js",
848
+ "./vue-hooks/dom/useFocusVisible": "./dist/vue-hooks/dom/useFocusVisible.js",
849
+ "./vue-hooks/dom/useLassoSelection": "./dist/vue-hooks/dom/useLassoSelection.js",
827
850
  "./vue-hooks/dom/useResizable": "./dist/vue-hooks/dom/useResizable.js",
828
851
  "./vue-hooks/history/useDebouncedRefHistory": "./dist/vue-hooks/history/useDebouncedRefHistory.js",
829
852
  "./vue-hooks/history/useManualRefHistory": "./dist/vue-hooks/history/useManualRefHistory.js",
@@ -841,6 +864,8 @@
841
864
  "./vue-hooks/state/useToggle": "./dist/vue-hooks/state/useToggle.js",
842
865
  "./vue-hooks/state/useTokenManager": "./dist/vue-hooks/state/useTokenManager.js",
843
866
  "./vue-hooks/state/useUserManager": "./dist/vue-hooks/state/useUserManager.js",
867
+ "./vue-hooks/time/useBrowserDelayedTrue": "./dist/vue-hooks/time/useBrowserDelayedTrue.js",
868
+ "./vue-hooks/time/useDelayedTrue": "./dist/vue-hooks/time/useDelayedTrue.js",
844
869
  "./vue-hooks/time/useInterval": "./dist/vue-hooks/time/useInterval.js",
845
870
  "./vue-hooks/time/useTimeout": "./dist/vue-hooks/time/useTimeout.js",
846
871
  "./vue-hooks/worker/useWebWorker": "./dist/vue-hooks/worker/useWebWorker.js",
@@ -869,6 +894,7 @@
869
894
  "./types/cloud-disk-config": "./types/cloud-disk-config.d.ts",
870
895
  "./types/cloud-disk": "./types/cloud-disk.d.ts",
871
896
  "./types/color": "./types/color.d.ts",
897
+ "./types/component-material": "./types/component-material.d.ts",
872
898
  "./types/design-system": "./types/design-system.d.ts",
873
899
  "./types/download": "./types/download.d.ts",
874
900
  "./types/electron-release-manifest": "./types/electron-release-manifest.d.ts",
@@ -890,6 +916,7 @@
890
916
  "./types/im-wallet-message": "./types/im-wallet-message.d.ts",
891
917
  "./types/ios-build": "./types/ios-build.d.ts",
892
918
  "./types/llm-openai-wire": "./types/llm-openai-wire.d.ts",
919
+ "./types/lowcode": "./types/lowcode.d.ts",
893
920
  "./types/music": "./types/music.d.ts",
894
921
  "./types/named-sse": "./types/named-sse.d.ts",
895
922
  "./types/notification": "./types/notification.d.ts",
@@ -0,0 +1,40 @@
1
+ import type { Component } from 'vue'
2
+
3
+ /** 组件物料属性字段类型(设计器属性面板) */
4
+ export type ComponentPropFieldType =
5
+ | 'string'
6
+ | 'number'
7
+ | 'boolean'
8
+ | { type: 'select'; options: string[] }
9
+
10
+ /** 组件物料元信息(由 types.ts Props + 模板 slots + vue-ui materialMeta 推导) */
11
+ export interface ComponentMaterialMeta {
12
+ props: Record<string, ComponentPropFieldType>
13
+ slots?: string[]
14
+ acceptsChildren?: boolean
15
+ /** vue-ui materialMeta.type:component 叶子 / container 容器 */
16
+ materialType?: 'component' | 'container'
17
+ /** 拖入画布时的初始 prop(覆盖类型推导的空字符串/0/false) */
18
+ defaultProps?: Record<string, unknown>
19
+ /** 叶子组件默认插槽文案(如按钮文字;不写入 schema,仅辅助首次展示) */
20
+ defaultSlotContent?: Partial<Record<string, string>>
21
+ /** 来自 vue-ui materialMeta.preview:设计器画布尺寸与需挂接的 slot */
22
+ preview?: {
23
+ minWidth?: number
24
+ minHeight?: number
25
+ slots?: string[]
26
+ }
27
+ }
28
+
29
+ /** 组件物料条目(运行时含 Vue 组件引用) */
30
+ export interface ComponentMaterialItem {
31
+ id: string
32
+ displayName: string
33
+ component: Component
34
+ meta: ComponentMaterialMeta
35
+ }
36
+
37
+ export interface ComponentMaterialCategory {
38
+ category: string
39
+ children: ComponentMaterialItem[]
40
+ }
@@ -0,0 +1,63 @@
1
+ /** 低代码页面 schema(存库 / 运行时) */
2
+ export interface LowcodePageSchema {
3
+ version: '1.0'
4
+ root: LowcodeNodeSnapshot[]
5
+ }
6
+
7
+ /** 可序列化节点(不含 Vue Component 引用) */
8
+ export interface LowcodeNodeSnapshot {
9
+ id: string
10
+ typeId: string
11
+ props: Record<string, unknown>
12
+ children?: LowcodeNodeSnapshot[]
13
+ }
14
+
15
+ export interface LowcodeApp {
16
+ id: string
17
+ app_key: string
18
+ name: string
19
+ description?: string | null
20
+ status: 'active' | 'inactive'
21
+ created_at?: string
22
+ updated_at?: string
23
+ }
24
+
25
+ export interface LowcodePage {
26
+ id: string
27
+ app_id: string
28
+ page_key: string
29
+ title: string
30
+ route_path: string
31
+ draft_schema: LowcodePageSchema | Record<string, unknown>
32
+ published_schema?: LowcodePageSchema | Record<string, unknown> | null
33
+ published_at?: string | null
34
+ status: 'active' | 'inactive'
35
+ created_at?: string
36
+ updated_at?: string
37
+ }
38
+
39
+ export interface LowcodePageDetail extends LowcodePage {
40
+ app_key: string
41
+ app_name: string
42
+ }
43
+
44
+ export interface LowcodeRuntimePage {
45
+ app_key: string
46
+ page_key: string
47
+ title: string
48
+ route_path: string
49
+ schema: LowcodePageSchema | Record<string, unknown>
50
+ published_at?: string | null
51
+ }
52
+
53
+ export interface LowcodeRuntimePageMeta {
54
+ page_key: string
55
+ title: string
56
+ route_path: string
57
+ published_at?: string | null
58
+ }
59
+
60
+ export const EMPTY_LOWCODE_PAGE_SCHEMA: LowcodePageSchema = {
61
+ version: '1.0',
62
+ root: [],
63
+ }
package/types/rbac.d.ts CHANGED
@@ -34,6 +34,3 @@ export interface AssignUserRolesPayload {
34
34
  export interface AssignRolePermissionsPayload {
35
35
  permissionCodes: string[]
36
36
  }
37
-
38
- /** @deprecated 使用 PermissionCatalogItem */
39
- export type Permission = PermissionCatalogItem
package/types/vue.d.ts CHANGED
@@ -6,6 +6,10 @@ import type { Ref, InjectionKey, WatchStopHandle } from 'vue'
6
6
  * 用于 Vue Hooks 的依赖注入,所有属性都是可选的
7
7
  */
8
8
  export interface VueCompositionAPI {
9
+ /** 组件卸载前的钩子 */
10
+ onBeforeUnmount?: (fn: () => void) => void
11
+ /** 解包 MaybeRef */
12
+ toValue?: <T>(source: T) => T
9
13
  /** 创建响应式引用 */
10
14
  ref?: <T>(value: T) => Ref<T>
11
15
  /** 创建浅响应式引用 */
@@ -19,7 +23,11 @@ export interface VueCompositionAPI {
19
23
  /** 注入依赖 */
20
24
  inject?: <T>(key: InjectionKey<T> | string, defaultValue?: T) => T | undefined
21
25
  /** 监听响应式数据变化 */
22
- watch?: <T>(source: (() => T) | Ref<T>, callback: (newValue: T, oldValue: T) => void, options?: { deep?: boolean; flush?: string; immediate?: boolean }) => WatchStopHandle
26
+ watch?: <T>(
27
+ source: (() => T) | Ref<T>,
28
+ callback: (newValue: T, oldValue: T) => void,
29
+ options?: { deep?: boolean; flush?: 'pre' | 'post' | 'sync'; immediate?: boolean },
30
+ ) => WatchStopHandle
23
31
  }
24
32
 
25
33
  /**
@@ -1,6 +0,0 @@
1
- export declare function extractVideoCoverAsFile(videoFile: File, options?: {
2
- seekTimeSec?: number;
3
- quality?: number;
4
- mimeType?: 'image/jpeg' | 'image/png';
5
- maxWidth?: number;
6
- }): Promise<File>;
@@ -1,57 +0,0 @@
1
- export async function extractVideoCoverAsFile(videoFile, options = {}) {
2
- const { seekTimeSec = 0.1, quality = 0.9, mimeType = 'image/jpeg', maxWidth = 1080, } = options;
3
- if (typeof document === 'undefined') {
4
- throw new Error('当前环境不支持视频封面提取');
5
- }
6
- const video = document.createElement('video');
7
- video.preload = 'metadata';
8
- video.muted = true;
9
- video.playsInline = true;
10
- const objectUrl = URL.createObjectURL(videoFile);
11
- video.src = objectUrl;
12
- try {
13
- await new Promise((resolve, reject) => {
14
- const onLoaded = () => resolve();
15
- const onError = () => reject(new Error('读取视频失败,无法提取封面'));
16
- video.addEventListener('loadedmetadata', onLoaded, { once: true });
17
- video.addEventListener('error', onError, { once: true });
18
- });
19
- const duration = Number.isFinite(video.duration) ? video.duration : 0;
20
- const targetTime = Math.max(0, Math.min(seekTimeSec, duration > 0 ? Math.max(0, duration - 0.05) : seekTimeSec));
21
- await new Promise((resolve, reject) => {
22
- const onSeeked = () => resolve();
23
- const onError = () => reject(new Error('定位视频帧失败,无法提取封面'));
24
- video.addEventListener('seeked', onSeeked, { once: true });
25
- video.addEventListener('error', onError, { once: true });
26
- video.currentTime = targetTime;
27
- });
28
- const srcW = Math.max(1, video.videoWidth || 1);
29
- const srcH = Math.max(1, video.videoHeight || 1);
30
- const scale = srcW > maxWidth ? maxWidth / srcW : 1;
31
- const outW = Math.max(1, Math.round(srcW * scale));
32
- const outH = Math.max(1, Math.round(srcH * scale));
33
- const canvas = document.createElement('canvas');
34
- canvas.width = outW;
35
- canvas.height = outH;
36
- const ctx = canvas.getContext('2d');
37
- if (!ctx)
38
- throw new Error('创建封面画布失败');
39
- ctx.drawImage(video, 0, 0, outW, outH);
40
- const blob = await new Promise((resolve, reject) => {
41
- canvas.toBlob((b) => {
42
- if (!b) {
43
- reject(new Error('生成封面失败'));
44
- return;
45
- }
46
- resolve(b);
47
- }, mimeType, quality);
48
- });
49
- const ext = mimeType === 'image/png' ? 'png' : 'jpg';
50
- const base = videoFile.name.replace(/\.[^/.]+$/, '') || 'video-cover';
51
- return new File([blob], `${base}-cover.${ext}`, { type: mimeType });
52
- }
53
- finally {
54
- URL.revokeObjectURL(objectUrl);
55
- }
56
- }
57
- //# sourceMappingURL=extractVideoCover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractVideoCover.js","sourceRoot":"","sources":["../../../src/functions/file/extractVideoCover.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- export declare function formatImFileToken(filePath: string): string;
2
- export declare const formatImLocalFileToken: typeof formatImFileToken;
3
- export declare function formatImImageLocalToken(attachKey: string): string;
4
- export interface ImImageIntrinsicDimensions {
5
- width: number;
6
- height: number;
7
- }
8
- export declare function formatImImageUrlToken(url: string, dimensions?: ImImageIntrinsicDimensions): string;
9
- export declare function parseImImageUrlTokenPayload(payload: string): {
10
- url: string;
11
- width?: number;
12
- height?: number;
13
- };
14
- export type ImRichContentSegment = {
15
- type: 'text';
16
- text: string;
17
- } | {
18
- type: 'mention';
19
- userId: string;
20
- raw: string;
21
- label?: string;
22
- } | {
23
- type: 'file';
24
- path: string;
25
- raw: string;
26
- } | {
27
- type: 'image';
28
- url: string;
29
- raw: string;
30
- pending: boolean;
31
- attachKey?: string;
32
- width?: number;
33
- height?: number;
34
- };
35
- export declare function parseImRichContentSegments(content: string): ImRichContentSegment[];
36
- export declare function contentHasImageLocalTokens(content: string): boolean;
37
- export declare function replaceImImageLocalToken(content: string, attachKey: string, url: string, dimensions?: ImImageIntrinsicDimensions): string;
38
- export declare function replaceImImageUrlToken(content: string, fromUrl: string, toUrl: string, dimensions?: ImImageIntrinsicDimensions): string;
39
- export declare function contentHasImRichInlineTokens(content: string): boolean;
40
- export type MaterializeImRichContentOptions = {
41
- resolveMentionLabel?: (userId: string) => string;
42
- mentionFallbackLabel?: (userId: string) => string;
43
- formatLocalFilePath?: (path: string) => string;
44
- preserveLocalFileTokens?: boolean;
45
- preserveImageUrlTokens?: boolean;
46
- formatImageUrl?: (url: string) => string;
47
- formatImagePending?: () => string;
48
- };
49
- export declare function materializeImRichContentTokensInText(content: string, options?: MaterializeImRichContentOptions): string;
@@ -1,185 +0,0 @@
1
- import { parseImMentionTokenPayload } from './parseImMentionSegments.js';
2
- export function formatImFileToken(filePath) {
3
- const p = filePath.trim();
4
- return `local-file:[${p}]`;
5
- }
6
- export const formatImLocalFileToken = formatImFileToken;
7
- export function formatImImageLocalToken(attachKey) {
8
- const k = attachKey.trim();
9
- return `img:[local:${k}]`;
10
- }
11
- export function formatImImageUrlToken(url, dimensions) {
12
- const u = url.trim();
13
- if (!u)
14
- return '';
15
- const w = Math.round(dimensions?.width ?? 0);
16
- const h = Math.round(dimensions?.height ?? 0);
17
- if (w > 0 && h > 0) {
18
- return `img:[url:${u};w:${w};h:${h}]`;
19
- }
20
- return `img:[url:${u}]`;
21
- }
22
- export function parseImImageUrlTokenPayload(payload) {
23
- const raw = payload.trim();
24
- if (!raw)
25
- return { url: '' };
26
- const body = raw.startsWith('url:') ? raw.slice(4) : raw;
27
- if (!body)
28
- return { url: '' };
29
- const dimMatch = body.match(/;w:(\d+);h:(\d+)$/);
30
- if (dimMatch?.index != null) {
31
- const width = Number.parseInt(dimMatch[1], 10);
32
- const height = Number.parseInt(dimMatch[2], 10);
33
- const url = body.slice(0, dimMatch.index).trim();
34
- return {
35
- url,
36
- ...(width > 0 && height > 0 ? { width, height } : {}),
37
- };
38
- }
39
- return { url: body.trim() };
40
- }
41
- const INLINE_TOKEN_RE = /@\[uid:([^\]]+)\]|local-file:\[([^\]]+)\]|file:\[([^\]]+)\]|img:\[local:([^\]]+)\]|img:\[url:([^\]]+)\]/g;
42
- export function parseImRichContentSegments(content) {
43
- if (!content)
44
- return [{ type: 'text', text: '' }];
45
- const segments = [];
46
- let last = 0;
47
- const re = new RegExp(INLINE_TOKEN_RE.source, 'g');
48
- let m;
49
- while ((m = re.exec(content)) !== null) {
50
- if (m.index > last) {
51
- segments.push({ type: 'text', text: content.slice(last, m.index) });
52
- }
53
- if (m[1] != null) {
54
- const parsed = parseImMentionTokenPayload(m[1]);
55
- segments.push({
56
- type: 'mention',
57
- userId: parsed.userId,
58
- raw: m[0],
59
- ...(parsed.label ? { label: parsed.label } : {}),
60
- });
61
- }
62
- else if (m[2] != null) {
63
- segments.push({ type: 'file', path: m[2], raw: m[0] });
64
- }
65
- else if (m[3] != null) {
66
- segments.push({ type: 'file', path: m[3], raw: m[0] });
67
- }
68
- else if (m[4] != null) {
69
- segments.push({
70
- type: 'image',
71
- url: '',
72
- attachKey: m[4],
73
- raw: m[0],
74
- pending: true,
75
- });
76
- }
77
- else if (m[5] != null) {
78
- const parsed = parseImImageUrlTokenPayload(m[5]);
79
- segments.push({
80
- type: 'image',
81
- url: parsed.url,
82
- ...(parsed.width != null && parsed.height != null
83
- ? { width: parsed.width, height: parsed.height }
84
- : {}),
85
- raw: m[0],
86
- pending: false,
87
- });
88
- }
89
- last = m.index + m[0].length;
90
- }
91
- if (last < content.length) {
92
- segments.push({ type: 'text', text: content.slice(last) });
93
- }
94
- if (segments.length === 0) {
95
- return [{ type: 'text', text: content }];
96
- }
97
- return segments;
98
- }
99
- export function contentHasImageLocalTokens(content) {
100
- return /img:\[local:[^\]]+\]/.test(content);
101
- }
102
- export function replaceImImageLocalToken(content, attachKey, url, dimensions) {
103
- const from = formatImImageLocalToken(attachKey);
104
- const to = formatImImageUrlToken(url, dimensions);
105
- return content.includes(from) ? content.split(from).join(to) : content;
106
- }
107
- export function replaceImImageUrlToken(content, fromUrl, toUrl, dimensions) {
108
- const to = formatImImageUrlToken(toUrl, dimensions);
109
- const fromWithDims = formatImImageUrlToken(fromUrl, dimensions);
110
- if (content.includes(fromWithDims)) {
111
- return content.split(fromWithDims).join(to);
112
- }
113
- const fromPlain = formatImImageUrlToken(fromUrl);
114
- if (content.includes(fromPlain)) {
115
- return content.split(fromPlain).join(to);
116
- }
117
- return content;
118
- }
119
- const INLINE_TOKEN_IN_TEXT = /@\[uid:|local-file:\[|img:\[|file:\[/;
120
- export function contentHasImRichInlineTokens(content) {
121
- return INLINE_TOKEN_IN_TEXT.test(content ?? '');
122
- }
123
- function basenameFromPath(path) {
124
- const p = path.trim();
125
- if (!p)
126
- return '';
127
- const parts = p.split(/[/\\]/);
128
- return parts[parts.length - 1] || p;
129
- }
130
- function defaultFormatLocalFilePath(path) {
131
- const name = basenameFromPath(path);
132
- return name ? `[文件] ${name}` : '[文件]';
133
- }
134
- function defaultFormatMentionLabel(userId, options, embeddedLabel) {
135
- const id = userId.trim();
136
- const label = embeddedLabel?.trim() ||
137
- options?.resolveMentionLabel?.(id)?.trim() ||
138
- options?.mentionFallbackLabel?.(id)?.trim();
139
- if (label)
140
- return `@${label}`;
141
- if (id.length > 14)
142
- return `@${id.slice(0, 12)}…`;
143
- return `@${id || '…'}`;
144
- }
145
- export function materializeImRichContentTokensInText(content, options) {
146
- const raw = content ?? '';
147
- if (!raw || !INLINE_TOKEN_IN_TEXT.test(raw))
148
- return raw;
149
- const segments = parseImRichContentSegments(raw);
150
- let out = '';
151
- for (const seg of segments) {
152
- if (seg.type === 'text') {
153
- out += seg.text;
154
- continue;
155
- }
156
- if (seg.type === 'mention') {
157
- out += defaultFormatMentionLabel(seg.userId, options, seg.label);
158
- continue;
159
- }
160
- if (seg.type === 'file') {
161
- if (options?.preserveLocalFileTokens) {
162
- out += seg.raw;
163
- }
164
- else {
165
- out +=
166
- options?.formatLocalFilePath?.(seg.path) ??
167
- defaultFormatLocalFilePath(seg.path);
168
- }
169
- continue;
170
- }
171
- if (seg.type === 'image') {
172
- if (seg.pending) {
173
- out += options?.formatImagePending?.() ?? '[图片]';
174
- }
175
- else if (options?.preserveImageUrlTokens) {
176
- out += seg.raw;
177
- }
178
- else {
179
- out += options?.formatImageUrl?.(seg.url) ?? '[图片]';
180
- }
181
- }
182
- }
183
- return out;
184
- }
185
- //# sourceMappingURL=imInlineContentTokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imInlineContentTokens.js","sourceRoot":"","sources":["../../../src/functions/im/imInlineContentTokens.ts"],"names":[],"mappings":"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"}