@knime/product-features 0.3.0 → 0.4.1

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 +1385 -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 +87 -0
  26. package/dist/src/dataTransfer/download/useDownloadArtifact.d.ts.map +1 -0
  27. package/dist/src/dataTransfer/index.d.ts +6 -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 +120 -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,1385 @@
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
+ //#region src/predicate/isPlainObject.ts
596
+ /**
597
+ * Checks if a given value is a plain object.
598
+ *
599
+ * @param {object} value - The value to check.
600
+ * @returns {value is Record<PropertyKey, any>} - True if the value is a plain object, otherwise false.
601
+ *
602
+ * @example
603
+ * ```typescript
604
+ * // ✅👇 True
605
+ *
606
+ * isPlainObject({ }); // ✅
607
+ * isPlainObject({ key: 'value' }); // ✅
608
+ * isPlainObject({ key: new Date() }); // ✅
609
+ * isPlainObject(new Object()); // ✅
610
+ * isPlainObject(Object.create(null)); // ✅
611
+ * isPlainObject({ nested: { key: true} }); // ✅
612
+ * isPlainObject(new Proxy({}, {})); // ✅
613
+ * isPlainObject({ [Symbol('tag')]: 'A' }); // ✅
614
+ *
615
+ * // ✅👇 (cross-realms, node context, workers, ...)
616
+ * const runInNewContext = await import('node:vm').then(
617
+ * (mod) => mod.runInNewContext
618
+ * );
619
+ * isPlainObject(runInNewContext('({})')); // ✅
620
+ *
621
+ * // ❌👇 False
622
+ *
623
+ * class Test { };
624
+ * isPlainObject(new Test()) // ❌
625
+ * isPlainObject(10); // ❌
626
+ * isPlainObject(null); // ❌
627
+ * isPlainObject('hello'); // ❌
628
+ * isPlainObject([]); // ❌
629
+ * isPlainObject(new Date()); // ❌
630
+ * isPlainObject(new Uint8Array([1])); // ❌
631
+ * isPlainObject(Buffer.from('ABC')); // ❌
632
+ * isPlainObject(Promise.resolve({})); // ❌
633
+ * isPlainObject(Object.create({})); // ❌
634
+ * isPlainObject(new (class Cls {})); // ❌
635
+ * isPlainObject(globalThis); // ❌,
636
+ * ```
637
+ */
638
+ function isPlainObject(value) {
639
+ if (!value || typeof value !== "object") return false;
640
+ const proto = Object.getPrototypeOf(value);
641
+ if (!(proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null)) return false;
642
+ return Object.prototype.toString.call(value) === "[object Object]";
643
+ }
644
+
645
+ //#region src/_internal/isUnsafeProperty.ts
646
+ /**
647
+ * Checks if a property key is unsafe to modify directly.
648
+ *
649
+ * This function is used in functions like `merge` to prevent prototype pollution attacks
650
+ * by identifying property keys that could modify the object's prototype chain or constructor.
651
+ *
652
+ * @param key - The property key to check
653
+ * @returns `true` if the property is unsafe to modify directly, `false` otherwise
654
+ * @internal
655
+ */
656
+ function isUnsafeProperty(key) {
657
+ return key === "__proto__";
658
+ }
659
+
660
+ //#region src/object/merge.ts
661
+ /**
662
+ * Merges the properties of the source object into the target object.
663
+ *
664
+ * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
665
+ * If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
666
+ * If a property in the source object is undefined, it will not overwrite a defined property in the target object.
667
+ *
668
+ * Note that this function mutates the target object.
669
+ *
670
+ * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
671
+ * @param {S} source - The source object whose properties will be merged into the target object.
672
+ * @returns {T & S} The updated target object with properties from the source object merged in.
673
+ *
674
+ * @template T - Type of the target object.
675
+ * @template S - Type of the source object.
676
+ *
677
+ * @example
678
+ * const target = { a: 1, b: { x: 1, y: 2 } };
679
+ * const source = { b: { y: 3, z: 4 }, c: 5 };
680
+ *
681
+ * const result = merge(target, source);
682
+ * console.log(result);
683
+ * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
684
+ *
685
+ * @example
686
+ * const target = { a: [1, 2], b: { x: 1 } };
687
+ * const source = { a: [3], b: { y: 2 } };
688
+ *
689
+ * const result = merge(target, source);
690
+ * console.log(result);
691
+ * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
692
+ *
693
+ * @example
694
+ * const target = { a: null };
695
+ * const source = { a: [1, 2, 3] };
696
+ *
697
+ * const result = merge(target, source);
698
+ * console.log(result);
699
+ * // Output: { a: [1, 2, 3] }
700
+ */
701
+ function merge(target, source) {
702
+ const sourceKeys = Object.keys(source);
703
+ for (let i = 0; i < sourceKeys.length; i++) {
704
+ const key = sourceKeys[i];
705
+ if (isUnsafeProperty(key)) continue;
706
+ const sourceValue = source[key];
707
+ const targetValue = target[key];
708
+ if (isMergeableValue(sourceValue) && isMergeableValue(targetValue)) target[key] = merge(targetValue, sourceValue);
709
+ else if (Array.isArray(sourceValue)) target[key] = merge([], sourceValue);
710
+ else if (isPlainObject(sourceValue)) target[key] = merge({}, sourceValue);
711
+ else if (targetValue === void 0 || sourceValue !== void 0) target[key] = sourceValue;
712
+ }
713
+ return target;
714
+ }
715
+ function isMergeableValue(value) {
716
+ return isPlainObject(value) || Array.isArray(value);
717
+ }
718
+
719
+ const API_BASE_URL = "/_/api";
720
+
721
+ const defaultConfig = {
722
+ baseURL: API_BASE_URL,
723
+ headers: {
724
+ "Content-Type": "application/json",
725
+ // see: https://knime-com.atlassian.net/wiki/spaces/SPECS/pages/4126769212/API+Errors#Client-Request-Headers
726
+ Accept: "application/json; application/problem+json"
727
+ }
728
+ };
729
+ const createHttpClient = (customOptions) => {
730
+ const { baseURL = API_BASE_URL, ...otherCustomOptions } = customOptions ?? {};
731
+ return ofetch.create(
732
+ merge({ baseURL, ...otherCustomOptions }, defaultConfig)
733
+ );
734
+ };
735
+
736
+ const CHUNK_SIZE = 50 * 1024 * 1024;
737
+ const DEFAULT_RETRY_COUNT = 5;
738
+ const DEFAULT_RETRY_DELAY_MS$1 = 50;
739
+ const uploadChunkWithProgress = (params) => {
740
+ const { method, url, chunk, chunkIndex, onProgress, abortSignal } = params;
741
+ const OK = 200;
742
+ const CREATED = 201;
743
+ return new Promise((resolve, reject) => {
744
+ const xhr = new XMLHttpRequest();
745
+ xhr.open(method, url, true);
746
+ abortSignal.addEventListener("abort", () => xhr.abort());
747
+ xhr.upload.onprogress = (event) => {
748
+ if (event.lengthComputable) {
749
+ onProgress(event.loaded);
750
+ }
751
+ };
752
+ xhr.onload = () => {
753
+ if (xhr.status === OK || xhr.status === CREATED) {
754
+ const etag = xhr.getResponseHeader("ETag");
755
+ resolve({ partId: etag?.replace(/^(?:W\/)?"|"$/g, "") ?? "" });
756
+ } else {
757
+ consola.error("Failed or unexpected XHR response", {
758
+ xhrStatus: xhr.status,
759
+ xhrResponse: xhr.response,
760
+ chunkIndex
761
+ });
762
+ reject(new Error("Failed to upload file"));
763
+ }
764
+ };
765
+ xhr.onerror = (event) => {
766
+ consola.error("Failed to upload chunk", {
767
+ xhrErrorEvent: event,
768
+ chunkIndex
769
+ });
770
+ reject(new Error("Failed to upload file"));
771
+ };
772
+ xhr.send(chunk);
773
+ });
774
+ };
775
+ const createUploadManager = (config) => {
776
+ const {
777
+ resolveFilePartUploadURL: getUploadFilePartUrl,
778
+ onFileUploadComplete,
779
+ onFileUploadFailed
780
+ } = config;
781
+ const uploadStateMap = /* @__PURE__ */ new Map();
782
+ const completedUploads = /* @__PURE__ */ new Set();
783
+ const cancelledUploads = /* @__PURE__ */ new Set();
784
+ const failedUploads = /* @__PURE__ */ new Set();
785
+ const assertState = (uploadId, state) => uploadStateMap.has(uploadId) && uploadStateMap.get(uploadId).state === state;
786
+ const getUploadState = (uploadId) => uploadStateMap.get(uploadId);
787
+ const setUploadState = (uploadId, state) => {
788
+ uploadStateMap.set(uploadId, {
789
+ ...uploadStateMap.get(uploadId),
790
+ ...state
791
+ });
792
+ };
793
+ const isFailed = (uploadId) => assertState(uploadId, "failed");
794
+ const isCancelled = (uploadId) => assertState(uploadId, "cancelled");
795
+ const getTotalFileParts = (file) => Math.ceil(file.size / CHUNK_SIZE);
796
+ const abortInFlightUpload = (uploadId, reason) => {
797
+ const currentState = uploadStateMap.get(uploadId);
798
+ if (!currentState) {
799
+ return;
800
+ }
801
+ currentState.abortController.abort(
802
+ new AbortError(
803
+ `Upload (${currentState.uploadId}) for file "${currentState.file.name}" aborted. Reason: "${reason}"`
804
+ )
805
+ );
806
+ };
807
+ const cancel = (uploadId) => {
808
+ if (!uploadStateMap.has(uploadId)) {
809
+ consola.error("cancel:: Invalid upload id");
810
+ return;
811
+ }
812
+ setUploadState(uploadId, { state: "cancelled" });
813
+ abortInFlightUpload(uploadId, "upload cancelled");
814
+ cancelledUploads.add(uploadId);
815
+ };
816
+ const setFailed = (uploadId, error) => {
817
+ if (!uploadStateMap.has(uploadId)) {
818
+ consola.error("failed:: Invalid upload id");
819
+ return;
820
+ }
821
+ setUploadState(uploadId, { state: "failed" });
822
+ onFileUploadFailed?.({ uploadId, error });
823
+ failedUploads.add(uploadId);
824
+ if (completedUploads.has(uploadId)) {
825
+ completedUploads.delete(uploadId);
826
+ }
827
+ };
828
+ const uploadFileFromChunkIndex = async (uploadId, file, initialChunkIndex = 0) => {
829
+ const totalChunks = getTotalFileParts(file);
830
+ const totalBytes = file.size;
831
+ const completedPartIds = {};
832
+ const { abortController, runAbortablePromise } = createAbortablePromise();
833
+ uploadStateMap.set(uploadId, {
834
+ uploadId,
835
+ file,
836
+ state: "inprogress",
837
+ uploadedByteCount: uploadStateMap.get(uploadId)?.uploadedByteCount ?? 0,
838
+ completedChunkCount: uploadStateMap.get(uploadId)?.completedChunkCount ?? 0,
839
+ abortController
840
+ });
841
+ let chunkIndex = initialChunkIndex;
842
+ let uploadedBytes = uploadStateMap.get(uploadId)?.uploadedByteCount;
843
+ while (chunkIndex < totalChunks) {
844
+ if (isCancelled(uploadId) || isFailed(uploadId)) {
845
+ break;
846
+ }
847
+ const start = chunkIndex * CHUNK_SIZE;
848
+ const end = Math.min(start + CHUNK_SIZE, file.size);
849
+ const chunk = file.slice(start, end);
850
+ try {
851
+ const { method, url } = await retryPromise({
852
+ fn: () => getUploadFilePartUrl(uploadId, chunkIndex + 1),
853
+ retryCount: DEFAULT_RETRY_COUNT,
854
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS$1
855
+ });
856
+ consola.trace("File part upload url resolved", { method, url });
857
+ const onChunkUploadProgress = (uploadedChunkBytes) => {
858
+ uploadedBytes = uploadedChunkBytes + start;
859
+ setUploadState(uploadId, { uploadedByteCount: uploadedBytes });
860
+ const progress = Math.round(uploadedBytes / totalBytes * 100);
861
+ config.onProgress?.(uploadId, progress);
862
+ };
863
+ const filePartResponse = await runAbortablePromise(
864
+ () => retryPromise({
865
+ fn: () => uploadChunkWithProgress({
866
+ method,
867
+ url,
868
+ chunk,
869
+ chunkIndex,
870
+ onProgress: onChunkUploadProgress,
871
+ abortSignal: abortController.signal
872
+ }),
873
+ retryCount: DEFAULT_RETRY_COUNT,
874
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS$1
875
+ })
876
+ );
877
+ consola.trace(
878
+ `${file.name}: Chunk ${chunkIndex + 1} of ${totalChunks} uploaded successfully`
879
+ );
880
+ completedPartIds[chunkIndex + 1] = filePartResponse.partId;
881
+ setUploadState(uploadId, {
882
+ completedChunkCount: uploadStateMap.get(uploadId).completedChunkCount + 1
883
+ });
884
+ } catch (error) {
885
+ if (error instanceof AbortError) {
886
+ consola.info("Aborted::", error);
887
+ return;
888
+ }
889
+ setFailed(
890
+ uploadId,
891
+ error instanceof Error ? error : new Error(error)
892
+ );
893
+ return;
894
+ }
895
+ chunkIndex++;
896
+ }
897
+ if (isCancelled(uploadId) || isFailed(uploadId)) {
898
+ return;
899
+ }
900
+ setUploadState(uploadId, {
901
+ completedChunkCount: totalChunks,
902
+ state: "complete"
903
+ });
904
+ completedUploads.add(uploadId);
905
+ onFileUploadComplete?.({ uploadId, filePartIds: completedPartIds });
906
+ };
907
+ const uploadFiles = (files) => {
908
+ const result = [];
909
+ for (const { uploadId, file } of files) {
910
+ result.push(uploadFileFromChunkIndex(uploadId, file));
911
+ }
912
+ return Promise.allSettled(result).then(() => {
913
+ const completed = [...completedUploads.values()];
914
+ const cancelled = [...cancelledUploads.values()];
915
+ const failed = [...failedUploads.values()];
916
+ [...completed, ...cancelled, ...failed].forEach(
917
+ (uploadId) => uploadStateMap.delete(uploadId)
918
+ );
919
+ completedUploads.clear();
920
+ cancelledUploads.clear();
921
+ failedUploads.clear();
922
+ return {
923
+ completed,
924
+ cancelled,
925
+ failed
926
+ };
927
+ });
928
+ };
929
+ return {
930
+ uploadFiles,
931
+ getUploadState,
932
+ isFailed,
933
+ isCancelled,
934
+ cancel,
935
+ setFailed
936
+ };
937
+ };
938
+
939
+ const useUploadManager = (options) => {
940
+ const uploadState = ref({});
941
+ const { uploadFiles, cancel, setFailed } = createUploadManager({
942
+ ...options,
943
+ onFileUploadComplete: (params) => {
944
+ const { parentId, name } = uploadState.value[params.uploadId];
945
+ uploadState.value[params.uploadId].status = "complete";
946
+ options.onFileUploadComplete?.({ ...params, parentId, name });
947
+ },
948
+ onFileUploadFailed: ({ uploadId, error }) => {
949
+ const { parentId } = uploadState.value[uploadId];
950
+ uploadState.value[uploadId] = {
951
+ ...uploadState.value[uploadId],
952
+ status: "failed",
953
+ failureDetails: error.message
954
+ };
955
+ options.onFileUploadFailed?.({ uploadId, error, parentId });
956
+ },
957
+ onProgress: (uploadId, progress) => {
958
+ if (uploadState.value[uploadId].status === "inprogress") {
959
+ uploadState.value[uploadId].progress = progress;
960
+ }
961
+ }
962
+ });
963
+ const start = async (parentId, uploadPayload) => {
964
+ try {
965
+ uploadPayload.forEach(({ uploadId, file }) => {
966
+ uploadState.value[uploadId] = {
967
+ id: uploadId,
968
+ name: file.name,
969
+ size: file.size,
970
+ progress: 0,
971
+ status: "inprogress",
972
+ parentId
973
+ };
974
+ });
975
+ await uploadFiles(uploadPayload);
976
+ } catch (error) {
977
+ consola.error("Error uploading files", error);
978
+ }
979
+ };
980
+ const canCancel = (uploadId) => uploadState.value[uploadId]?.status === "inprogress" || uploadState.value[uploadId]?.status === "failed";
981
+ const removeItem = (uploadId) => {
982
+ if (canCancel(uploadId)) {
983
+ cancel(uploadId);
984
+ }
985
+ delete uploadState.value[uploadId];
986
+ };
987
+ const resetState = () => {
988
+ uploadState.value = {};
989
+ };
990
+ const uploadItems = computed(() => Object.values(uploadState.value));
991
+ const hasPendingUploads = computed(
992
+ () => uploadItems.value.some(({ status }) => status === "inprogress")
993
+ );
994
+ const totalPendingUploads = computed(
995
+ () => uploadItems.value.filter(({ status }) => status === "inprogress").length
996
+ );
997
+ return {
998
+ uploadState,
999
+ hasPendingUploads,
1000
+ totalPendingUploads,
1001
+ start,
1002
+ cancel: (uploadId) => {
1003
+ cancel(uploadId);
1004
+ uploadState.value[uploadId].status = "cancelled";
1005
+ },
1006
+ canCancel,
1007
+ removeItem,
1008
+ resetState,
1009
+ setFailed: (uploadId, error) => {
1010
+ uploadState.value[uploadId] = {
1011
+ ...uploadState.value[uploadId],
1012
+ status: "failed",
1013
+ failureDetails: error.message
1014
+ };
1015
+ setFailed(uploadId, error);
1016
+ }
1017
+ };
1018
+ };
1019
+
1020
+ const DEFAULT_MAX_UPLOAD_QUEUE_SIZE = 10;
1021
+ const DEFAULT_UPLOAD_SIZE_LIMIT_BYTES = 5 * 1024 * 1024 * 1024;
1022
+ const DEFAULT_RETRY_DELAY_MS = 50;
1023
+ const getUploadSizeLimitBytes = () => DEFAULT_UPLOAD_SIZE_LIMIT_BYTES;
1024
+ const useFileUpload = (options = {}) => {
1025
+ const $ofetch = createHttpClient(options.customFetchClientOptions);
1026
+ const prepareUpload = (parentId, files) => {
1027
+ const fileDictionary = Object.fromEntries(
1028
+ files.map((file) => {
1029
+ const name = knimeFileFormats.KNWF.getNameOrDefault(file, file.name);
1030
+ return [name, file];
1031
+ })
1032
+ );
1033
+ const items = Object.fromEntries(
1034
+ Object.entries(fileDictionary).map(([name, file]) => [
1035
+ name,
1036
+ {
1037
+ itemContentType: getFileMimeType(file),
1038
+ itemContentSize: file.size
1039
+ }
1040
+ ])
1041
+ );
1042
+ return $ofetch(`/repository/${parentId}/manifest`, {
1043
+ method: "POST",
1044
+ body: { items }
1045
+ }).then(({ items: items2 }) => {
1046
+ return Object.keys(items2).map((name) => {
1047
+ const { uploadId } = items2[name];
1048
+ const file = fileDictionary[name];
1049
+ return { uploadId, file };
1050
+ });
1051
+ });
1052
+ };
1053
+ const resolveFilePartUploadURL = (uploadId, partNumber) => {
1054
+ return $ofetch(
1055
+ `/uploads/${uploadId}/parts/?partNumber=${partNumber}`,
1056
+ { method: "POST" }
1057
+ );
1058
+ };
1059
+ const completeUpload = (uploadId, partIds) => {
1060
+ return $ofetch(`/uploads/${uploadId}`, {
1061
+ method: "POST",
1062
+ body: partIds
1063
+ });
1064
+ };
1065
+ const cancelUpload = (uploadId) => {
1066
+ return $ofetch(`/uploads/${uploadId}`, {
1067
+ method: "DELETE"
1068
+ });
1069
+ };
1070
+ const unprocessedUploads = reactive(/* @__PURE__ */ new Set());
1071
+ const isKNWFFile = (file) => knimeFileFormats.KNWF.matches(file);
1072
+ let useUploadManagerResult = null;
1073
+ const setProcessingCompleted = ({ uploadId }) => {
1074
+ unprocessedUploads.delete(uploadId);
1075
+ };
1076
+ const setProcessingFailed = ({
1077
+ uploadId,
1078
+ error
1079
+ }) => {
1080
+ unprocessedUploads.delete(uploadId);
1081
+ useUploadManagerResult?.setFailed(
1082
+ uploadId,
1083
+ error ?? new Error("An error occurred when processing the file")
1084
+ );
1085
+ };
1086
+ useUploadManagerResult = useUploadManager({
1087
+ resolveFilePartUploadURL,
1088
+ onFileUploadComplete: ({ uploadId, filePartIds, parentId, name }) => {
1089
+ retryPromise({ fn: () => completeUpload(uploadId, filePartIds) }).then(() => {
1090
+ options.onFileUploadComplete?.({
1091
+ uploadId,
1092
+ filePartIds,
1093
+ parentId,
1094
+ name
1095
+ });
1096
+ }).catch((error) => {
1097
+ consola.error("Error attempting to complete upload", { error });
1098
+ setProcessingFailed({ uploadId, error });
1099
+ });
1100
+ },
1101
+ onFileUploadFailed: ({ uploadId, error, parentId }) => {
1102
+ options?.onFileUploadFailed?.({ uploadId, error, parentId });
1103
+ }
1104
+ });
1105
+ const getEnqueueableFiles = (files) => {
1106
+ const { totalPendingUploads } = useUploadManagerResult;
1107
+ const { maxUploadQueueSize = DEFAULT_MAX_UPLOAD_QUEUE_SIZE } = options;
1108
+ if (files.length + totalPendingUploads.value > maxUploadQueueSize) {
1109
+ options.onUploadQueueSizeExceeded?.(maxUploadQueueSize);
1110
+ }
1111
+ const effectiveQueueSize = Math.max(
1112
+ 0,
1113
+ maxUploadQueueSize - totalPendingUploads.value
1114
+ );
1115
+ return files.slice(0, effectiveQueueSize);
1116
+ };
1117
+ const { uploadState, ...uploadManagerResultRest } = useUploadManagerResult;
1118
+ const uploadQueue = computed(() => {
1119
+ return Object.values(uploadState.value).map((uploadItem) => {
1120
+ if (uploadItem.status === "complete" && unprocessedUploads.has(uploadItem.id)) {
1121
+ return {
1122
+ id: uploadItem.id,
1123
+ name: uploadItem.name,
1124
+ parentId: uploadItem.parentId,
1125
+ size: uploadItem.size,
1126
+ status: "processing"
1127
+ };
1128
+ }
1129
+ return uploadItem;
1130
+ });
1131
+ });
1132
+ const prepareQueueSize = ref(0);
1133
+ return {
1134
+ ...uploadManagerResultRest,
1135
+ uploadQueue,
1136
+ unprocessedUploads: readonly(unprocessedUploads),
1137
+ setProcessingCompleted,
1138
+ setProcessingFailed,
1139
+ isPreparingUpload: computed(() => prepareQueueSize.value > 0),
1140
+ totalFilesBeingPrepared: computed(() => prepareQueueSize.value),
1141
+ start: async (parentId, files, options2 = {}) => {
1142
+ const { isFileWithProcessing = isKNWFFile } = options2;
1143
+ const enqueueableFiles = getEnqueueableFiles(files);
1144
+ const uploadSizeLimitBytes = getUploadSizeLimitBytes();
1145
+ const oversizedFiles = enqueueableFiles.filter(
1146
+ (file) => file.size > uploadSizeLimitBytes
1147
+ );
1148
+ if (oversizedFiles.length > 0) {
1149
+ throw new rfcErrors.RFCError({
1150
+ title: "Upload size limit exceeded",
1151
+ status: 413,
1152
+ details: oversizedFiles.map(
1153
+ (file) => `${file.name} (${formatFileSize(file.size)}) exceeds the upload limit of ${formatFileSize(uploadSizeLimitBytes)}.`
1154
+ )
1155
+ });
1156
+ }
1157
+ try {
1158
+ if (enqueueableFiles.length === 0) {
1159
+ return [];
1160
+ }
1161
+ prepareQueueSize.value += enqueueableFiles.length;
1162
+ const uploadPayload = await retryPromise({
1163
+ fn: () => prepareUpload(parentId, enqueueableFiles),
1164
+ excludeError: (error) => (
1165
+ // eslint-disable-next-line no-magic-numbers
1166
+ Boolean(error.statusCode && error.statusCode < 500)
1167
+ ),
1168
+ retryDelayMS: DEFAULT_RETRY_DELAY_MS
1169
+ });
1170
+ uploadPayload.forEach(({ uploadId, file }) => {
1171
+ if (isFileWithProcessing(file)) {
1172
+ unprocessedUploads.add(uploadId);
1173
+ }
1174
+ });
1175
+ const uploadIds = uploadPayload.map((upload) => upload.uploadId);
1176
+ useUploadManagerResult.start(parentId, uploadPayload);
1177
+ return uploadIds;
1178
+ } catch (error) {
1179
+ throw rfcErrors.tryParse(error) ?? error;
1180
+ } finally {
1181
+ prepareQueueSize.value -= enqueueableFiles.length;
1182
+ }
1183
+ },
1184
+ cancel: (uploadId) => {
1185
+ useUploadManagerResult.cancel(uploadId);
1186
+ cancelUpload(uploadId).catch((error) => {
1187
+ consola.error("There was a problem cancelling the upload", { error });
1188
+ });
1189
+ }
1190
+ };
1191
+ };
1192
+
1193
+ const DEFAULT_MAX_RETRIES = null;
1194
+ const DEFAULT_POLLING_INTERVAL = 2e3;
1195
+ const hasDownloadUrl = (response) => {
1196
+ return "downloadUrl" in response;
1197
+ };
1198
+ const isAbortError = (error) => error instanceof DOMException && error.name === "AbortError";
1199
+ const useDownloadArtifact = (options = {}) => {
1200
+ const $ofetch = createHttpClient(options.customFetchClientOptions);
1201
+ const downloadItems = ref({});
1202
+ const abortControllers = {};
1203
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
1204
+ const pollingInterval = options.pollingInterval ?? DEFAULT_POLLING_INTERVAL;
1205
+ const cancel = (downloadId) => {
1206
+ const itemController = abortControllers[downloadId];
1207
+ if (itemController) {
1208
+ itemController.abort();
1209
+ delete abortControllers[downloadId];
1210
+ }
1211
+ };
1212
+ const removeItem = (downloadId) => {
1213
+ cancel(downloadId);
1214
+ delete downloadItems.value[downloadId];
1215
+ };
1216
+ const fetchDownloadStatus = ({
1217
+ downloadId,
1218
+ signal
1219
+ }) => {
1220
+ return $ofetch(`/downloads/${downloadId}/status`, {
1221
+ method: "GET",
1222
+ signal
1223
+ });
1224
+ };
1225
+ const openDownload = (downloadUrl) => {
1226
+ const a = document.createElement("a");
1227
+ a.target = "_blank";
1228
+ a.href = downloadUrl;
1229
+ a.download = "";
1230
+ a.style.display = "none";
1231
+ document.body.appendChild(a);
1232
+ a.click();
1233
+ document.body.removeChild(a);
1234
+ };
1235
+ const handlePollingResult = async ({
1236
+ downloadId,
1237
+ signal
1238
+ }) => {
1239
+ try {
1240
+ const statusResponse = await fetchDownloadStatus({
1241
+ downloadId,
1242
+ signal
1243
+ });
1244
+ if (statusResponse?.status === "READY" && statusResponse?.downloadUrl) {
1245
+ downloadItems.value[downloadId].status = "READY";
1246
+ downloadItems.value[downloadId].downloadUrl = statusResponse.downloadUrl;
1247
+ openDownload(statusResponse.downloadUrl);
1248
+ return true;
1249
+ } else if (statusResponse?.status === "FAILED") {
1250
+ let details = "Download failed";
1251
+ if (statusResponse?.statusMessage) {
1252
+ details += `: ${statusResponse.statusMessage}`;
1253
+ }
1254
+ throw new Error(details);
1255
+ }
1256
+ } catch (error) {
1257
+ consola.error("Error fetching status:", error);
1258
+ const isAborted = isAbortError(error) || error instanceof FetchError && isAbortError(error.cause);
1259
+ if (!isAborted) {
1260
+ downloadItems.value[downloadId].status = "FAILED";
1261
+ downloadItems.value[downloadId].failureDetails = error instanceof Error ? error.message : error;
1262
+ }
1263
+ return true;
1264
+ }
1265
+ return false;
1266
+ };
1267
+ const pollDownloadItem = async ({
1268
+ itemId,
1269
+ downloadId,
1270
+ version,
1271
+ name
1272
+ }) => {
1273
+ const controller = new AbortController();
1274
+ abortControllers[downloadId] = controller;
1275
+ const signal = controller.signal;
1276
+ let itemName = `${name}`;
1277
+ if (version) {
1278
+ itemName += ` (${version})`;
1279
+ }
1280
+ downloadItems.value[downloadId] = {
1281
+ itemId,
1282
+ ...version && { version },
1283
+ downloadId,
1284
+ name: itemName,
1285
+ status: "IN_PROGRESS"
1286
+ };
1287
+ const abortListener = () => {
1288
+ controller.signal.removeEventListener("abort", abortListener);
1289
+ if (!downloadItems.value[downloadId]) {
1290
+ return;
1291
+ }
1292
+ downloadItems.value[downloadId].status = "CANCELLED";
1293
+ downloadItems.value[downloadId].failureDetails = "Download was cancelled manually";
1294
+ };
1295
+ controller.signal.addEventListener("abort", abortListener);
1296
+ let tries = 0;
1297
+ while (maxRetries === null || tries < maxRetries) {
1298
+ tries++;
1299
+ await sleep(pollingInterval);
1300
+ const isTerminalState = await handlePollingResult({ downloadId, signal });
1301
+ if (isTerminalState) {
1302
+ break;
1303
+ }
1304
+ }
1305
+ delete abortControllers[downloadId];
1306
+ if (maxRetries !== null && tries >= maxRetries) {
1307
+ downloadItems.value[downloadId].status = "FAILED";
1308
+ downloadItems.value[downloadId].failureDetails = "Download timed out";
1309
+ }
1310
+ };
1311
+ const start = async ({
1312
+ itemId,
1313
+ version,
1314
+ name
1315
+ }) => {
1316
+ try {
1317
+ const response = await $ofetch(
1318
+ `/repository/${itemId}/artifact`,
1319
+ {
1320
+ method: "GET",
1321
+ query: { version }
1322
+ }
1323
+ );
1324
+ if (hasDownloadUrl(response)) {
1325
+ openDownload(response.downloadUrl);
1326
+ return;
1327
+ }
1328
+ await pollDownloadItem({
1329
+ itemId,
1330
+ version,
1331
+ downloadId: response.downloadId,
1332
+ name
1333
+ });
1334
+ } catch (error) {
1335
+ throw rfcErrors.tryParse(error) ?? error;
1336
+ }
1337
+ };
1338
+ const totalItemsBeingZipped = computed(
1339
+ () => Object.values(downloadItems.value).filter(
1340
+ ({ status }) => status === "IN_PROGRESS"
1341
+ ).length
1342
+ );
1343
+ const resetState = () => {
1344
+ for (const [downloadId, controller] of Object.entries(abortControllers)) {
1345
+ controller?.abort();
1346
+ delete abortControllers[downloadId];
1347
+ }
1348
+ downloadItems.value = {};
1349
+ };
1350
+ const downloadItemsArray = computed(() => Object.values(downloadItems.value));
1351
+ return {
1352
+ /**
1353
+ * Initiates a download of the given itemId and version.
1354
+ */
1355
+ start,
1356
+ /**
1357
+ * Cancels the ongoing download for a given itemId (if any).
1358
+ * Sets the status in `downloadItems` to `CANCELLED`.
1359
+ */
1360
+ cancel,
1361
+ /**
1362
+ * Removes item from `downloadItems`.
1363
+ */
1364
+ removeItem,
1365
+ /**
1366
+ * A computed array of all current items that are being zipped and prepared for download.
1367
+ */
1368
+ downloadItems: downloadItemsArray,
1369
+ /**
1370
+ * The total number of zipping items in progress.
1371
+ */
1372
+ totalItemsBeingZipped,
1373
+ /**
1374
+ * Resets the state of the composable, clearing all downloads and controllers.
1375
+ */
1376
+ resetState,
1377
+ /**
1378
+ * Opens a download from the given url
1379
+ */
1380
+ openDownload
1381
+ };
1382
+ };
1383
+
1384
+ export { API_BASE_URL, DownloadProgressPanel, UploadProgressPanel, createHttpClient, defaultConfig, useDownloadArtifact, useFileUpload };
1385
+ //# sourceMappingURL=dataTransfer.js.map