@knime/product-features 0.3.0 → 0.4.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 (580) hide show
  1. package/dist/_plugin-vue_export-helper-pcqpp-6-.js +10 -0
  2. package/dist/_plugin-vue_export-helper-pcqpp-6-.js.map +1 -0
  3. package/dist/ai.js +5 -4
  4. package/dist/ai.js.map +1 -1
  5. package/dist/dataTransfer.css +161 -0
  6. package/dist/dataTransfer.js +1258 -0
  7. package/dist/dataTransfer.js.map +1 -0
  8. package/dist/format-ra_vlnN7.js +238 -0
  9. package/dist/format-ra_vlnN7.js.map +1 -0
  10. package/dist/nodes.js +2 -1
  11. package/dist/nodes.js.map +1 -1
  12. package/dist/rfcErrors.css +18 -0
  13. package/dist/rfcErrors.js +223 -0
  14. package/dist/rfcErrors.js.map +1 -0
  15. package/dist/src/dataTransfer/download/index.d.ts +2 -0
  16. package/dist/src/dataTransfer/download/index.d.ts.map +1 -0
  17. package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts +26 -0
  18. package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts.map +1 -0
  19. package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts +15 -0
  20. package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts.map +1 -0
  21. package/dist/src/dataTransfer/download/ui/index.d.ts +3 -0
  22. package/dist/src/dataTransfer/download/ui/index.d.ts.map +1 -0
  23. package/dist/src/dataTransfer/download/ui/types.d.ts +8 -0
  24. package/dist/src/dataTransfer/download/ui/types.d.ts.map +1 -0
  25. package/dist/src/dataTransfer/download/useDownloadArtifact.d.ts +81 -0
  26. package/dist/src/dataTransfer/download/useDownloadArtifact.d.ts.map +1 -0
  27. package/dist/src/dataTransfer/index.d.ts +5 -0
  28. package/dist/src/dataTransfer/index.d.ts.map +1 -0
  29. package/dist/src/dataTransfer/shared/httpClient/constants.d.ts +2 -0
  30. package/dist/src/dataTransfer/shared/httpClient/constants.d.ts.map +1 -0
  31. package/dist/src/dataTransfer/shared/httpClient/createHttpClient.d.ts +5 -0
  32. package/dist/src/dataTransfer/shared/httpClient/createHttpClient.d.ts.map +1 -0
  33. package/dist/src/dataTransfer/shared/httpClient/index.d.ts +3 -0
  34. package/dist/src/dataTransfer/shared/httpClient/index.d.ts.map +1 -0
  35. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue.d.ts +29 -0
  36. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/CollapsiblePanel.vue.d.ts.map +1 -0
  37. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/index.d.ts +3 -0
  38. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/index.d.ts.map +1 -0
  39. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/types.d.ts +5 -0
  40. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/types.d.ts.map +1 -0
  41. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/useIconFlipper.d.ts +10 -0
  42. package/dist/src/dataTransfer/shared/ui/CollapsiblePanel/useIconFlipper.d.ts.map +1 -0
  43. package/dist/src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue.d.ts +4 -0
  44. package/dist/src/dataTransfer/shared/ui/ProgressItem/ProgressItem.vue.d.ts.map +1 -0
  45. package/dist/src/dataTransfer/shared/ui/ProgressItem/index.d.ts +3 -0
  46. package/dist/src/dataTransfer/shared/ui/ProgressItem/index.d.ts.map +1 -0
  47. package/dist/src/dataTransfer/shared/ui/ProgressItem/types.d.ts +22 -0
  48. package/dist/src/dataTransfer/shared/ui/ProgressItem/types.d.ts.map +1 -0
  49. package/dist/src/dataTransfer/shared/ui/ProgressList/ProgressList.vue.d.ts +18 -0
  50. package/dist/src/dataTransfer/shared/ui/ProgressList/ProgressList.vue.d.ts.map +1 -0
  51. package/dist/src/dataTransfer/shared/ui/ProgressList/index.d.ts +2 -0
  52. package/dist/src/dataTransfer/shared/ui/ProgressList/index.d.ts.map +1 -0
  53. package/dist/src/dataTransfer/shared/ui/index.d.ts +4 -0
  54. package/dist/src/dataTransfer/shared/ui/index.d.ts.map +1 -0
  55. package/dist/src/dataTransfer/upload/manager/index.d.ts +105 -0
  56. package/dist/src/dataTransfer/upload/manager/index.d.ts.map +1 -0
  57. package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts +18 -0
  58. package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts.map +1 -0
  59. package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts +15 -0
  60. package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts.map +1 -0
  61. package/dist/src/dataTransfer/upload/ui/index.d.ts +5 -0
  62. package/dist/src/dataTransfer/upload/ui/index.d.ts.map +1 -0
  63. package/dist/src/dataTransfer/upload/ui/types.d.ts +50 -0
  64. package/dist/src/dataTransfer/upload/ui/types.d.ts.map +1 -0
  65. package/dist/src/dataTransfer/upload/ui/useUploadManager.d.ts +36 -0
  66. package/dist/src/dataTransfer/upload/ui/useUploadManager.d.ts.map +1 -0
  67. package/dist/src/dataTransfer/upload/useFileUpload.d.ts +101 -0
  68. package/dist/src/dataTransfer/upload/useFileUpload.d.ts.map +1 -0
  69. package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts +13 -0
  70. package/dist/src/rfcErrors/RFCErrorToastTemplate.vue.d.ts.map +1 -0
  71. package/dist/src/rfcErrors/index.d.ts +13 -0
  72. package/dist/src/rfcErrors/index.d.ts.map +1 -0
  73. package/dist/src/rfcErrors/serializeRFCErrorData.d.ts +3 -0
  74. package/dist/src/rfcErrors/serializeRFCErrorData.d.ts.map +1 -0
  75. package/dist/src/rfcErrors/types.d.ts +37 -0
  76. package/dist/src/rfcErrors/types.d.ts.map +1 -0
  77. package/dist/src/toasts/Toast/Toast.vue.d.ts +12 -0
  78. package/dist/src/toasts/Toast/Toast.vue.d.ts.map +1 -0
  79. package/dist/src/toasts/Toast/ToastButton.vue.d.ts +36 -0
  80. package/dist/src/toasts/Toast/ToastButton.vue.d.ts.map +1 -0
  81. package/dist/src/toasts/Toast/enums.d.ts +8 -0
  82. package/dist/src/toasts/Toast/enums.d.ts.map +1 -0
  83. package/dist/src/toasts/Toast/index.d.ts +3 -0
  84. package/dist/src/toasts/Toast/index.d.ts.map +1 -0
  85. package/dist/src/toasts/Toast/types.d.ts +83 -0
  86. package/dist/src/toasts/Toast/types.d.ts.map +1 -0
  87. package/dist/src/toasts/ToastStack/ToastStack.vue.d.ts +4 -0
  88. package/dist/src/toasts/ToastStack/ToastStack.vue.d.ts.map +1 -0
  89. package/dist/src/toasts/ToastStack/index.d.ts +3 -0
  90. package/dist/src/toasts/ToastStack/index.d.ts.map +1 -0
  91. package/dist/src/toasts/ToastStack/injectionKeys.d.ts +3 -0
  92. package/dist/src/toasts/ToastStack/injectionKeys.d.ts.map +1 -0
  93. package/dist/src/toasts/ToastStack/types.d.ts +5 -0
  94. package/dist/src/toasts/ToastStack/types.d.ts.map +1 -0
  95. package/dist/src/toasts/index.d.ts +7 -0
  96. package/dist/src/toasts/index.d.ts.map +1 -0
  97. package/dist/src/toasts/toastService/demo/someConfigFile.d.ts +5 -0
  98. package/dist/src/toasts/toastService/demo/someConfigFile.d.ts.map +1 -0
  99. package/dist/src/toasts/toastService/index.d.ts +4 -0
  100. package/dist/src/toasts/toastService/index.d.ts.map +1 -0
  101. package/dist/src/toasts/toastService/toastService.d.ts +78 -0
  102. package/dist/src/toasts/toastService/toastService.d.ts.map +1 -0
  103. package/dist/src/toasts/toastService/types.d.ts +46 -0
  104. package/dist/src/toasts/toastService/types.d.ts.map +1 -0
  105. package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts +2 -2
  106. package/dist/src/versions/CreateVersionForm/CreateVersionForm.vue.d.ts.map +1 -1
  107. package/dist/src/versions/VersionHistory/VersionHistory.vue.d.ts +2 -2
  108. package/dist/toasts.css +107 -0
  109. package/dist/toasts.js +492 -0
  110. package/dist/toasts.js.map +1 -0
  111. package/dist/versions.js +10 -43
  112. package/dist/versions.js.map +1 -1
  113. package/package.json +31 -11
  114. package/dist/_plugin-vue_export-helper-BLJdeqtw.js +0 -15264
  115. package/dist/_plugin-vue_export-helper-BLJdeqtw.js.map +0 -1
  116. package/dist/_plugin-vue_export-helper.css +0 -4544
  117. package/dist/add-user-BBT39sTb-BBT39sTb.js +0 -23
  118. package/dist/add-user-BBT39sTb-BBT39sTb.js.map +0 -1
  119. package/dist/ai-general-xv5Ym88e-xv5Ym88e.js +0 -23
  120. package/dist/ai-general-xv5Ym88e-xv5Ym88e.js.map +0 -1
  121. package/dist/annotation-mode-C0YL12XP-C0YL12XP.js +0 -23
  122. package/dist/annotation-mode-C0YL12XP-C0YL12XP.js.map +0 -1
  123. package/dist/arrow-down-D8Q9vZG_-D8Q9vZG_.js +0 -23
  124. package/dist/arrow-down-D8Q9vZG_-D8Q9vZG_.js.map +0 -1
  125. package/dist/arrow-up-DJlZjTYZ-DJlZjTYZ.js +0 -23
  126. package/dist/arrow-up-DJlZjTYZ-DJlZjTYZ.js.map +0 -1
  127. package/dist/arrows-expand-eXIczgyQ-eXIczgyQ.js +0 -23
  128. package/dist/arrows-expand-eXIczgyQ-eXIczgyQ.js.map +0 -1
  129. package/dist/arrows-move-CDiEl6Ry-CDiEl6Ry.js +0 -23
  130. package/dist/arrows-move-CDiEl6Ry-CDiEl6Ry.js.map +0 -1
  131. package/dist/arrows-order-DMoJXS-I-DMoJXS-I.js +0 -23
  132. package/dist/arrows-order-DMoJXS-I-DMoJXS-I.js.map +0 -1
  133. package/dist/audio-datatype-DyzJTMxb-DyzJTMxb.js +0 -23
  134. package/dist/audio-datatype-DyzJTMxb-DyzJTMxb.js.map +0 -1
  135. package/dist/auto-configure-BU7AIhL7-BU7AIhL7.js +0 -23
  136. package/dist/auto-configure-BU7AIhL7-BU7AIhL7.js.map +0 -1
  137. package/dist/back-D1kA9zuH-D1kA9zuH.js +0 -23
  138. package/dist/back-D1kA9zuH-D1kA9zuH.js.map +0 -1
  139. package/dist/binary-object-datatype-DHZPEEoV-DHZPEEoV.js +0 -23
  140. package/dist/binary-object-datatype-DHZPEEoV-DHZPEEoV.js.map +0 -1
  141. package/dist/bit-byte-vector-datatype-XJ0yjm_4-XJ0yjm_4.js +0 -23
  142. package/dist/bit-byte-vector-datatype-XJ0yjm_4-XJ0yjm_4.js.map +0 -1
  143. package/dist/bold-C8dRggXe-C8dRggXe.js +0 -23
  144. package/dist/bold-C8dRggXe-C8dRggXe.js.map +0 -1
  145. package/dist/boolean-datatype-B0SBV35e-B0SBV35e.js +0 -27
  146. package/dist/boolean-datatype-B0SBV35e-B0SBV35e.js.map +0 -1
  147. package/dist/calendar-B6v1nLjF-B6v1nLjF.js +0 -23
  148. package/dist/calendar-B6v1nLjF-B6v1nLjF.js.map +0 -1
  149. package/dist/case-sensitive-CHP-__99-CHP-__99.js +0 -22
  150. package/dist/case-sensitive-CHP-__99-CHP-__99.js.map +0 -1
  151. package/dist/cell-renderer-DGnkQWTq-DGnkQWTq.js +0 -23
  152. package/dist/cell-renderer-DGnkQWTq-DGnkQWTq.js.map +0 -1
  153. package/dist/center-aligned--zRFP8Lf--zRFP8Lf.js +0 -22
  154. package/dist/center-aligned--zRFP8Lf--zRFP8Lf.js.map +0 -1
  155. package/dist/checkmark-DOn23D5R-DOn23D5R.js +0 -23
  156. package/dist/checkmark-DOn23D5R-DOn23D5R.js.map +0 -1
  157. package/dist/chevron-down-BsSG_C_8-BsSG_C_8.js +0 -23
  158. package/dist/chevron-down-BsSG_C_8-BsSG_C_8.js.map +0 -1
  159. package/dist/chevron-left-BKFnSetN-BKFnSetN.js +0 -23
  160. package/dist/chevron-left-BKFnSetN-BKFnSetN.js.map +0 -1
  161. package/dist/chevron-left-double-D-EEhZoy-D-EEhZoy.js +0 -23
  162. package/dist/chevron-left-double-D-EEhZoy-D-EEhZoy.js.map +0 -1
  163. package/dist/chevron-right-CozOeJxa-CozOeJxa.js +0 -23
  164. package/dist/chevron-right-CozOeJxa-CozOeJxa.js.map +0 -1
  165. package/dist/chevron-right-double-BgfwXKBg-BgfwXKBg.js +0 -23
  166. package/dist/chevron-right-double-BgfwXKBg-BgfwXKBg.js.map +0 -1
  167. package/dist/chevron-up-FA-c_L5N-FA-c_L5N.js +0 -23
  168. package/dist/chevron-up-FA-c_L5N-FA-c_L5N.js.map +0 -1
  169. package/dist/circle-error-CwUp2gKh-CwUp2gKh.js +0 -23
  170. package/dist/circle-error-CwUp2gKh-CwUp2gKh.js.map +0 -1
  171. package/dist/circle-info-CcCjmOUH-CcCjmOUH.js +0 -24
  172. package/dist/circle-info-CcCjmOUH-CcCjmOUH.js.map +0 -1
  173. package/dist/circle-question-TFLpel6L-TFLpel6L.js +0 -23
  174. package/dist/circle-question-TFLpel6L-TFLpel6L.js.map +0 -1
  175. package/dist/circle-success-CGkhxpZE-CGkhxpZE.js +0 -23
  176. package/dist/circle-success-CGkhxpZE-CGkhxpZE.js.map +0 -1
  177. package/dist/circle-unchecked-DOoOn6iz-DOoOn6iz.js +0 -23
  178. package/dist/circle-unchecked-DOoOn6iz-DOoOn6iz.js.map +0 -1
  179. package/dist/cloud-download-CstHUDZv-CstHUDZv.js +0 -23
  180. package/dist/cloud-download-CstHUDZv-CstHUDZv.js.map +0 -1
  181. package/dist/cloud-knime-CpZfWe3J-CpZfWe3J.js +0 -23
  182. package/dist/cloud-knime-CpZfWe3J-CpZfWe3J.js.map +0 -1
  183. package/dist/cloud-pending-changes-CWBUkOnb-CWBUkOnb.js +0 -23
  184. package/dist/cloud-pending-changes-CWBUkOnb-CWBUkOnb.js.map +0 -1
  185. package/dist/cloud-synced-DlT_4y5Q-DlT_4y5Q.js +0 -23
  186. package/dist/cloud-synced-DlT_4y5Q-DlT_4y5Q.js.map +0 -1
  187. package/dist/cloud-upload-DQvu_3cc-DQvu_3cc.js +0 -23
  188. package/dist/cloud-upload-DQvu_3cc-DQvu_3cc.js.map +0 -1
  189. package/dist/cloud-workflow-Bo_4KHLP-Bo_4KHLP.js +0 -23
  190. package/dist/cloud-workflow-Bo_4KHLP-Bo_4KHLP.js.map +0 -1
  191. package/dist/code-block-DrOaCM3g-DrOaCM3g.js +0 -23
  192. package/dist/code-block-DrOaCM3g-DrOaCM3g.js.map +0 -1
  193. package/dist/collection-BBXRVj4b-BBXRVj4b.js +0 -23
  194. package/dist/collection-BBXRVj4b-BBXRVj4b.js.map +0 -1
  195. package/dist/collection-list-datatype-DDLoFog9-DDLoFog9.js +0 -23
  196. package/dist/collection-list-datatype-DDLoFog9-DDLoFog9.js.map +0 -1
  197. package/dist/collection-set-datatype-QGQHiErr-QGQHiErr.js +0 -22
  198. package/dist/collection-set-datatype-QGQHiErr-QGQHiErr.js.map +0 -1
  199. package/dist/color-picker-k6GkGnF5-k6GkGnF5.js +0 -23
  200. package/dist/color-picker-k6GkGnF5-k6GkGnF5.js.map +0 -1
  201. package/dist/column-width-Cjb-6nqI-Cjb-6nqI.js +0 -23
  202. package/dist/column-width-Cjb-6nqI-Cjb-6nqI.js.map +0 -1
  203. package/dist/comment-DL9ZR-vM-DL9ZR-vM.js +0 -23
  204. package/dist/comment-DL9ZR-vM-DL9ZR-vM.js.map +0 -1
  205. package/dist/component-BArrSsoi-BArrSsoi.js +0 -23
  206. package/dist/component-BArrSsoi-BArrSsoi.js.map +0 -1
  207. package/dist/connection-cIDhN_bU-cIDhN_bU.js +0 -23
  208. package/dist/connection-cIDhN_bU-cIDhN_bU.js.map +0 -1
  209. package/dist/copy-D43FaHi--D43FaHi-.js +0 -23
  210. package/dist/copy-D43FaHi--D43FaHi-.js.map +0 -1
  211. package/dist/cursor-DSIjd7yc-DSIjd7yc.js +0 -22
  212. package/dist/cursor-DSIjd7yc-DSIjd7yc.js.map +0 -1
  213. package/dist/data-app-BHCZS7qU-BHCZS7qU.js +0 -23
  214. package/dist/data-app-BHCZS7qU-BHCZS7qU.js.map +0 -1
  215. package/dist/data-value-view-DZAfZGqs-DZAfZGqs.js +0 -23
  216. package/dist/data-value-view-DZAfZGqs-DZAfZGqs.js.map +0 -1
  217. package/dist/date-datatype-DX2o-Qoi-DX2o-Qoi.js +0 -23
  218. package/dist/date-datatype-DX2o-Qoi-DX2o-Qoi.js.map +0 -1
  219. package/dist/date-time-C3cmSAQm-C3cmSAQm.js +0 -23
  220. package/dist/date-time-C3cmSAQm-C3cmSAQm.js.map +0 -1
  221. package/dist/date-time-local-datatype-BRveWl93-BRveWl93.js +0 -23
  222. package/dist/date-time-local-datatype-BRveWl93-BRveWl93.js.map +0 -1
  223. package/dist/date-time-zoned-datatype-CvUpjzJk-CvUpjzJk.js +0 -23
  224. package/dist/date-time-zoned-datatype-CvUpjzJk-CvUpjzJk.js.map +0 -1
  225. package/dist/db-browse-BJj19qUq-BJj19qUq.js +0 -23
  226. package/dist/db-browse-BJj19qUq-BJj19qUq.js.map +0 -1
  227. package/dist/db-database-CyCrPzu--CyCrPzu-.js +0 -23
  228. package/dist/db-database-CyCrPzu--CyCrPzu-.js.map +0 -1
  229. package/dist/db-fetch-CJMHzQp5-CJMHzQp5.js +0 -23
  230. package/dist/db-fetch-CJMHzQp5-CJMHzQp5.js.map +0 -1
  231. package/dist/db-schema-C4gtYXvd-C4gtYXvd.js +0 -23
  232. package/dist/db-schema-C4gtYXvd-C4gtYXvd.js.map +0 -1
  233. package/dist/db-table-DifKATf6-DifKATf6.js +0 -23
  234. package/dist/db-table-DifKATf6-DifKATf6.js.map +0 -1
  235. package/dist/db-table-view-CcF1plGQ-CcF1plGQ.js +0 -23
  236. package/dist/db-table-view-CcF1plGQ-CcF1plGQ.js.map +0 -1
  237. package/dist/default-extension-datatype-C7jbGM5d-C7jbGM5d.js +0 -23
  238. package/dist/default-extension-datatype-C7jbGM5d-C7jbGM5d.js.map +0 -1
  239. package/dist/deploy-Dr6jEhZU-Dr6jEhZU.js +0 -24
  240. package/dist/deploy-Dr6jEhZU-Dr6jEhZU.js.map +0 -1
  241. package/dist/detect-DkQik2ep-DkQik2ep.js +0 -23
  242. package/dist/detect-DkQik2ep-DkQik2ep.js.map +0 -1
  243. package/dist/divider-Bhqt1kvt-Bhqt1kvt.js +0 -22
  244. package/dist/divider-Bhqt1kvt-Bhqt1kvt.js.map +0 -1
  245. package/dist/document-datatype-CmWsp5e8-CmWsp5e8.js +0 -22
  246. package/dist/document-datatype-CmWsp5e8-CmWsp5e8.js.map +0 -1
  247. package/dist/duplicate-Mtq886XD-Mtq886XD.js +0 -23
  248. package/dist/duplicate-Mtq886XD-Mtq886XD.js.map +0 -1
  249. package/dist/duration-Dfp9ox2I-Dfp9ox2I.js +0 -23
  250. package/dist/duration-Dfp9ox2I-Dfp9ox2I.js.map +0 -1
  251. package/dist/duration-date-based-datatype-ZMMDq_rT-ZMMDq_rT.js +0 -23
  252. package/dist/duration-date-based-datatype-ZMMDq_rT-ZMMDq_rT.js.map +0 -1
  253. package/dist/duration-time-based-datatype-DWj4ALsB-DWj4ALsB.js +0 -23
  254. package/dist/duration-time-based-datatype-DWj4ALsB-DWj4ALsB.js.map +0 -1
  255. package/dist/edit-Bg040TR4-Bg040TR4.js +0 -22
  256. package/dist/edit-Bg040TR4-Bg040TR4.js.map +0 -1
  257. package/dist/education-CsB0t7AG-CsB0t7AG.js +0 -23
  258. package/dist/education-CsB0t7AG-CsB0t7AG.js.map +0 -1
  259. package/dist/error-panel-BCvYjM5m-BCvYjM5m.js +0 -23
  260. package/dist/error-panel-BCvYjM5m-BCvYjM5m.js.map +0 -1
  261. package/dist/execute-CDtz4PKy-CDtz4PKy.js +0 -23
  262. package/dist/execute-CDtz4PKy-CDtz4PKy.js.map +0 -1
  263. package/dist/execute-all-JZlJ6VtK-JZlJ6VtK.js +0 -23
  264. package/dist/execute-all-JZlJ6VtK-JZlJ6VtK.js.map +0 -1
  265. package/dist/expand-panel-C0-YqxWN-C0-YqxWN.js +0 -23
  266. package/dist/expand-panel-C0-YqxWN-C0-YqxWN.js.map +0 -1
  267. package/dist/extension-DV2OG2b--DV2OG2b-.js +0 -23
  268. package/dist/extension-DV2OG2b--DV2OG2b-.js.map +0 -1
  269. package/dist/extension-community-BL7uY2lh-BL7uY2lh.js +0 -23
  270. package/dist/extension-community-BL7uY2lh-BL7uY2lh.js.map +0 -1
  271. package/dist/external-link-D6c_uzZp-D6c_uzZp.js +0 -23
  272. package/dist/external-link-D6c_uzZp-D6c_uzZp.js.map +0 -1
  273. package/dist/eye-DIQBS75n-DIQBS75n.js +0 -26
  274. package/dist/eye-DIQBS75n-DIQBS75n.js.map +0 -1
  275. package/dist/file-D-fzxVWf-D-fzxVWf.js +0 -23
  276. package/dist/file-D-fzxVWf-D-fzxVWf.js.map +0 -1
  277. package/dist/file-export-Cm5xiHIP-Cm5xiHIP.js +0 -23
  278. package/dist/file-export-Cm5xiHIP-Cm5xiHIP.js.map +0 -1
  279. package/dist/file-text-DCIkmzWQ-DCIkmzWQ.js +0 -22
  280. package/dist/file-text-DCIkmzWQ-DCIkmzWQ.js.map +0 -1
  281. package/dist/filter-BCzsHR5o-BCzsHR5o.js +0 -22
  282. package/dist/filter-BCzsHR5o-BCzsHR5o.js.map +0 -1
  283. package/dist/flow-variable-default-D8YRzPWl-D8YRzPWl.js +0 -31
  284. package/dist/flow-variable-default-D8YRzPWl-D8YRzPWl.js.map +0 -1
  285. package/dist/flow-variable-in-BiO5ppkU-BiO5ppkU.js +0 -31
  286. package/dist/flow-variable-in-BiO5ppkU-BiO5ppkU.js.map +0 -1
  287. package/dist/flow-variable-in-out-v434yDUG-v434yDUG.js +0 -39
  288. package/dist/flow-variable-in-out-v434yDUG-v434yDUG.js.map +0 -1
  289. package/dist/flow-variable-out-BuATVHTL-BuATVHTL.js +0 -31
  290. package/dist/flow-variable-out-BuATVHTL-BuATVHTL.js.map +0 -1
  291. package/dist/folder-move-6L5NfoIs-6L5NfoIs.js +0 -23
  292. package/dist/folder-move-6L5NfoIs-6L5NfoIs.js.map +0 -1
  293. package/dist/folder-plus-0Z-aPAxX-0Z-aPAxX.js +0 -23
  294. package/dist/folder-plus-0Z-aPAxX-0Z-aPAxX.js.map +0 -1
  295. package/dist/folder-search-DDOYg0f6-DDOYg0f6.js +0 -23
  296. package/dist/folder-search-DDOYg0f6-DDOYg0f6.js.map +0 -1
  297. package/dist/folder-workflow-hjaE8p-i-hjaE8p-i.js +0 -23
  298. package/dist/folder-workflow-hjaE8p-i-hjaE8p-i.js.map +0 -1
  299. package/dist/folder-xz8Bw1k6-xz8Bw1k6.js +0 -23
  300. package/dist/folder-xz8Bw1k6-xz8Bw1k6.js.map +0 -1
  301. package/dist/forum-CunE8Bpo-CunE8Bpo.js +0 -22
  302. package/dist/forum-CunE8Bpo-CunE8Bpo.js.map +0 -1
  303. package/dist/function-catalog-CRXmv7AG-CRXmv7AG.js +0 -23
  304. package/dist/function-catalog-CRXmv7AG-CRXmv7AG.js.map +0 -1
  305. package/dist/geo-datatype-CTQgQTql-CTQgQTql.js +0 -27
  306. package/dist/geo-datatype-CTQgQTql-CTQgQTql.js.map +0 -1
  307. package/dist/helm-datatype-XIlHXQBP-XIlHXQBP.js +0 -23
  308. package/dist/helm-datatype-XIlHXQBP-XIlHXQBP.js.map +0 -1
  309. package/dist/hide-eye-BrIKmBWt-BrIKmBWt.js +0 -23
  310. package/dist/hide-eye-BrIKmBWt-BrIKmBWt.js.map +0 -1
  311. package/dist/home-CW06ROg3-CW06ROg3.js +0 -23
  312. package/dist/home-CW06ROg3-CW06ROg3.js.map +0 -1
  313. package/dist/image-png-datatype-CtnGTQlX-CtnGTQlX.js +0 -23
  314. package/dist/image-png-datatype-CtnGTQlX-CtnGTQlX.js.map +0 -1
  315. package/dist/image-svg-datatype-DgySAOGM-DgySAOGM.js +0 -23
  316. package/dist/image-svg-datatype-DgySAOGM-DgySAOGM.js.map +0 -1
  317. package/dist/import-Bjz9KZM--Bjz9KZM-.js +0 -23
  318. package/dist/import-Bjz9KZM--Bjz9KZM-.js.map +0 -1
  319. package/dist/import-table-BaqmTPnF-BaqmTPnF.js +0 -23
  320. package/dist/import-table-BaqmTPnF-BaqmTPnF.js.map +0 -1
  321. package/dist/info-C8GezBIf-C8GezBIf.js +0 -23
  322. package/dist/info-C8GezBIf-C8GezBIf.js.map +0 -1
  323. package/dist/interval-CzQaVMPH-CzQaVMPH.js +0 -23
  324. package/dist/interval-CzQaVMPH-CzQaVMPH.js.map +0 -1
  325. package/dist/italic-B6SY7x6N-B6SY7x6N.js +0 -23
  326. package/dist/italic-B6SY7x6N-B6SY7x6N.js.map +0 -1
  327. package/dist/json-datatype-DgHr_Q8U-DgHr_Q8U.js +0 -23
  328. package/dist/json-datatype-DgHr_Q8U-DgHr_Q8U.js.map +0 -1
  329. package/dist/key-9hybjORk-9hybjORk.js +0 -23
  330. package/dist/key-9hybjORk-9hybjORk.js.map +0 -1
  331. package/dist/labeling-datatype-CGG_DguN-CGG_DguN.js +0 -26
  332. package/dist/labeling-datatype-CGG_DguN-CGG_DguN.js.map +0 -1
  333. package/dist/layout-editor-At6vQ3aU-At6vQ3aU.js +0 -22
  334. package/dist/layout-editor-At6vQ3aU-At6vQ3aU.js.map +0 -1
  335. package/dist/left-aligned-C90MrNJd-C90MrNJd.js +0 -23
  336. package/dist/left-aligned-C90MrNJd-C90MrNJd.js.map +0 -1
  337. package/dist/like-BwC1fMTh-BwC1fMTh.js +0 -22
  338. package/dist/like-BwC1fMTh-BwC1fMTh.js.map +0 -1
  339. package/dist/limit-D84DMtQW-D84DMtQW.js +0 -23
  340. package/dist/limit-D84DMtQW-D84DMtQW.js.map +0 -1
  341. package/dist/linear-notation-molecule-CepA_vEp-CepA_vEp.js +0 -23
  342. package/dist/linear-notation-molecule-CepA_vEp-CepA_vEp.js.map +0 -1
  343. package/dist/link-DH0XmQMp-DH0XmQMp.js +0 -23
  344. package/dist/link-DH0XmQMp-DH0XmQMp.js.map +0 -1
  345. package/dist/linked-component-BOb5aj87-BOb5aj87.js +0 -23
  346. package/dist/linked-component-BOb5aj87-BOb5aj87.js.map +0 -1
  347. package/dist/linked-metanode-ojS3JQJp-ojS3JQJp.js +0 -23
  348. package/dist/linked-metanode-ojS3JQJp-ojS3JQJp.js.map +0 -1
  349. package/dist/list-CQmzxqnp-CQmzxqnp.js +0 -23
  350. package/dist/list-CQmzxqnp-CQmzxqnp.js.map +0 -1
  351. package/dist/list-bulletpoint-BLPnukaY-BLPnukaY.js +0 -23
  352. package/dist/list-bulletpoint-BLPnukaY-BLPnukaY.js.map +0 -1
  353. package/dist/list-number-C47JfmdB-C47JfmdB.js +0 -23
  354. package/dist/list-number-C47JfmdB-C47JfmdB.js.map +0 -1
  355. package/dist/list-thumbs-F5ICnK4Z-F5ICnK4Z.js +0 -23
  356. package/dist/list-thumbs-F5ICnK4Z-F5ICnK4Z.js.map +0 -1
  357. package/dist/local-filesystem-fyrwOsG5-fyrwOsG5.js +0 -23
  358. package/dist/local-filesystem-fyrwOsG5-fyrwOsG5.js.map +0 -1
  359. package/dist/lock-B9qCq8wW-B9qCq8wW.js +0 -23
  360. package/dist/lock-B9qCq8wW-B9qCq8wW.js.map +0 -1
  361. package/dist/login-DGaxAy8E-DGaxAy8E.js +0 -23
  362. package/dist/login-DGaxAy8E-DGaxAy8E.js.map +0 -1
  363. package/dist/menu-BSS_QnZi-BSS_QnZi.js +0 -23
  364. package/dist/menu-BSS_QnZi-BSS_QnZi.js.map +0 -1
  365. package/dist/message-datatype-Ds55YGMQ-Ds55YGMQ.js +0 -23
  366. package/dist/message-datatype-Ds55YGMQ-Ds55YGMQ.js.map +0 -1
  367. package/dist/metanode-BOoscDpe-BOoscDpe.js +0 -23
  368. package/dist/metanode-BOoscDpe-BOoscDpe.js.map +0 -1
  369. package/dist/microscope-CPwlykKH-CPwlykKH.js +0 -23
  370. package/dist/microscope-CPwlykKH-CPwlykKH.js.map +0 -1
  371. package/dist/mini-map-DKez_1T0-DKez_1T0.js +0 -21
  372. package/dist/mini-map-DKez_1T0-DKez_1T0.js.map +0 -1
  373. package/dist/minimize-dialog-CsKInFjQ-CsKInFjQ.js +0 -23
  374. package/dist/minimize-dialog-CsKInFjQ-CsKInFjQ.js.map +0 -1
  375. package/dist/minimize-side-panel-DOe27uOi-DOe27uOi.js +0 -23
  376. package/dist/minimize-side-panel-DOe27uOi-DOe27uOi.js.map +0 -1
  377. package/dist/minus-CUOnFK-_-CUOnFK-_.js +0 -22
  378. package/dist/minus-CUOnFK-_-CUOnFK-_.js.map +0 -1
  379. package/dist/model-pmml-datatype-kXlL8AWg-kXlL8AWg.js +0 -23
  380. package/dist/model-pmml-datatype-kXlL8AWg-kXlL8AWg.js.map +0 -1
  381. package/dist/molecule-CT71Yhf1-CT71Yhf1.js +0 -23
  382. package/dist/molecule-CT71Yhf1-CT71Yhf1.js.map +0 -1
  383. package/dist/more-actions-r1Ai1cv8-r1Ai1cv8.js +0 -22
  384. package/dist/more-actions-r1Ai1cv8-r1Ai1cv8.js.map +0 -1
  385. package/dist/node-stack-B2-NOdn1-B2-NOdn1.js +0 -23
  386. package/dist/node-stack-B2-NOdn1-B2-NOdn1.js.map +0 -1
  387. package/dist/nodes-align-horiz-BNN1SQyE-BNN1SQyE.js +0 -22
  388. package/dist/nodes-align-horiz-BNN1SQyE-BNN1SQyE.js.map +0 -1
  389. package/dist/nodes-align-vert-JG8gmWk5-JG8gmWk5.js +0 -22
  390. package/dist/nodes-align-vert-JG8gmWk5-JG8gmWk5.js.map +0 -1
  391. package/dist/number-double-datatype-B6nc4th6-B6nc4th6.js +0 -22
  392. package/dist/number-double-datatype-B6nc4th6-B6nc4th6.js.map +0 -1
  393. package/dist/number-double-vector-datatype-D3rzzxjM-D3rzzxjM.js +0 -23
  394. package/dist/number-double-vector-datatype-D3rzzxjM-D3rzzxjM.js.map +0 -1
  395. package/dist/number-integer-datatype-BWoQkZ03-BWoQkZ03.js +0 -23
  396. package/dist/number-integer-datatype-BWoQkZ03-BWoQkZ03.js.map +0 -1
  397. package/dist/open-in-new-window-BAU_-IMl-BAU_-IMl.js +0 -23
  398. package/dist/open-in-new-window-BAU_-IMl-BAU_-IMl.js.map +0 -1
  399. package/dist/pan-mode-CGVZU5HB-CGVZU5HB.js +0 -23
  400. package/dist/pan-mode-CGVZU5HB-CGVZU5HB.js.map +0 -1
  401. package/dist/parameter-D3NI1oyc-D3NI1oyc.js +0 -23
  402. package/dist/parameter-D3NI1oyc-D3NI1oyc.js.map +0 -1
  403. package/dist/path-datatype-BD3D-7dL-BD3D-7dL.js +0 -23
  404. package/dist/path-datatype-BD3D-7dL-BD3D-7dL.js.map +0 -1
  405. package/dist/path-separator-DRnUilGA-DRnUilGA.js +0 -23
  406. package/dist/path-separator-DRnUilGA-DRnUilGA.js.map +0 -1
  407. package/dist/pending-changes-BvFdyKn8-BvFdyKn8.js +0 -22
  408. package/dist/pending-changes-BvFdyKn8-BvFdyKn8.js.map +0 -1
  409. package/dist/pin-B6vKBZDp-B6vKBZDp.js +0 -23
  410. package/dist/pin-B6vKBZDp-B6vKBZDp.js.map +0 -1
  411. package/dist/placeholder-CIq-OFkj-CIq-OFkj.js +0 -22
  412. package/dist/placeholder-CIq-OFkj-CIq-OFkj.js.map +0 -1
  413. package/dist/plus-BGcbvgG4-BGcbvgG4.js +0 -22
  414. package/dist/plus-BGcbvgG4-BGcbvgG4.js.map +0 -1
  415. package/dist/python-Bn3ET_9Z-Bn3ET_9Z.js +0 -23
  416. package/dist/python-Bn3ET_9Z-Bn3ET_9Z.js.map +0 -1
  417. package/dist/quote-BhPMewQl-BhPMewQl.js +0 -23
  418. package/dist/quote-BhPMewQl-BhPMewQl.js.map +0 -1
  419. package/dist/random-seed-BmLMj_2x-BmLMj_2x.js +0 -23
  420. package/dist/random-seed-BmLMj_2x-BmLMj_2x.js.map +0 -1
  421. package/dist/re-execution-CPa8UUdU-CPa8UUdU.js +0 -23
  422. package/dist/re-execution-CPa8UUdU-CPa8UUdU.js.map +0 -1
  423. package/dist/redo-BjctXrq6-BjctXrq6.js +0 -23
  424. package/dist/redo-BjctXrq6-BjctXrq6.js.map +0 -1
  425. package/dist/regex-CErlWJQW-CErlWJQW.js +0 -23
  426. package/dist/regex-CErlWJQW-CErlWJQW.js.map +0 -1
  427. package/dist/reload-CDm_DDdP-CDm_DDdP.js +0 -23
  428. package/dist/reload-CDm_DDdP-CDm_DDdP.js.map +0 -1
  429. package/dist/rename-Cyk_xng4-Cyk_xng4.js +0 -22
  430. package/dist/rename-Cyk_xng4-Cyk_xng4.js.map +0 -1
  431. package/dist/replace-9aOLtKuD-9aOLtKuD.js +0 -23
  432. package/dist/replace-9aOLtKuD-9aOLtKuD.js.map +0 -1
  433. package/dist/reset-all-Buf5y-HV-Buf5y-HV.js +0 -23
  434. package/dist/reset-all-Buf5y-HV-Buf5y-HV.js.map +0 -1
  435. package/dist/resume-execution-CRqaKZqz-CRqaKZqz.js +0 -23
  436. package/dist/resume-execution-CRqaKZqz-CRqaKZqz.js.map +0 -1
  437. package/dist/right-aligned-2BkZ58o--2BkZ58o-.js +0 -23
  438. package/dist/right-aligned-2BkZ58o--2BkZ58o-.js.map +0 -1
  439. package/dist/rocket-Bs46VoUh-Bs46VoUh.js +0 -23
  440. package/dist/rocket-Bs46VoUh-Bs46VoUh.js.map +0 -1
  441. package/dist/save-B7DzWjxS-B7DzWjxS.js +0 -23
  442. package/dist/save-B7DzWjxS-B7DzWjxS.js.map +0 -1
  443. package/dist/save-as-CTnCvHfQ-CTnCvHfQ.js +0 -23
  444. package/dist/save-as-CTnCvHfQ-CTnCvHfQ.js.map +0 -1
  445. package/dist/schedule-DuSqromp-DuSqromp.js +0 -23
  446. package/dist/schedule-DuSqromp-DuSqromp.js.map +0 -1
  447. package/dist/search-gykfARpE-gykfARpE.js +0 -22
  448. package/dist/search-gykfARpE-gykfARpE.js.map +0 -1
  449. package/dist/secret-store-_ZlpQRjr-_ZlpQRjr.js +0 -23
  450. package/dist/secret-store-_ZlpQRjr-_ZlpQRjr.js.map +0 -1
  451. package/dist/selected-cancel-CS3Gep56-CS3Gep56.js +0 -23
  452. package/dist/selected-cancel-CS3Gep56-CS3Gep56.js.map +0 -1
  453. package/dist/selected-execution-BJxjtKXq-BJxjtKXq.js +0 -23
  454. package/dist/selected-execution-BJxjtKXq-BJxjtKXq.js.map +0 -1
  455. package/dist/selected-reset-SMx6XDk5-SMx6XDk5.js +0 -23
  456. package/dist/selected-reset-SMx6XDk5-SMx6XDk5.js.map +0 -1
  457. package/dist/send-G2BlBsxu-G2BlBsxu.js +0 -23
  458. package/dist/send-G2BlBsxu-G2BlBsxu.js.map +0 -1
  459. package/dist/server-rack-workflow-CBhKbyGY-CBhKbyGY.js +0 -23
  460. package/dist/server-rack-workflow-CBhKbyGY-CBhKbyGY.js.map +0 -1
  461. package/dist/service-9hAt2V0T-9hAt2V0T.js +0 -23
  462. package/dist/service-9hAt2V0T-9hAt2V0T.js.map +0 -1
  463. package/dist/settings-BLMTAq-1-BLMTAq-1.js +0 -26
  464. package/dist/settings-BLMTAq-1-BLMTAq-1.js.map +0 -1
  465. package/dist/share-BIrWLTtn-BIrWLTtn.js +0 -22
  466. package/dist/share-BIrWLTtn-BIrWLTtn.js.map +0 -1
  467. package/dist/shortcuts-fbNZWoSf-fbNZWoSf.js +0 -22
  468. package/dist/shortcuts-fbNZWoSf-fbNZWoSf.js.map +0 -1
  469. package/dist/sort-ascending-DNyV4Drg-DNyV4Drg.js +0 -23
  470. package/dist/sort-ascending-DNyV4Drg-DNyV4Drg.js.map +0 -1
  471. package/dist/sort-descending-BdIGPn-9-BdIGPn-9.js +0 -23
  472. package/dist/sort-descending-BdIGPn-9-BdIGPn-9.js.map +0 -1
  473. package/dist/space-fMpb-o4--fMpb-o4-.js +0 -23
  474. package/dist/space-fMpb-o4--fMpb-o4-.js.map +0 -1
  475. package/dist/space-local-D4kTqwrB-D4kTqwrB.js +0 -23
  476. package/dist/space-local-D4kTqwrB-D4kTqwrB.js.map +0 -1
  477. package/dist/space-private-D06CTwvE-D06CTwvE.js +0 -23
  478. package/dist/space-private-D06CTwvE-D06CTwvE.js.map +0 -1
  479. package/dist/stepwise-execution-C1mAO3z_-C1mAO3z_.js +0 -23
  480. package/dist/stepwise-execution-C1mAO3z_-C1mAO3z_.js.map +0 -1
  481. package/dist/stop-Cgmy2iPY-Cgmy2iPY.js +0 -22
  482. package/dist/stop-Cgmy2iPY-Cgmy2iPY.js.map +0 -1
  483. package/dist/strikethrough-DG4Ejxqk-DG4Ejxqk.js +0 -23
  484. package/dist/strikethrough-DG4Ejxqk-DG4Ejxqk.js.map +0 -1
  485. package/dist/string-datatype-CHI_qvxE-CHI_qvxE.js +0 -23
  486. package/dist/string-datatype-CHI_qvxE-CHI_qvxE.js.map +0 -1
  487. package/dist/string-vector-datatype-DhgtZI8f-DhgtZI8f.js +0 -23
  488. package/dist/string-vector-datatype-DhgtZI8f-DhgtZI8f.js.map +0 -1
  489. package/dist/subgraph-datatype-BHBSS1-Z-BHBSS1-Z.js +0 -23
  490. package/dist/subgraph-datatype-BHBSS1-Z-BHBSS1-Z.js.map +0 -1
  491. package/dist/table-Pffb9Oig-Pffb9Oig.js +0 -23
  492. package/dist/table-Pffb9Oig-Pffb9Oig.js.map +0 -1
  493. package/dist/table-statistics-y-P6EXGX-y-P6EXGX.js +0 -23
  494. package/dist/table-statistics-y-P6EXGX-y-P6EXGX.js.map +0 -1
  495. package/dist/tag-_fZiuJaC-_fZiuJaC.js +0 -27
  496. package/dist/tag-_fZiuJaC-_fZiuJaC.js.map +0 -1
  497. package/dist/team-CtZLwOou-CtZLwOou.js +0 -22
  498. package/dist/team-CtZLwOou-CtZLwOou.js.map +0 -1
  499. package/dist/template-gallery-BtXi4GHd-BtXi4GHd.js +0 -23
  500. package/dist/template-gallery-BtXi4GHd-BtXi4GHd.js.map +0 -1
  501. package/dist/term-datatype-CRrmVXQx-CRrmVXQx.js +0 -23
  502. package/dist/term-datatype-CRrmVXQx-CRrmVXQx.js.map +0 -1
  503. package/dist/test-tube-BsB8mbus-BsB8mbus.js +0 -23
  504. package/dist/test-tube-BsB8mbus-BsB8mbus.js.map +0 -1
  505. package/dist/text-DFu-L62Z-DFu-L62Z.js +0 -23
  506. package/dist/text-DFu-L62Z-DFu-L62Z.js.map +0 -1
  507. package/dist/textstyles-j0GQtKYE-j0GQtKYE.js +0 -22
  508. package/dist/textstyles-j0GQtKYE-j0GQtKYE.js.map +0 -1
  509. package/dist/thumbs-down-CiozrdIW-CiozrdIW.js +0 -22
  510. package/dist/thumbs-down-CiozrdIW-CiozrdIW.js.map +0 -1
  511. package/dist/thumbs-up-E4uRtjhi-E4uRtjhi.js +0 -22
  512. package/dist/thumbs-up-E4uRtjhi-E4uRtjhi.js.map +0 -1
  513. package/dist/time-DU80J5X8-DU80J5X8.js +0 -23
  514. package/dist/time-DU80J5X8-DU80J5X8.js.map +0 -1
  515. package/dist/time-datatype-CBnmuYLa-CBnmuYLa.js +0 -23
  516. package/dist/time-datatype-CBnmuYLa-CBnmuYLa.js.map +0 -1
  517. package/dist/to-bottom-B8wat1Dk-B8wat1Dk.js +0 -23
  518. package/dist/to-bottom-B8wat1Dk-B8wat1Dk.js.map +0 -1
  519. package/dist/to-top-CCAfU4xz-CCAfU4xz.js +0 -23
  520. package/dist/to-top-CCAfU4xz-CCAfU4xz.js.map +0 -1
  521. package/dist/tool-datatype-l6cMJHHd-l6cMJHHd.js +0 -23
  522. package/dist/tool-datatype-l6cMJHHd-l6cMJHHd.js.map +0 -1
  523. package/dist/trash-Dq5FHwNO-Dq5FHwNO.js +0 -23
  524. package/dist/trash-Dq5FHwNO-Dq5FHwNO.js.map +0 -1
  525. package/dist/trigger-Qns9VYQG-Qns9VYQG.js +0 -22
  526. package/dist/trigger-Qns9VYQG-Qns9VYQG.js.map +0 -1
  527. package/dist/underline-CDZcVZHB-CDZcVZHB.js +0 -23
  528. package/dist/underline-CDZcVZHB-CDZcVZHB.js.map +0 -1
  529. package/dist/undo-CnghWcXK-CnghWcXK.js +0 -23
  530. package/dist/undo-CnghWcXK-CnghWcXK.js.map +0 -1
  531. package/dist/unknown-datatype-BEY7muOy-BEY7muOy.js +0 -23
  532. package/dist/unknown-datatype-BEY7muOy-BEY7muOy.js.map +0 -1
  533. package/dist/unlink-CL0kTZX2-CL0kTZX2.js +0 -23
  534. package/dist/unlink-CL0kTZX2-CL0kTZX2.js.map +0 -1
  535. package/dist/update-file-5lTfm97G-5lTfm97G.js +0 -23
  536. package/dist/update-file-5lTfm97G-5lTfm97G.js.map +0 -1
  537. package/dist/uri-datatype-CJhmCZiq-CJhmCZiq.js +0 -23
  538. package/dist/uri-datatype-CJhmCZiq-CJhmCZiq.js.map +0 -1
  539. package/dist/usage-827uIQyn-827uIQyn.js +0 -23
  540. package/dist/usage-827uIQyn-827uIQyn.js.map +0 -1
  541. package/dist/user-DTq28OjK-DTq28OjK.js +0 -23
  542. package/dist/user-DTq28OjK-DTq28OjK.js.map +0 -1
  543. package/dist/validate-CD0_eO0m-CD0_eO0m.js +0 -23
  544. package/dist/validate-CD0_eO0m-CD0_eO0m.js.map +0 -1
  545. package/dist/variable-boolean-BzyG4BGV-BzyG4BGV.js +0 -31
  546. package/dist/variable-boolean-BzyG4BGV-BzyG4BGV.js.map +0 -1
  547. package/dist/variable-collection-boolean-nWAd6a7R-nWAd6a7R.js +0 -31
  548. package/dist/variable-collection-boolean-nWAd6a7R-nWAd6a7R.js.map +0 -1
  549. package/dist/variable-collection-double-h0sMrPKC-h0sMrPKC.js +0 -31
  550. package/dist/variable-collection-double-h0sMrPKC-h0sMrPKC.js.map +0 -1
  551. package/dist/variable-collection-integer-BZEs4wch-BZEs4wch.js +0 -31
  552. package/dist/variable-collection-integer-BZEs4wch-BZEs4wch.js.map +0 -1
  553. package/dist/variable-collection-string-BPIuxyHK-BPIuxyHK.js +0 -31
  554. package/dist/variable-collection-string-BPIuxyHK-BPIuxyHK.js.map +0 -1
  555. package/dist/variable-conda-environment-DZ5kqmc5-DZ5kqmc5.js +0 -31
  556. package/dist/variable-conda-environment-DZ5kqmc5-DZ5kqmc5.js.map +0 -1
  557. package/dist/variable-credential-D32ztDmY-D32ztDmY.js +0 -31
  558. package/dist/variable-credential-D32ztDmY-D32ztDmY.js.map +0 -1
  559. package/dist/variable-integer-CtoE3pq3-CtoE3pq3.js +0 -31
  560. package/dist/variable-integer-CtoE3pq3-CtoE3pq3.js.map +0 -1
  561. package/dist/variable-number-double-D5CGjCM8-D5CGjCM8.js +0 -31
  562. package/dist/variable-number-double-D5CGjCM8-D5CGjCM8.js.map +0 -1
  563. package/dist/variable-path-Dyuv7RmO-Dyuv7RmO.js +0 -31
  564. package/dist/variable-path-Dyuv7RmO-Dyuv7RmO.js.map +0 -1
  565. package/dist/variable-string-JWu8Gafe-JWu8Gafe.js +0 -31
  566. package/dist/variable-string-JWu8Gafe-JWu8Gafe.js.map +0 -1
  567. package/dist/variable-unknown-DYSdcnPs-DYSdcnPs.js +0 -31
  568. package/dist/variable-unknown-DYSdcnPs-DYSdcnPs.js.map +0 -1
  569. package/dist/version-CSTTEeam-CSTTEeam.js +0 -23
  570. package/dist/version-CSTTEeam-CSTTEeam.js.map +0 -1
  571. package/dist/view-cards-DS0Cpf95-DS0Cpf95.js +0 -22
  572. package/dist/view-cards-DS0Cpf95-DS0Cpf95.js.map +0 -1
  573. package/dist/warning-CJC1Oij--CJC1Oij-.js +0 -23
  574. package/dist/warning-CJC1Oij--CJC1Oij-.js.map +0 -1
  575. package/dist/workflow-n50o8jCH-n50o8jCH.js +0 -22
  576. package/dist/workflow-n50o8jCH-n50o8jCH.js.map +0 -1
  577. package/dist/x-close-D-oEO9N9-D-oEO9N9.js +0 -23
  578. package/dist/x-close-D-oEO9N9-D-oEO9N9.js.map +0 -1
  579. package/dist/xml-datatype-BlUTXDpw-BlUTXDpw.js +0 -23
  580. package/dist/xml-datatype-BlUTXDpw-BlUTXDpw.js.map +0 -1
@@ -0,0 +1,1258 @@
1
+ import { computed, defineComponent, useModel, useId, openBlock, createElementBlock, normalizeClass, createElementVNode, createTextVNode, toDisplayString, createVNode, unref, normalizeStyle, createBlock, createCommentVNode, Transition, withCtx, withDirectives, renderSlot, vShow, mergeModels, Fragment, renderList, watch, ref, reactive, readonly } from 'vue';
2
+ import { KdsButton, KdsIcon, KdsBadge, KdsProgressBar, KdsLoadingSkeleton } from '@knime/kds-components';
3
+ import { _ as _export_sfc } from './_plugin-vue_export-helper-pcqpp-6-.js';
4
+ import { f as formatFileSize } from './format-ra_vlnN7.js';
5
+ import { rfcErrors } from './rfcErrors.js';
6
+ import { ofetch, FetchError } from 'ofetch';
7
+
8
+ import './dataTransfer.css';const useIconFlipper = (options) => {
9
+ const iconFlipStyles = computed(() => {
10
+ const declaration = {
11
+ transition: "transform 0.2s linear",
12
+ transform: "scaleY(1)"
13
+ };
14
+ if (options.initialRotation) {
15
+ declaration.rotate = `${options.initialRotation}`;
16
+ }
17
+ const transform = options.active.value ? "scaleY(-1)" : void 0;
18
+ return { ...declaration, transform };
19
+ });
20
+ return { iconFlipStyles };
21
+ };
22
+
23
+ const _hoisted_1$4 = { class: "title-bar" };
24
+ const _hoisted_2$2 = { class: "actions" };
25
+ const _hoisted_3$1 = ["id"];
26
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
27
+ __name: "CollapsiblePanel",
28
+ props: /* @__PURE__ */ mergeModels({
29
+ title: {},
30
+ canBeDismissed: { type: Boolean, default: false }
31
+ }, {
32
+ "modelValue": { type: Boolean, ...{ default: true } },
33
+ "modelModifiers": {}
34
+ }),
35
+ emits: /* @__PURE__ */ mergeModels(["close"], ["update:modelValue"]),
36
+ setup(__props, { emit: __emit }) {
37
+ const emit = __emit;
38
+ const modelValue = useModel(__props, "modelValue");
39
+ const { iconFlipStyles } = useIconFlipper({
40
+ active: computed(() => modelValue.value),
41
+ initialRotation: "180deg"
42
+ });
43
+ const panelContentId = useId();
44
+ return (_ctx, _cache) => {
45
+ return openBlock(), createElementBlock("div", {
46
+ class: normalizeClass(["collapsible-panel", { collapsed: !modelValue.value }])
47
+ }, [
48
+ createElementVNode("div", _hoisted_1$4, [
49
+ createTextVNode(toDisplayString(__props.title) + " ", 1),
50
+ createElementVNode("div", _hoisted_2$2, [
51
+ createVNode(unref(KdsButton), {
52
+ size: "small",
53
+ variant: "transparent",
54
+ "leading-icon": "chevron-up",
55
+ "aria-expanded": modelValue.value,
56
+ "aria-controls": unref(panelContentId),
57
+ ariaLabel: modelValue.value ? "Collapse" : "Expand",
58
+ style: normalizeStyle(unref(iconFlipStyles)),
59
+ onClick: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value)
60
+ }, null, 8, ["aria-expanded", "aria-controls", "ariaLabel", "style"]),
61
+ __props.canBeDismissed ? (openBlock(), createBlock(unref(KdsButton), {
62
+ key: 0,
63
+ size: "small",
64
+ variant: "transparent",
65
+ ariaLabel: "Close",
66
+ "leading-icon": "x-close",
67
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("close"))
68
+ })) : createCommentVNode("", true)
69
+ ])
70
+ ]),
71
+ createVNode(Transition, { name: "expand" }, {
72
+ default: withCtx(() => [
73
+ withDirectives(createElementVNode("div", {
74
+ id: unref(panelContentId),
75
+ class: "panel-content"
76
+ }, [
77
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
78
+ ], 8, _hoisted_3$1), [
79
+ [vShow, modelValue.value]
80
+ ])
81
+ ]),
82
+ _: 3
83
+ })
84
+ ], 2);
85
+ };
86
+ }
87
+ });
88
+
89
+ const CollapsiblePanel = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-3fdfcc1c"]]);
90
+
91
+ const _hoisted_1$3 = { class: "progress-wrapper" };
92
+ const _hoisted_2$1 = { class: "item-info" };
93
+ const _hoisted_3 = { class: "item-name" };
94
+ const _hoisted_4 = ["title"];
95
+ const _hoisted_5 = {
96
+ key: 0,
97
+ class: "subtitle"
98
+ };
99
+ const _hoisted_6 = { class: "item-action" };
100
+ const _hoisted_7 = {
101
+ key: 0,
102
+ class: "progress"
103
+ };
104
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
105
+ __name: "ProgressItem",
106
+ props: {
107
+ id: {},
108
+ title: {},
109
+ icon: {},
110
+ actions: {},
111
+ subtitle: {},
112
+ progress: {},
113
+ badge: {}
114
+ },
115
+ setup(__props) {
116
+ return (_ctx, _cache) => {
117
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [
118
+ createElementVNode("div", {
119
+ class: normalizeClass(["progress-item", { padded: __props.progress === void 0 }])
120
+ }, [
121
+ createElementVNode("div", _hoisted_2$1, [
122
+ createVNode(unref(KdsIcon), { name: __props.icon }, null, 8, ["name"]),
123
+ createElementVNode("div", _hoisted_3, [
124
+ createElementVNode("div", {
125
+ class: "title",
126
+ title: __props.title
127
+ }, toDisplayString(__props.title), 9, _hoisted_4),
128
+ __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
129
+ ])
130
+ ]),
131
+ createElementVNode("div", _hoisted_6, [
132
+ __props.badge ? (openBlock(), createBlock(unref(KdsBadge), {
133
+ key: 0,
134
+ variant: __props.badge.variant,
135
+ label: __props.badge.text,
136
+ "leading-icon": __props.badge.icon,
137
+ size: "xxsmall"
138
+ }, null, 8, ["variant", "label", "leading-icon"])) : createCommentVNode("", true),
139
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions.slice(0, 2), (action) => {
140
+ return openBlock(), createBlock(unref(KdsButton), {
141
+ key: action.id,
142
+ "leading-icon": action.icon,
143
+ ariaLabel: action.label,
144
+ variant: "transparent",
145
+ onClick: action.handler
146
+ }, null, 8, ["leading-icon", "ariaLabel", "onClick"]);
147
+ }), 128))
148
+ ])
149
+ ], 2),
150
+ typeof __props.progress === "number" ? (openBlock(), createElementBlock("div", _hoisted_7, [
151
+ createVNode(unref(KdsProgressBar), {
152
+ percentage: __props.progress,
153
+ size: "medium"
154
+ }, null, 8, ["percentage"])
155
+ ])) : createCommentVNode("", true)
156
+ ]);
157
+ };
158
+ }
159
+ });
160
+
161
+ const ProgressItem = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-80e5d197"]]);
162
+
163
+ const _sfc_main$4 = { };
164
+
165
+ const _hoisted_1$2 = { class: "progress-list" };
166
+
167
+ function _sfc_render(_ctx, _cache) {
168
+ return (openBlock(), createElementBlock("div", _hoisted_1$2, [
169
+ renderSlot(_ctx.$slots, "default", {}, undefined, true)
170
+ ]))
171
+ }
172
+ const ProgressList = /*#__PURE__*/_export_sfc(_sfc_main$4, [['render',_sfc_render],['__scopeId',"data-v-66f55049"]]);
173
+
174
+ class AbortError extends Error {
175
+ }
176
+ const createAbortablePromise = () => {
177
+ const abortController = new AbortController();
178
+ const runAbortablePromise = (request) => {
179
+ return new Promise((resolve, reject) => {
180
+ const abortListener = ({ target }) => {
181
+ abortController.signal.removeEventListener("abort", abortListener);
182
+ const reason = target.reason;
183
+ reject(reason instanceof AbortError ? reason : new AbortError(reason));
184
+ };
185
+ request().then(resolve).catch((error) => {
186
+ if (error instanceof AbortError) {
187
+ return;
188
+ }
189
+ reject(error);
190
+ });
191
+ abortController.signal.addEventListener("abort", abortListener);
192
+ });
193
+ };
194
+ return { abortController, runAbortablePromise };
195
+ };
196
+
197
+ function sleep(ms) {
198
+ return new Promise((resolve) => setTimeout(resolve, ms));
199
+ }
200
+
201
+ const DEFAULT_RETRY_DELAY_MS$2 = 0;
202
+ const DEFAULT_RETRY_COUNT$1 = 5;
203
+ async function retryPromise({
204
+ fn,
205
+ retryCount = DEFAULT_RETRY_COUNT$1,
206
+ retryDelayMS = DEFAULT_RETRY_DELAY_MS$2,
207
+ excludeError
208
+ }) {
209
+ try {
210
+ return await fn();
211
+ } catch (error) {
212
+ if (excludeError?.(error)) {
213
+ throw error;
214
+ }
215
+ if (retryCount > 0) {
216
+ await sleep(retryDelayMS);
217
+ return await retryPromise({
218
+ fn,
219
+ retryCount: retryCount - 1,
220
+ retryDelayMS,
221
+ excludeError
222
+ });
223
+ }
224
+ throw error;
225
+ }
226
+ }
227
+
228
+ const getFileExtension = (nameOrPath) => {
229
+ const basename = nameOrPath.split(/[\\/]/).pop() ?? "";
230
+ const parts = basename.split(".");
231
+ if (basename === "" || parts.length === 1) {
232
+ return "";
233
+ }
234
+ return parts.at(-1) ?? "";
235
+ };
236
+ const KNAR = Object.freeze({
237
+ extension: "knar",
238
+ mimeType: "application/vnd.knime.workflow-group+zip",
239
+ matches(file) {
240
+ const extension = getFileExtension(file.name);
241
+ return extension === this.extension;
242
+ }
243
+ });
244
+ const KNWF = Object.freeze({
245
+ extension: "knwf",
246
+ mimeType: "application/vnd.knime.workflow+zip",
247
+ matches(file) {
248
+ const extension = getFileExtension(file.name);
249
+ return extension === this.extension;
250
+ },
251
+ /**
252
+ * Gets the name of a .knwf file without the extension. If the file is not
253
+ * matched as a .knwf file then this function will return the default value,
254
+ * which is empty string ("") if param is not provided
255
+ */
256
+ getNameOrDefault(file, defaultValue = "") {
257
+ if (!this.matches(file)) {
258
+ return defaultValue;
259
+ }
260
+ return file.name.replace(`.${this.extension}`, "");
261
+ }
262
+ });
263
+ const knimeFileFormats = { KNWF };
264
+ const getFileMimeType = (file) => {
265
+ const DEFAULT_MIMETYPE = "application/octet-stream";
266
+ const extension = getFileExtension(file.name);
267
+ if (!extension) {
268
+ return DEFAULT_MIMETYPE;
269
+ }
270
+ if (KNWF.matches(file)) {
271
+ return KNWF.mimeType;
272
+ }
273
+ if (KNAR.matches(file)) {
274
+ return KNAR.mimeType;
275
+ }
276
+ if (!file.type) {
277
+ return DEFAULT_MIMETYPE;
278
+ }
279
+ return file.type;
280
+ };
281
+
282
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
283
+ __name: "UploadProgressPanelItem",
284
+ props: {
285
+ item: {},
286
+ allowCancel: { type: Boolean },
287
+ allowRemove: { type: Boolean }
288
+ },
289
+ emits: ["remove", "cancel"],
290
+ setup(__props, { emit: __emit }) {
291
+ const props = __props;
292
+ const emit = __emit;
293
+ const hasProgress = (item) => {
294
+ return item.status === "inprogress" || item.status === "complete";
295
+ };
296
+ const totalFormatted = computed(() => {
297
+ return formatFileSize(props.item.size);
298
+ });
299
+ const progressedFormatted = computed(() => {
300
+ if (hasProgress(props.item)) {
301
+ const sizePercentage = props.item.size / 100 * (props.item.progress ?? 0);
302
+ return formatFileSize(sizePercentage);
303
+ }
304
+ return 0;
305
+ });
306
+ const subtitle = computed(
307
+ () => props.item.status === "inprogress" ? `${progressedFormatted.value} of ${totalFormatted.value}` : `${totalFormatted.value}`
308
+ );
309
+ const statusMapper = {
310
+ inprogress: ["Uploading", "info", "reload"],
311
+ failed: ["Failed", "error", "circle-error"],
312
+ complete: ["Uploaded", "success", "circle-success"],
313
+ cancelled: ["Cancelled", "error", "circle-error"],
314
+ processing: ["Processing", "info", "reload"]
315
+ };
316
+ const itemIcon = computed(() => {
317
+ const extension = getFileExtension(props.item.name);
318
+ return extension === knimeFileFormats.KNWF.extension ? "workflow" : "file";
319
+ });
320
+ const badge = computed(() => {
321
+ if (!props.item.status) {
322
+ return void 0;
323
+ }
324
+ const [text, variant, icon] = statusMapper[props.item.status];
325
+ return { text, variant, icon };
326
+ });
327
+ const shouldShowCancelAction = computed(
328
+ () => props.allowCancel && props.item.status === "inprogress"
329
+ );
330
+ const shouldShowRemoveAction = computed(() => {
331
+ const allowedRemoveStatuses = [
332
+ "complete",
333
+ "failed",
334
+ "cancelled"
335
+ ];
336
+ const showRemove = props.allowRemove && props.item.status && allowedRemoveStatuses.includes(props.item.status);
337
+ return showRemove;
338
+ });
339
+ const actions = computed(() => {
340
+ const actions2 = [];
341
+ if (shouldShowCancelAction.value) {
342
+ actions2.push({
343
+ id: "cancel",
344
+ icon: "x-close",
345
+ label: "Cancel",
346
+ handler: () => emit("cancel")
347
+ });
348
+ }
349
+ if (shouldShowRemoveAction.value) {
350
+ actions2.push({
351
+ id: "remove",
352
+ icon: "trash",
353
+ label: "Remove",
354
+ handler: () => emit("remove")
355
+ });
356
+ }
357
+ return actions2;
358
+ });
359
+ return (_ctx, _cache) => {
360
+ return openBlock(), createBlock(unref(ProgressItem), {
361
+ id: __props.item.id,
362
+ title: __props.item.name,
363
+ subtitle: subtitle.value,
364
+ icon: itemIcon.value,
365
+ progress: hasProgress(__props.item) ? __props.item.progress : void 0,
366
+ badge: badge.value,
367
+ actions: actions.value
368
+ }, null, 8, ["id", "title", "subtitle", "icon", "progress", "badge", "actions"]);
369
+ };
370
+ }
371
+ });
372
+
373
+ const _hoisted_1$1 = { class: "upload-panel-content" };
374
+ const _hoisted_2 = { class: "skeleton-text-content" };
375
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
376
+ __name: "UploadProgressPanel",
377
+ props: /* @__PURE__ */ mergeModels({
378
+ items: {},
379
+ allowCancel: { type: Boolean, default: true },
380
+ allowRemove: { type: Boolean, default: true },
381
+ placeholderItems: { default: 0 }
382
+ }, {
383
+ "expanded": { type: Boolean, ...{ default: true } },
384
+ "expandedModifiers": {}
385
+ }),
386
+ emits: /* @__PURE__ */ mergeModels(["remove", "cancel", "close"], ["update:expanded"]),
387
+ setup(__props, { emit: __emit }) {
388
+ const emit = __emit;
389
+ const expanded = useModel(__props, "expanded");
390
+ const totalItems = computed(() => __props.items.length);
391
+ const uploadedItems = computed(
392
+ () => __props.items.filter(({ status }) => status === "complete").length
393
+ );
394
+ const title = computed(() => {
395
+ const suffix = `file${totalItems.value > 1 ? "s" : ""}`;
396
+ return `Uploaded ${uploadedItems.value} of ${totalItems.value} ${suffix}`;
397
+ });
398
+ const hasSomeItemInProgress = computed(
399
+ () => __props.items.some(
400
+ ({ status }) => status === "inprogress" || status === "processing"
401
+ ) || __props.placeholderItems > 0
402
+ );
403
+ watch(
404
+ () => __props.items,
405
+ (newItems, prevItems) => {
406
+ if (prevItems?.length > 0 && newItems.length === 0) {
407
+ emit("close");
408
+ }
409
+ }
410
+ );
411
+ return (_ctx, _cache) => {
412
+ return openBlock(), createBlock(unref(CollapsiblePanel), {
413
+ modelValue: expanded.value,
414
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => expanded.value = $event),
415
+ title: title.value,
416
+ class: "upload-panel",
417
+ "can-be-dismissed": !hasSomeItemInProgress.value,
418
+ onClose: _cache[1] || (_cache[1] = ($event) => emit("close"))
419
+ }, {
420
+ default: withCtx(() => [
421
+ createElementVNode("div", _hoisted_1$1, [
422
+ createVNode(unref(ProgressList), null, {
423
+ default: withCtx(() => [
424
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
425
+ return openBlock(), createBlock(_sfc_main$3, {
426
+ key: item.id,
427
+ item,
428
+ "allow-cancel": __props.allowCancel,
429
+ "allow-remove": __props.allowRemove,
430
+ onRemove: ($event) => emit("remove", item),
431
+ onCancel: ($event) => emit("cancel", item)
432
+ }, null, 8, ["item", "allow-cancel", "allow-remove", "onRemove", "onCancel"]);
433
+ }), 128))
434
+ ]),
435
+ _: 1
436
+ }),
437
+ __props.placeholderItems > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.placeholderItems, (skeleton) => {
438
+ return openBlock(), createElementBlock("div", {
439
+ key: skeleton,
440
+ class: "skeleton-container"
441
+ }, [
442
+ createVNode(unref(KdsLoadingSkeleton), { variant: "icon-large" }),
443
+ createElementVNode("div", _hoisted_2, [
444
+ createVNode(unref(KdsLoadingSkeleton), { variant: "label" }),
445
+ createVNode(unref(KdsLoadingSkeleton), { variant: "text" })
446
+ ])
447
+ ]);
448
+ }), 128)) : createCommentVNode("", true)
449
+ ])
450
+ ]),
451
+ _: 1
452
+ }, 8, ["modelValue", "title", "can-be-dismissed"]);
453
+ };
454
+ }
455
+ });
456
+
457
+ const UploadProgressPanel = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-7d4c779e"]]);
458
+
459
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
460
+ __name: "DownloadProgressPanelItem",
461
+ props: {
462
+ item: {}
463
+ },
464
+ emits: ["remove", "cancel", "download"],
465
+ setup(__props, { emit: __emit }) {
466
+ const props = __props;
467
+ const emit = __emit;
468
+ const statusMapper = {
469
+ IN_PROGRESS: ["Zipping", "info", "reload"],
470
+ READY: ["Ready", "success", "circle-info"],
471
+ CANCELLED: ["Cancelled", "error", "circle-error"],
472
+ FAILED: ["Failed", "error", "circle-error"]
473
+ };
474
+ const badge = computed(() => {
475
+ const [text, variant, icon] = statusMapper[props.item.status];
476
+ return {
477
+ text,
478
+ variant,
479
+ icon
480
+ };
481
+ });
482
+ const isCancellable = computed(() => props.item.status === "IN_PROGRESS");
483
+ const isReady = computed(() => props.item.status === "READY");
484
+ const isRemovable = computed(
485
+ () => props.item.status === "CANCELLED" || props.item.status === "FAILED" || props.item.status === "READY"
486
+ );
487
+ const actions = computed(() => {
488
+ const actions2 = [];
489
+ if (isCancellable.value) {
490
+ actions2.push({
491
+ id: "cancel",
492
+ icon: "x-close",
493
+ label: "Cancel",
494
+ handler: () => emit("cancel")
495
+ });
496
+ }
497
+ if (isReady.value) {
498
+ actions2.push({
499
+ id: "download",
500
+ icon: "cloud-download",
501
+ label: "Download again",
502
+ handler: () => emit("download")
503
+ });
504
+ }
505
+ if (isRemovable.value) {
506
+ actions2.push({
507
+ id: "remove",
508
+ icon: "trash",
509
+ label: "Remove",
510
+ handler: () => emit("remove")
511
+ });
512
+ }
513
+ return actions2;
514
+ });
515
+ return (_ctx, _cache) => {
516
+ return openBlock(), createBlock(unref(ProgressItem), {
517
+ id: __props.item.downloadId,
518
+ icon: "file",
519
+ title: __props.item.name,
520
+ badge: badge.value,
521
+ actions: actions.value
522
+ }, null, 8, ["id", "title", "badge", "actions"]);
523
+ };
524
+ }
525
+ });
526
+
527
+ const _hoisted_1 = { class: "download-panel-content" };
528
+ const _sfc_main = /* @__PURE__ */ defineComponent({
529
+ __name: "DownloadProgressPanel",
530
+ props: /* @__PURE__ */ mergeModels({
531
+ items: {}
532
+ }, {
533
+ "expanded": { type: Boolean, ...{ default: true } },
534
+ "expandedModifiers": {}
535
+ }),
536
+ emits: /* @__PURE__ */ mergeModels(["remove", "cancel", "download", "close"], ["update:expanded"]),
537
+ setup(__props, { emit: __emit }) {
538
+ const props = __props;
539
+ const emit = __emit;
540
+ const expanded = useModel(__props, "expanded");
541
+ const totalItems = computed(() => props.items.length);
542
+ const totalDownloadedItems = computed(
543
+ () => props.items.filter(({ status }) => status === "READY").length
544
+ );
545
+ const title = computed(() => {
546
+ const suffix = `file${totalItems.value > 1 ? "s" : ""}`;
547
+ return `Downloaded ${totalDownloadedItems.value} of ${totalItems.value} ${suffix}`;
548
+ });
549
+ const hasItemsInProgress = computed(
550
+ () => props.items.some(({ status }) => status === "IN_PROGRESS")
551
+ );
552
+ watch(
553
+ () => props.items?.length,
554
+ (newValue, oldValue) => {
555
+ if (oldValue > 0 && !newValue) {
556
+ emit("close");
557
+ }
558
+ }
559
+ );
560
+ return (_ctx, _cache) => {
561
+ return openBlock(), createBlock(unref(CollapsiblePanel), {
562
+ modelValue: expanded.value,
563
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => expanded.value = $event),
564
+ title: title.value,
565
+ class: "download-panel",
566
+ "can-be-dismissed": !hasItemsInProgress.value,
567
+ onClose: _cache[1] || (_cache[1] = ($event) => emit("close"))
568
+ }, {
569
+ default: withCtx(() => [
570
+ createElementVNode("div", _hoisted_1, [
571
+ createVNode(unref(ProgressList), null, {
572
+ default: withCtx(() => [
573
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
574
+ return openBlock(), createBlock(_sfc_main$1, {
575
+ key: item.downloadId,
576
+ item,
577
+ onRemove: ($event) => emit("remove", item),
578
+ onCancel: ($event) => emit("cancel", item),
579
+ onDownload: ($event) => emit("download", item)
580
+ }, null, 8, ["item", "onRemove", "onCancel", "onDownload"]);
581
+ }), 128))
582
+ ]),
583
+ _: 1
584
+ })
585
+ ])
586
+ ]),
587
+ _: 1
588
+ }, 8, ["modelValue", "title", "can-be-dismissed"]);
589
+ };
590
+ }
591
+ });
592
+
593
+ const DownloadProgressPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f5f774fd"]]);
594
+
595
+ const API_BASE_URL = "/_/api";
596
+
597
+ const defaultConfig = {
598
+ baseURL: API_BASE_URL,
599
+ headers: {
600
+ "Content-Type": "application/json",
601
+ // see: https://knime-com.atlassian.net/wiki/spaces/SPECS/pages/4126769212/API+Errors#Client-Request-Headers
602
+ Accept: "application/json; application/problem+json"
603
+ }
604
+ };
605
+ const createHttpClient = () => {
606
+ return ofetch.create(defaultConfig);
607
+ };
608
+
609
+ const CHUNK_SIZE = 50 * 1024 * 1024;
610
+ const DEFAULT_RETRY_COUNT = 5;
611
+ const DEFAULT_RETRY_DELAY_MS$1 = 50;
612
+ const uploadChunkWithProgress = (params) => {
613
+ const { method, url, chunk, chunkIndex, onProgress, abortSignal } = params;
614
+ const OK = 200;
615
+ const CREATED = 201;
616
+ return new Promise((resolve, reject) => {
617
+ const xhr = new XMLHttpRequest();
618
+ xhr.open(method, url, true);
619
+ abortSignal.addEventListener("abort", () => xhr.abort());
620
+ xhr.upload.onprogress = (event) => {
621
+ if (event.lengthComputable) {
622
+ onProgress(event.loaded);
623
+ }
624
+ };
625
+ xhr.onload = () => {
626
+ if (xhr.status === OK || xhr.status === CREATED) {
627
+ const etag = xhr.getResponseHeader("ETag");
628
+ resolve({ partId: etag?.replace(/^(?:W\/)?"|"$/g, "") ?? "" });
629
+ } else {
630
+ consola.error("Failed or unexpected XHR response", {
631
+ xhrStatus: xhr.status,
632
+ xhrResponse: xhr.response,
633
+ chunkIndex
634
+ });
635
+ reject(new Error("Failed to upload file"));
636
+ }
637
+ };
638
+ xhr.onerror = (event) => {
639
+ consola.error("Failed to upload chunk", {
640
+ xhrErrorEvent: event,
641
+ chunkIndex
642
+ });
643
+ reject(new Error("Failed to upload file"));
644
+ };
645
+ xhr.send(chunk);
646
+ });
647
+ };
648
+ const createUploadManager = (config) => {
649
+ const {
650
+ resolveFilePartUploadURL: getUploadFilePartUrl,
651
+ onFileUploadComplete,
652
+ onFileUploadFailed
653
+ } = config;
654
+ const uploadStateMap = /* @__PURE__ */ new Map();
655
+ const completedUploads = /* @__PURE__ */ new Set();
656
+ const cancelledUploads = /* @__PURE__ */ new Set();
657
+ const failedUploads = /* @__PURE__ */ new Set();
658
+ const assertState = (uploadId, state) => uploadStateMap.has(uploadId) && uploadStateMap.get(uploadId).state === state;
659
+ const getUploadState = (uploadId) => uploadStateMap.get(uploadId);
660
+ const setUploadState = (uploadId, state) => {
661
+ uploadStateMap.set(uploadId, {
662
+ ...uploadStateMap.get(uploadId),
663
+ ...state
664
+ });
665
+ };
666
+ const isFailed = (uploadId) => assertState(uploadId, "failed");
667
+ const isCancelled = (uploadId) => assertState(uploadId, "cancelled");
668
+ const getTotalFileParts = (file) => Math.ceil(file.size / CHUNK_SIZE);
669
+ const abortInFlightUpload = (uploadId, reason) => {
670
+ const currentState = uploadStateMap.get(uploadId);
671
+ if (!currentState) {
672
+ return;
673
+ }
674
+ currentState.abortController.abort(
675
+ new AbortError(
676
+ `Upload (${currentState.uploadId}) for file "${currentState.file.name}" aborted. Reason: "${reason}"`
677
+ )
678
+ );
679
+ };
680
+ const cancel = (uploadId) => {
681
+ if (!uploadStateMap.has(uploadId)) {
682
+ consola.error("cancel:: Invalid upload id");
683
+ return;
684
+ }
685
+ setUploadState(uploadId, { state: "cancelled" });
686
+ abortInFlightUpload(uploadId, "upload cancelled");
687
+ cancelledUploads.add(uploadId);
688
+ };
689
+ const setFailed = (uploadId, error) => {
690
+ if (!uploadStateMap.has(uploadId)) {
691
+ consola.error("failed:: Invalid upload id");
692
+ return;
693
+ }
694
+ setUploadState(uploadId, { state: "failed" });
695
+ onFileUploadFailed?.({ uploadId, error });
696
+ failedUploads.add(uploadId);
697
+ if (completedUploads.has(uploadId)) {
698
+ completedUploads.delete(uploadId);
699
+ }
700
+ };
701
+ const uploadFileFromChunkIndex = async (uploadId, file, initialChunkIndex = 0) => {
702
+ const totalChunks = getTotalFileParts(file);
703
+ const totalBytes = file.size;
704
+ const completedPartIds = {};
705
+ const { abortController, runAbortablePromise } = createAbortablePromise();
706
+ uploadStateMap.set(uploadId, {
707
+ uploadId,
708
+ file,
709
+ state: "inprogress",
710
+ uploadedByteCount: uploadStateMap.get(uploadId)?.uploadedByteCount ?? 0,
711
+ completedChunkCount: uploadStateMap.get(uploadId)?.completedChunkCount ?? 0,
712
+ abortController
713
+ });
714
+ let chunkIndex = initialChunkIndex;
715
+ let uploadedBytes = uploadStateMap.get(uploadId)?.uploadedByteCount;
716
+ while (chunkIndex < totalChunks) {
717
+ if (isCancelled(uploadId) || isFailed(uploadId)) {
718
+ break;
719
+ }
720
+ const start = chunkIndex * CHUNK_SIZE;
721
+ const end = Math.min(start + CHUNK_SIZE, file.size);
722
+ const chunk = file.slice(start, end);
723
+ try {
724
+ const { method, url } = await retryPromise({
725
+ fn: () => getUploadFilePartUrl(uploadId, chunkIndex + 1),
726
+ retryCount: DEFAULT_RETRY_COUNT,
727
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS$1
728
+ });
729
+ consola.trace("File part upload url resolved", { method, url });
730
+ const onChunkUploadProgress = (uploadedChunkBytes) => {
731
+ uploadedBytes = uploadedChunkBytes + start;
732
+ setUploadState(uploadId, { uploadedByteCount: uploadedBytes });
733
+ const progress = Math.round(uploadedBytes / totalBytes * 100);
734
+ config.onProgress?.(uploadId, progress);
735
+ };
736
+ const filePartResponse = await runAbortablePromise(
737
+ () => retryPromise({
738
+ fn: () => uploadChunkWithProgress({
739
+ method,
740
+ url,
741
+ chunk,
742
+ chunkIndex,
743
+ onProgress: onChunkUploadProgress,
744
+ abortSignal: abortController.signal
745
+ }),
746
+ retryCount: DEFAULT_RETRY_COUNT,
747
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS$1
748
+ })
749
+ );
750
+ consola.trace(
751
+ `${file.name}: Chunk ${chunkIndex + 1} of ${totalChunks} uploaded successfully`
752
+ );
753
+ completedPartIds[chunkIndex + 1] = filePartResponse.partId;
754
+ setUploadState(uploadId, {
755
+ completedChunkCount: uploadStateMap.get(uploadId).completedChunkCount + 1
756
+ });
757
+ } catch (error) {
758
+ if (error instanceof AbortError) {
759
+ consola.info("Aborted::", error);
760
+ return;
761
+ }
762
+ setFailed(
763
+ uploadId,
764
+ error instanceof Error ? error : new Error(error)
765
+ );
766
+ return;
767
+ }
768
+ chunkIndex++;
769
+ }
770
+ if (isCancelled(uploadId) || isFailed(uploadId)) {
771
+ return;
772
+ }
773
+ setUploadState(uploadId, {
774
+ completedChunkCount: totalChunks,
775
+ state: "complete"
776
+ });
777
+ completedUploads.add(uploadId);
778
+ onFileUploadComplete?.({ uploadId, filePartIds: completedPartIds });
779
+ };
780
+ const uploadFiles = (files) => {
781
+ const result = [];
782
+ for (const { uploadId, file } of files) {
783
+ result.push(uploadFileFromChunkIndex(uploadId, file));
784
+ }
785
+ return Promise.allSettled(result).then(() => {
786
+ const completed = [...completedUploads.values()];
787
+ const cancelled = [...cancelledUploads.values()];
788
+ const failed = [...failedUploads.values()];
789
+ [...completed, ...cancelled, ...failed].forEach(
790
+ (uploadId) => uploadStateMap.delete(uploadId)
791
+ );
792
+ completedUploads.clear();
793
+ cancelledUploads.clear();
794
+ failedUploads.clear();
795
+ return {
796
+ completed,
797
+ cancelled,
798
+ failed
799
+ };
800
+ });
801
+ };
802
+ return {
803
+ uploadFiles,
804
+ getUploadState,
805
+ isFailed,
806
+ isCancelled,
807
+ cancel,
808
+ setFailed
809
+ };
810
+ };
811
+
812
+ const useUploadManager = (options) => {
813
+ const uploadState = ref({});
814
+ const { uploadFiles, cancel, setFailed } = createUploadManager({
815
+ ...options,
816
+ onFileUploadComplete: (params) => {
817
+ const { parentId, name } = uploadState.value[params.uploadId];
818
+ uploadState.value[params.uploadId].status = "complete";
819
+ options.onFileUploadComplete?.({ ...params, parentId, name });
820
+ },
821
+ onFileUploadFailed: ({ uploadId, error }) => {
822
+ const { parentId } = uploadState.value[uploadId];
823
+ uploadState.value[uploadId] = {
824
+ ...uploadState.value[uploadId],
825
+ status: "failed",
826
+ failureDetails: error.message
827
+ };
828
+ options.onFileUploadFailed?.({ uploadId, error, parentId });
829
+ },
830
+ onProgress: (uploadId, progress) => {
831
+ if (uploadState.value[uploadId].status === "inprogress") {
832
+ uploadState.value[uploadId].progress = progress;
833
+ }
834
+ }
835
+ });
836
+ const start = async (parentId, uploadPayload) => {
837
+ try {
838
+ uploadPayload.forEach(({ uploadId, file }) => {
839
+ uploadState.value[uploadId] = {
840
+ id: uploadId,
841
+ name: file.name,
842
+ size: file.size,
843
+ progress: 0,
844
+ status: "inprogress",
845
+ parentId
846
+ };
847
+ });
848
+ await uploadFiles(uploadPayload);
849
+ } catch (error) {
850
+ consola.error("Error uploading files", error);
851
+ }
852
+ };
853
+ const canCancel = (uploadId) => uploadState.value[uploadId]?.status === "inprogress" || uploadState.value[uploadId]?.status === "failed";
854
+ const removeItem = (uploadId) => {
855
+ if (canCancel(uploadId)) {
856
+ cancel(uploadId);
857
+ }
858
+ delete uploadState.value[uploadId];
859
+ };
860
+ const resetState = () => {
861
+ uploadState.value = {};
862
+ };
863
+ const uploadItems = computed(() => Object.values(uploadState.value));
864
+ const hasPendingUploads = computed(
865
+ () => uploadItems.value.some(({ status }) => status === "inprogress")
866
+ );
867
+ const totalPendingUploads = computed(
868
+ () => uploadItems.value.filter(({ status }) => status === "inprogress").length
869
+ );
870
+ return {
871
+ uploadState,
872
+ hasPendingUploads,
873
+ totalPendingUploads,
874
+ start,
875
+ cancel: (uploadId) => {
876
+ cancel(uploadId);
877
+ uploadState.value[uploadId].status = "cancelled";
878
+ },
879
+ canCancel,
880
+ removeItem,
881
+ resetState,
882
+ setFailed: (uploadId, error) => {
883
+ uploadState.value[uploadId] = {
884
+ ...uploadState.value[uploadId],
885
+ status: "failed",
886
+ failureDetails: error.message
887
+ };
888
+ setFailed(uploadId, error);
889
+ }
890
+ };
891
+ };
892
+
893
+ const DEFAULT_MAX_UPLOAD_QUEUE_SIZE = 10;
894
+ const DEFAULT_UPLOAD_SIZE_LIMIT_BYTES = 5 * 1024 * 1024 * 1024;
895
+ const DEFAULT_RETRY_DELAY_MS = 50;
896
+ const getUploadSizeLimitBytes = () => DEFAULT_UPLOAD_SIZE_LIMIT_BYTES;
897
+ const useFileUpload = (options = {}) => {
898
+ const $ofetch = createHttpClient();
899
+ const prepareUpload = (parentId, files) => {
900
+ const fileDictionary = Object.fromEntries(
901
+ files.map((file) => {
902
+ const name = knimeFileFormats.KNWF.getNameOrDefault(file, file.name);
903
+ return [name, file];
904
+ })
905
+ );
906
+ const items = Object.fromEntries(
907
+ Object.entries(fileDictionary).map(([name, file]) => [
908
+ name,
909
+ {
910
+ itemContentType: getFileMimeType(file),
911
+ itemContentSize: file.size
912
+ }
913
+ ])
914
+ );
915
+ return $ofetch(`/repository/${parentId}/manifest`, {
916
+ method: "POST",
917
+ body: { items }
918
+ }).then(({ items: items2 }) => {
919
+ return Object.keys(items2).map((name) => {
920
+ const { uploadId } = items2[name];
921
+ const file = fileDictionary[name];
922
+ return { uploadId, file };
923
+ });
924
+ });
925
+ };
926
+ const resolveFilePartUploadURL = (uploadId, partNumber) => {
927
+ return $ofetch(
928
+ `/uploads/${uploadId}/parts/?partNumber=${partNumber}`,
929
+ { method: "POST" }
930
+ );
931
+ };
932
+ const completeUpload = (uploadId, partIds) => {
933
+ return $ofetch(`/uploads/${uploadId}`, {
934
+ method: "POST",
935
+ body: partIds
936
+ });
937
+ };
938
+ const cancelUpload = (uploadId) => {
939
+ return $ofetch(`/uploads/${uploadId}`, {
940
+ method: "DELETE"
941
+ });
942
+ };
943
+ const unprocessedUploads = reactive(/* @__PURE__ */ new Set());
944
+ const isKNWFFile = (file) => knimeFileFormats.KNWF.matches(file);
945
+ let useUploadManagerResult = null;
946
+ const setProcessingCompleted = ({ uploadId }) => {
947
+ unprocessedUploads.delete(uploadId);
948
+ };
949
+ const setProcessingFailed = ({
950
+ uploadId,
951
+ error
952
+ }) => {
953
+ unprocessedUploads.delete(uploadId);
954
+ useUploadManagerResult?.setFailed(
955
+ uploadId,
956
+ error ?? new Error("An error occurred when processing the file")
957
+ );
958
+ };
959
+ useUploadManagerResult = useUploadManager({
960
+ resolveFilePartUploadURL,
961
+ onFileUploadComplete: ({ uploadId, filePartIds, parentId, name }) => {
962
+ retryPromise({ fn: () => completeUpload(uploadId, filePartIds) }).then(() => {
963
+ options.onFileUploadComplete?.({
964
+ uploadId,
965
+ filePartIds,
966
+ parentId,
967
+ name
968
+ });
969
+ }).catch((error) => {
970
+ consola.error("Error attempting to complete upload", { error });
971
+ setProcessingFailed({ uploadId, error });
972
+ });
973
+ },
974
+ onFileUploadFailed: ({ uploadId, error, parentId }) => {
975
+ options?.onFileUploadFailed?.({ uploadId, error, parentId });
976
+ }
977
+ });
978
+ const getEnqueueableFiles = (files) => {
979
+ const { totalPendingUploads } = useUploadManagerResult;
980
+ const { maxUploadQueueSize = DEFAULT_MAX_UPLOAD_QUEUE_SIZE } = options;
981
+ if (files.length + totalPendingUploads.value > maxUploadQueueSize) {
982
+ options.onUploadQueueSizeExceeded?.(maxUploadQueueSize);
983
+ }
984
+ const effectiveQueueSize = Math.max(
985
+ 0,
986
+ maxUploadQueueSize - totalPendingUploads.value
987
+ );
988
+ return files.slice(0, effectiveQueueSize);
989
+ };
990
+ const { uploadState, ...uploadManagerResultRest } = useUploadManagerResult;
991
+ const uploadQueue = computed(() => {
992
+ return Object.values(uploadState.value).map((uploadItem) => {
993
+ if (uploadItem.status === "complete" && unprocessedUploads.has(uploadItem.id)) {
994
+ return {
995
+ id: uploadItem.id,
996
+ name: uploadItem.name,
997
+ parentId: uploadItem.parentId,
998
+ size: uploadItem.size,
999
+ status: "processing"
1000
+ };
1001
+ }
1002
+ return uploadItem;
1003
+ });
1004
+ });
1005
+ const prepareQueueSize = ref(0);
1006
+ return {
1007
+ ...uploadManagerResultRest,
1008
+ uploadQueue,
1009
+ unprocessedUploads: readonly(unprocessedUploads),
1010
+ setProcessingCompleted,
1011
+ setProcessingFailed,
1012
+ isPreparingUpload: computed(() => prepareQueueSize.value > 0),
1013
+ totalFilesBeingPrepared: computed(() => prepareQueueSize.value),
1014
+ start: async (parentId, files, options2 = {}) => {
1015
+ const { isFileWithProcessing = isKNWFFile } = options2;
1016
+ const enqueueableFiles = getEnqueueableFiles(files);
1017
+ const uploadSizeLimitBytes = getUploadSizeLimitBytes();
1018
+ const oversizedFiles = enqueueableFiles.filter(
1019
+ (file) => file.size > uploadSizeLimitBytes
1020
+ );
1021
+ if (oversizedFiles.length > 0) {
1022
+ throw new rfcErrors.RFCError({
1023
+ title: "Upload size limit exceeded",
1024
+ status: 413,
1025
+ details: oversizedFiles.map(
1026
+ (file) => `${file.name} (${formatFileSize(file.size)}) exceeds the upload limit of ${formatFileSize(uploadSizeLimitBytes)}.`
1027
+ )
1028
+ });
1029
+ }
1030
+ try {
1031
+ if (enqueueableFiles.length === 0) {
1032
+ return [];
1033
+ }
1034
+ prepareQueueSize.value += enqueueableFiles.length;
1035
+ const uploadPayload = await retryPromise({
1036
+ fn: () => prepareUpload(parentId, enqueueableFiles),
1037
+ excludeError: (error) => (
1038
+ // eslint-disable-next-line no-magic-numbers
1039
+ Boolean(error.statusCode && error.statusCode < 500)
1040
+ ),
1041
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS
1042
+ });
1043
+ uploadPayload.forEach(({ uploadId, file }) => {
1044
+ if (isFileWithProcessing(file)) {
1045
+ unprocessedUploads.add(uploadId);
1046
+ }
1047
+ });
1048
+ const uploadIds = uploadPayload.map((upload) => upload.uploadId);
1049
+ useUploadManagerResult.start(parentId, uploadPayload);
1050
+ return uploadIds;
1051
+ } catch (error) {
1052
+ throw rfcErrors.tryParse(error) ?? error;
1053
+ } finally {
1054
+ prepareQueueSize.value -= enqueueableFiles.length;
1055
+ }
1056
+ },
1057
+ cancel: (uploadId) => {
1058
+ useUploadManagerResult.cancel(uploadId);
1059
+ cancelUpload(uploadId).catch((error) => {
1060
+ consola.error("There was a problem cancelling the upload", { error });
1061
+ });
1062
+ }
1063
+ };
1064
+ };
1065
+
1066
+ const DEFAULT_MAX_RETRIES = null;
1067
+ const DEFAULT_POLLING_INTERVAL = 2e3;
1068
+ const hasDownloadUrl = (response) => {
1069
+ return "downloadUrl" in response;
1070
+ };
1071
+ const isAbortError = (error) => error instanceof DOMException && error.name === "AbortError";
1072
+ const useDownloadArtifact = (options = {}) => {
1073
+ const $ofetch = createHttpClient();
1074
+ const downloadItems = ref({});
1075
+ const abortControllers = {};
1076
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
1077
+ const pollingInterval = options.pollingInterval ?? DEFAULT_POLLING_INTERVAL;
1078
+ const cancel = (downloadId) => {
1079
+ const itemController = abortControllers[downloadId];
1080
+ if (itemController) {
1081
+ itemController.abort();
1082
+ delete abortControllers[downloadId];
1083
+ }
1084
+ };
1085
+ const removeItem = (downloadId) => {
1086
+ cancel(downloadId);
1087
+ delete downloadItems.value[downloadId];
1088
+ };
1089
+ const fetchDownloadStatus = ({
1090
+ downloadId,
1091
+ signal
1092
+ }) => {
1093
+ return $ofetch(`/downloads/${downloadId}/status`, {
1094
+ method: "GET",
1095
+ signal
1096
+ });
1097
+ };
1098
+ const openDownload = (downloadUrl) => {
1099
+ const a = document.createElement("a");
1100
+ a.target = "_blank";
1101
+ a.href = downloadUrl;
1102
+ a.download = "";
1103
+ a.style.display = "none";
1104
+ document.body.appendChild(a);
1105
+ a.click();
1106
+ document.body.removeChild(a);
1107
+ };
1108
+ const handlePollingResult = async ({
1109
+ downloadId,
1110
+ signal
1111
+ }) => {
1112
+ try {
1113
+ const statusResponse = await fetchDownloadStatus({
1114
+ downloadId,
1115
+ signal
1116
+ });
1117
+ if (statusResponse?.status === "READY" && statusResponse?.downloadUrl) {
1118
+ downloadItems.value[downloadId].status = "READY";
1119
+ downloadItems.value[downloadId].downloadUrl = statusResponse.downloadUrl;
1120
+ openDownload(statusResponse.downloadUrl);
1121
+ return true;
1122
+ } else if (statusResponse?.status === "FAILED") {
1123
+ let details = "Download failed";
1124
+ if (statusResponse?.statusMessage) {
1125
+ details += `: ${statusResponse.statusMessage}`;
1126
+ }
1127
+ throw new Error(details);
1128
+ }
1129
+ } catch (error) {
1130
+ consola.error("Error fetching status:", error);
1131
+ const isAborted = isAbortError(error) || error instanceof FetchError && isAbortError(error.cause);
1132
+ if (!isAborted) {
1133
+ downloadItems.value[downloadId].status = "FAILED";
1134
+ downloadItems.value[downloadId].failureDetails = error instanceof Error ? error.message : error;
1135
+ }
1136
+ return true;
1137
+ }
1138
+ return false;
1139
+ };
1140
+ const pollDownloadItem = async ({
1141
+ itemId,
1142
+ downloadId,
1143
+ version,
1144
+ name
1145
+ }) => {
1146
+ const controller = new AbortController();
1147
+ abortControllers[downloadId] = controller;
1148
+ const signal = controller.signal;
1149
+ let itemName = `${name}`;
1150
+ if (version) {
1151
+ itemName += ` (${version})`;
1152
+ }
1153
+ downloadItems.value[downloadId] = {
1154
+ itemId,
1155
+ ...version && { version },
1156
+ downloadId,
1157
+ name: itemName,
1158
+ status: "IN_PROGRESS"
1159
+ };
1160
+ const abortListener = () => {
1161
+ controller.signal.removeEventListener("abort", abortListener);
1162
+ if (!downloadItems.value[downloadId]) {
1163
+ return;
1164
+ }
1165
+ downloadItems.value[downloadId].status = "CANCELLED";
1166
+ downloadItems.value[downloadId].failureDetails = "Download was cancelled manually";
1167
+ };
1168
+ controller.signal.addEventListener("abort", abortListener);
1169
+ let tries = 0;
1170
+ while (maxRetries === null || tries < maxRetries) {
1171
+ tries++;
1172
+ await sleep(pollingInterval);
1173
+ const isTerminalState = await handlePollingResult({ downloadId, signal });
1174
+ if (isTerminalState) {
1175
+ break;
1176
+ }
1177
+ }
1178
+ delete abortControllers[downloadId];
1179
+ if (maxRetries !== null && tries >= maxRetries) {
1180
+ downloadItems.value[downloadId].status = "FAILED";
1181
+ downloadItems.value[downloadId].failureDetails = "Download timed out";
1182
+ }
1183
+ };
1184
+ const start = async ({
1185
+ itemId,
1186
+ version,
1187
+ name
1188
+ }) => {
1189
+ try {
1190
+ const response = await $ofetch(
1191
+ `/repository/${itemId}/artifact`,
1192
+ {
1193
+ method: "GET",
1194
+ query: { version }
1195
+ }
1196
+ );
1197
+ if (hasDownloadUrl(response)) {
1198
+ openDownload(response.downloadUrl);
1199
+ return;
1200
+ }
1201
+ await pollDownloadItem({
1202
+ itemId,
1203
+ version,
1204
+ downloadId: response.downloadId,
1205
+ name
1206
+ });
1207
+ } catch (error) {
1208
+ throw rfcErrors.tryParse(error) ?? error;
1209
+ }
1210
+ };
1211
+ const totalItemsBeingZipped = computed(
1212
+ () => Object.values(downloadItems.value).filter(
1213
+ ({ status }) => status === "IN_PROGRESS"
1214
+ ).length
1215
+ );
1216
+ const resetState = () => {
1217
+ for (const [downloadId, controller] of Object.entries(abortControllers)) {
1218
+ controller?.abort();
1219
+ delete abortControllers[downloadId];
1220
+ }
1221
+ downloadItems.value = {};
1222
+ };
1223
+ const downloadItemsArray = computed(() => Object.values(downloadItems.value));
1224
+ return {
1225
+ /**
1226
+ * Initiates a download of the given itemId and version.
1227
+ */
1228
+ start,
1229
+ /**
1230
+ * Cancels the ongoing download for a given itemId (if any).
1231
+ * Sets the status in `downloadItems` to `CANCELLED`.
1232
+ */
1233
+ cancel,
1234
+ /**
1235
+ * Removes item from `downloadItems`.
1236
+ */
1237
+ removeItem,
1238
+ /**
1239
+ * A computed array of all current items that are being zipped and prepared for download.
1240
+ */
1241
+ downloadItems: downloadItemsArray,
1242
+ /**
1243
+ * The total number of zipping items in progress.
1244
+ */
1245
+ totalItemsBeingZipped,
1246
+ /**
1247
+ * Resets the state of the composable, clearing all downloads and controllers.
1248
+ */
1249
+ resetState,
1250
+ /**
1251
+ * Opens a download from the given url
1252
+ */
1253
+ openDownload
1254
+ };
1255
+ };
1256
+
1257
+ export { DownloadProgressPanel, UploadProgressPanel, useDownloadArtifact, useFileUpload };
1258
+ //# sourceMappingURL=dataTransfer.js.map