@fctc/sme-widget-ui 1.8.10 → 1.9.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.
package/dist/index.js CHANGED
@@ -16516,7 +16516,13 @@ var VideoPlayer = ({ src }) => {
16516
16516
 
16517
16517
  // src/widgets/common/render-files.tsx
16518
16518
  var import_jsx_runtime68 = require("react/jsx-runtime");
16519
- var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage }) => {
16519
+ var ImageItem = ({
16520
+ filename,
16521
+ checksum,
16522
+ index: index4,
16523
+ src = null,
16524
+ useGetImage
16525
+ }) => {
16520
16526
  const { data: image } = useGetImage({
16521
16527
  data: { filename, checksum },
16522
16528
  queryKey: [`get-image-${""}`],
@@ -16527,7 +16533,7 @@ var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage })
16527
16533
  {
16528
16534
  src: image || src,
16529
16535
  alt: filename,
16530
- className: "w-32 h-32 object-cover rounded-md"
16536
+ className: "w-32 h-32 object-cover rounded-md cursor-pointer"
16531
16537
  }
16532
16538
  ) }, index4);
16533
16539
  };
@@ -16567,22 +16573,35 @@ var FileItem = (props) => {
16567
16573
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
16568
16574
  "div",
16569
16575
  {
16570
- className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit group/file",
16576
+ className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit",
16571
16577
  children: [
16572
16578
  renderFile(),
16573
16579
  handleRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16574
16580
  "div",
16575
16581
  {
16582
+ style: {
16583
+ position: "absolute",
16584
+ top: 0,
16585
+ right: 0,
16586
+ backgroundColor: "rgba(0,0,0,0.2)"
16587
+ },
16576
16588
  onClick: () => handleRemoveFile(index4),
16577
- className: "cursor-pointer absolute right-0 top-0 p-2 hidden group-hover/file:block bg-[rgba(0,0,0,0.2)]",
16589
+ className: "cursor-pointer p-2 hidden group-hover:block",
16578
16590
  children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DeleteIcon, {})
16579
16591
  }
16580
16592
  ),
16581
16593
  !handleRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
16582
16594
  "span",
16583
16595
  {
16596
+ style: {
16597
+ position: "absolute",
16598
+ top: 0,
16599
+ right: 0,
16600
+ backgroundColor: "rgba(0,0,0,0.2)",
16601
+ zIndex: 10
16602
+ },
16584
16603
  onClick: (e3) => handleFileDownload(e3, src, filename),
16585
- className: "absolute top-0 right-0 z-10 hidden group-hover/file:block cursor-pointer p-2 text-white bg-[rgba(0,0,0,0.2)]",
16604
+ className: "hidden group-hover:block cursor-pointer p-2 text-white ",
16586
16605
  children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DownloadIcon, {})
16587
16606
  }
16588
16607
  )
@@ -16611,7 +16630,11 @@ var downloadFile = async (url, filename) => {
16611
16630
  console.error("File download failed:", error2);
16612
16631
  }
16613
16632
  };
16614
- var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16633
+ var RenderFiles = ({
16634
+ selectedFiles,
16635
+ setSelectedFiles,
16636
+ useGetImage
16637
+ }) => {
16615
16638
  const handleRemoveFile = (index4) => {
16616
16639
  if (setSelectedFiles) {
16617
16640
  const files = selectedFiles.filter((_2, i3) => i3 !== index4);
@@ -16635,7 +16658,7 @@ var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16635
16658
  useGetImage
16636
16659
  },
16637
16660
  index4
16638
- ) });
16661
+ ) }, file?.id ?? index4);
16639
16662
  }) });
16640
16663
  };
16641
16664
 
@@ -16835,7 +16858,10 @@ var ButtonSelectFiles = ({
16835
16858
  id,
16836
16859
  widget,
16837
16860
  useUploadImage,
16838
- useUploadFile
16861
+ useUploadFile,
16862
+ env,
16863
+ service,
16864
+ user
16839
16865
  }) => {
16840
16866
  const { t: t3 } = useI18n();
16841
16867
  const ALLOWED_TYPES = [
@@ -16852,6 +16878,7 @@ var ButtonSelectFiles = ({
16852
16878
  const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
16853
16879
  const isBinary = widget === "many2many_binary";
16854
16880
  const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
16881
+ const dataUser = user?.userProfile?.data;
16855
16882
  const validateFile = (file) => {
16856
16883
  if (!ALLOWED_TYPES.includes(file.type)) {
16857
16884
  setUploadError(t3("file_accept_single"));
@@ -16871,9 +16898,13 @@ var ButtonSelectFiles = ({
16871
16898
  }
16872
16899
  return true;
16873
16900
  };
16874
- const handleUpload = async (formData) => {
16901
+ const handleUpload = async (formData, service2, xNode) => {
16875
16902
  mutate(
16876
- { formData },
16903
+ {
16904
+ formData,
16905
+ service: service2,
16906
+ xNode
16907
+ },
16877
16908
  {
16878
16909
  onSuccess: (data) => {
16879
16910
  let newFiles = [];
@@ -16888,7 +16919,8 @@ var ButtonSelectFiles = ({
16888
16919
  });
16889
16920
  y2.success(instance.t("upload_success"));
16890
16921
  },
16891
- onError: () => {
16922
+ onError: (err) => {
16923
+ console.log("data", err);
16892
16924
  y2.error(instance.t("upload_failure"));
16893
16925
  }
16894
16926
  }
@@ -16898,6 +16930,8 @@ var ButtonSelectFiles = ({
16898
16930
  const files = Array.from(event.target.files ?? []);
16899
16931
  setUploadError(void 0);
16900
16932
  event.target.value = "";
16933
+ const serivce = env?.default_service;
16934
+ const xNode = service == "mms" && dataUser?.x_node;
16901
16935
  if (files.length === 0) return;
16902
16936
  const validFiles = files.filter((file) => validateFile(file));
16903
16937
  if (validFiles.length === 0) return;
@@ -16906,7 +16940,7 @@ var ButtonSelectFiles = ({
16906
16940
  validFiles.forEach((file) => formData.append("ufile", file));
16907
16941
  formData.append("model", String(model));
16908
16942
  formData.append("id", id ? String(id) : String(0));
16909
- await handleUpload(formData);
16943
+ await handleUpload(formData, serivce, xNode);
16910
16944
  } else {
16911
16945
  const file = validFiles[0];
16912
16946
  const formData = new FormData();
@@ -16914,7 +16948,7 @@ var ButtonSelectFiles = ({
16914
16948
  formData.append("thread_model", String(model));
16915
16949
  formData.append("thread_id", id ? String(id) : String(0));
16916
16950
  formData.append("is_pending", "true");
16917
- await handleUpload(formData);
16951
+ await handleUpload(formData, serivce, xNode);
16918
16952
  }
16919
16953
  };
16920
16954
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
package/dist/index.mjs CHANGED
@@ -16394,7 +16394,13 @@ var VideoPlayer = ({ src }) => {
16394
16394
 
16395
16395
  // src/widgets/common/render-files.tsx
16396
16396
  import { jsx as jsx68, jsxs as jsxs43 } from "react/jsx-runtime";
16397
- var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage }) => {
16397
+ var ImageItem = ({
16398
+ filename,
16399
+ checksum,
16400
+ index: index4,
16401
+ src = null,
16402
+ useGetImage
16403
+ }) => {
16398
16404
  const { data: image } = useGetImage({
16399
16405
  data: { filename, checksum },
16400
16406
  queryKey: [`get-image-${""}`],
@@ -16405,7 +16411,7 @@ var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage })
16405
16411
  {
16406
16412
  src: image || src,
16407
16413
  alt: filename,
16408
- className: "w-32 h-32 object-cover rounded-md"
16414
+ className: "w-32 h-32 object-cover rounded-md cursor-pointer"
16409
16415
  }
16410
16416
  ) }, index4);
16411
16417
  };
@@ -16445,22 +16451,35 @@ var FileItem = (props) => {
16445
16451
  return /* @__PURE__ */ jsxs43(
16446
16452
  "div",
16447
16453
  {
16448
- className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit group/file",
16454
+ className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit",
16449
16455
  children: [
16450
16456
  renderFile(),
16451
16457
  handleRemoveFile && /* @__PURE__ */ jsx68(
16452
16458
  "div",
16453
16459
  {
16460
+ style: {
16461
+ position: "absolute",
16462
+ top: 0,
16463
+ right: 0,
16464
+ backgroundColor: "rgba(0,0,0,0.2)"
16465
+ },
16454
16466
  onClick: () => handleRemoveFile(index4),
16455
- className: "cursor-pointer absolute right-0 top-0 p-2 hidden group-hover/file:block bg-[rgba(0,0,0,0.2)]",
16467
+ className: "cursor-pointer p-2 hidden group-hover:block",
16456
16468
  children: /* @__PURE__ */ jsx68(DeleteIcon, {})
16457
16469
  }
16458
16470
  ),
16459
16471
  !handleRemoveFile && /* @__PURE__ */ jsx68(
16460
16472
  "span",
16461
16473
  {
16474
+ style: {
16475
+ position: "absolute",
16476
+ top: 0,
16477
+ right: 0,
16478
+ backgroundColor: "rgba(0,0,0,0.2)",
16479
+ zIndex: 10
16480
+ },
16462
16481
  onClick: (e3) => handleFileDownload(e3, src, filename),
16463
- className: "absolute top-0 right-0 z-10 hidden group-hover/file:block cursor-pointer p-2 text-white bg-[rgba(0,0,0,0.2)]",
16482
+ className: "hidden group-hover:block cursor-pointer p-2 text-white ",
16464
16483
  children: /* @__PURE__ */ jsx68(DownloadIcon, {})
16465
16484
  }
16466
16485
  )
@@ -16489,7 +16508,11 @@ var downloadFile = async (url, filename) => {
16489
16508
  console.error("File download failed:", error2);
16490
16509
  }
16491
16510
  };
16492
- var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16511
+ var RenderFiles = ({
16512
+ selectedFiles,
16513
+ setSelectedFiles,
16514
+ useGetImage
16515
+ }) => {
16493
16516
  const handleRemoveFile = (index4) => {
16494
16517
  if (setSelectedFiles) {
16495
16518
  const files = selectedFiles.filter((_2, i3) => i3 !== index4);
@@ -16513,7 +16536,7 @@ var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16513
16536
  useGetImage
16514
16537
  },
16515
16538
  index4
16516
- ) });
16539
+ ) }, file?.id ?? index4);
16517
16540
  }) });
16518
16541
  };
16519
16542
 
@@ -16713,7 +16736,10 @@ var ButtonSelectFiles = ({
16713
16736
  id,
16714
16737
  widget,
16715
16738
  useUploadImage,
16716
- useUploadFile
16739
+ useUploadFile,
16740
+ env,
16741
+ service,
16742
+ user
16717
16743
  }) => {
16718
16744
  const { t: t3 } = useI18n();
16719
16745
  const ALLOWED_TYPES = [
@@ -16730,6 +16756,7 @@ var ButtonSelectFiles = ({
16730
16756
  const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
16731
16757
  const isBinary = widget === "many2many_binary";
16732
16758
  const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
16759
+ const dataUser = user?.userProfile?.data;
16733
16760
  const validateFile = (file) => {
16734
16761
  if (!ALLOWED_TYPES.includes(file.type)) {
16735
16762
  setUploadError(t3("file_accept_single"));
@@ -16749,9 +16776,13 @@ var ButtonSelectFiles = ({
16749
16776
  }
16750
16777
  return true;
16751
16778
  };
16752
- const handleUpload = async (formData) => {
16779
+ const handleUpload = async (formData, service2, xNode) => {
16753
16780
  mutate(
16754
- { formData },
16781
+ {
16782
+ formData,
16783
+ service: service2,
16784
+ xNode
16785
+ },
16755
16786
  {
16756
16787
  onSuccess: (data) => {
16757
16788
  let newFiles = [];
@@ -16766,7 +16797,8 @@ var ButtonSelectFiles = ({
16766
16797
  });
16767
16798
  y2.success(instance.t("upload_success"));
16768
16799
  },
16769
- onError: () => {
16800
+ onError: (err) => {
16801
+ console.log("data", err);
16770
16802
  y2.error(instance.t("upload_failure"));
16771
16803
  }
16772
16804
  }
@@ -16776,6 +16808,8 @@ var ButtonSelectFiles = ({
16776
16808
  const files = Array.from(event.target.files ?? []);
16777
16809
  setUploadError(void 0);
16778
16810
  event.target.value = "";
16811
+ const serivce = env?.default_service;
16812
+ const xNode = service == "mms" && dataUser?.x_node;
16779
16813
  if (files.length === 0) return;
16780
16814
  const validFiles = files.filter((file) => validateFile(file));
16781
16815
  if (validFiles.length === 0) return;
@@ -16784,7 +16818,7 @@ var ButtonSelectFiles = ({
16784
16818
  validFiles.forEach((file) => formData.append("ufile", file));
16785
16819
  formData.append("model", String(model));
16786
16820
  formData.append("id", id ? String(id) : String(0));
16787
- await handleUpload(formData);
16821
+ await handleUpload(formData, serivce, xNode);
16788
16822
  } else {
16789
16823
  const file = validFiles[0];
16790
16824
  const formData = new FormData();
@@ -16792,7 +16826,7 @@ var ButtonSelectFiles = ({
16792
16826
  formData.append("thread_model", String(model));
16793
16827
  formData.append("thread_id", id ? String(id) : String(0));
16794
16828
  formData.append("is_pending", "true");
16795
- await handleUpload(formData);
16829
+ await handleUpload(formData, serivce, xNode);
16796
16830
  }
16797
16831
  };
16798
16832
  return /* @__PURE__ */ jsxs44(Fragment14, { children: [
@@ -495,9 +495,9 @@ declare const LayerLoading: () => JSX.Element;
495
495
 
496
496
  declare const LoadingSmall: () => JSX.Element;
497
497
 
498
- declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage }: any) => JSX.Element;
498
+ declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage, }: any) => JSX.Element;
499
499
 
500
- declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, }: any) => JSX.Element;
500
+ declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, env, service, user, }: any) => JSX.Element;
501
501
 
502
502
  interface VideoPlayerProps {
503
503
  src: string;
package/dist/widgets.d.ts CHANGED
@@ -495,9 +495,9 @@ declare const LayerLoading: () => JSX.Element;
495
495
 
496
496
  declare const LoadingSmall: () => JSX.Element;
497
497
 
498
- declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage }: any) => JSX.Element;
498
+ declare const RenderFiles: ({ selectedFiles, setSelectedFiles, useGetImage, }: any) => JSX.Element;
499
499
 
500
- declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, }: any) => JSX.Element;
500
+ declare const ButtonSelectFiles: ({ fileInputRef, selectedFiles, setSelectedFiles, setUploadError, model, id, widget, useUploadImage, useUploadFile, env, service, user, }: any) => JSX.Element;
501
501
 
502
502
  interface VideoPlayerProps {
503
503
  src: string;
package/dist/widgets.js CHANGED
@@ -15922,7 +15922,13 @@ var VideoPlayer = ({ src }) => {
15922
15922
 
15923
15923
  // src/widgets/common/render-files.tsx
15924
15924
  var import_jsx_runtime68 = require("react/jsx-runtime");
15925
- var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage }) => {
15925
+ var ImageItem = ({
15926
+ filename,
15927
+ checksum,
15928
+ index: index4,
15929
+ src = null,
15930
+ useGetImage
15931
+ }) => {
15926
15932
  const { data: image } = useGetImage({
15927
15933
  data: { filename, checksum },
15928
15934
  queryKey: [`get-image-${""}`],
@@ -15933,7 +15939,7 @@ var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage })
15933
15939
  {
15934
15940
  src: image || src,
15935
15941
  alt: filename,
15936
- className: "w-32 h-32 object-cover rounded-md"
15942
+ className: "w-32 h-32 object-cover rounded-md cursor-pointer"
15937
15943
  }
15938
15944
  ) }, index4);
15939
15945
  };
@@ -15973,22 +15979,35 @@ var FileItem = (props) => {
15973
15979
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
15974
15980
  "div",
15975
15981
  {
15976
- className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit group/file",
15982
+ className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit",
15977
15983
  children: [
15978
15984
  renderFile(),
15979
15985
  handleRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
15980
15986
  "div",
15981
15987
  {
15988
+ style: {
15989
+ position: "absolute",
15990
+ top: 0,
15991
+ right: 0,
15992
+ backgroundColor: "rgba(0,0,0,0.2)"
15993
+ },
15982
15994
  onClick: () => handleRemoveFile(index4),
15983
- className: "cursor-pointer absolute right-0 top-0 p-2 hidden group-hover/file:block bg-[rgba(0,0,0,0.2)]",
15995
+ className: "cursor-pointer p-2 hidden group-hover:block",
15984
15996
  children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DeleteIcon, {})
15985
15997
  }
15986
15998
  ),
15987
15999
  !handleRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
15988
16000
  "span",
15989
16001
  {
16002
+ style: {
16003
+ position: "absolute",
16004
+ top: 0,
16005
+ right: 0,
16006
+ backgroundColor: "rgba(0,0,0,0.2)",
16007
+ zIndex: 10
16008
+ },
15990
16009
  onClick: (e3) => handleFileDownload(e3, src, filename),
15991
- className: "absolute top-0 right-0 z-10 hidden group-hover/file:block cursor-pointer p-2 text-white bg-[rgba(0,0,0,0.2)]",
16010
+ className: "hidden group-hover:block cursor-pointer p-2 text-white ",
15992
16011
  children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DownloadIcon, {})
15993
16012
  }
15994
16013
  )
@@ -16017,7 +16036,11 @@ var downloadFile = async (url, filename) => {
16017
16036
  console.error("File download failed:", error2);
16018
16037
  }
16019
16038
  };
16020
- var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16039
+ var RenderFiles = ({
16040
+ selectedFiles,
16041
+ setSelectedFiles,
16042
+ useGetImage
16043
+ }) => {
16021
16044
  const handleRemoveFile = (index4) => {
16022
16045
  if (setSelectedFiles) {
16023
16046
  const files = selectedFiles.filter((_2, i3) => i3 !== index4);
@@ -16041,7 +16064,7 @@ var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
16041
16064
  useGetImage
16042
16065
  },
16043
16066
  index4
16044
- ) });
16067
+ ) }, file?.id ?? index4);
16045
16068
  }) });
16046
16069
  };
16047
16070
 
@@ -16241,7 +16264,10 @@ var ButtonSelectFiles = ({
16241
16264
  id,
16242
16265
  widget,
16243
16266
  useUploadImage,
16244
- useUploadFile
16267
+ useUploadFile,
16268
+ env,
16269
+ service,
16270
+ user
16245
16271
  }) => {
16246
16272
  const { t: t3 } = useI18n();
16247
16273
  const ALLOWED_TYPES = [
@@ -16258,6 +16284,7 @@ var ButtonSelectFiles = ({
16258
16284
  const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
16259
16285
  const isBinary = widget === "many2many_binary";
16260
16286
  const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
16287
+ const dataUser = user?.userProfile?.data;
16261
16288
  const validateFile = (file) => {
16262
16289
  if (!ALLOWED_TYPES.includes(file.type)) {
16263
16290
  setUploadError(t3("file_accept_single"));
@@ -16277,9 +16304,13 @@ var ButtonSelectFiles = ({
16277
16304
  }
16278
16305
  return true;
16279
16306
  };
16280
- const handleUpload = async (formData) => {
16307
+ const handleUpload = async (formData, service2, xNode) => {
16281
16308
  mutate(
16282
- { formData },
16309
+ {
16310
+ formData,
16311
+ service: service2,
16312
+ xNode
16313
+ },
16283
16314
  {
16284
16315
  onSuccess: (data) => {
16285
16316
  let newFiles = [];
@@ -16294,7 +16325,8 @@ var ButtonSelectFiles = ({
16294
16325
  });
16295
16326
  y2.success(instance.t("upload_success"));
16296
16327
  },
16297
- onError: () => {
16328
+ onError: (err) => {
16329
+ console.log("data", err);
16298
16330
  y2.error(instance.t("upload_failure"));
16299
16331
  }
16300
16332
  }
@@ -16304,6 +16336,8 @@ var ButtonSelectFiles = ({
16304
16336
  const files = Array.from(event.target.files ?? []);
16305
16337
  setUploadError(void 0);
16306
16338
  event.target.value = "";
16339
+ const serivce = env?.default_service;
16340
+ const xNode = service == "mms" && dataUser?.x_node;
16307
16341
  if (files.length === 0) return;
16308
16342
  const validFiles = files.filter((file) => validateFile(file));
16309
16343
  if (validFiles.length === 0) return;
@@ -16312,7 +16346,7 @@ var ButtonSelectFiles = ({
16312
16346
  validFiles.forEach((file) => formData.append("ufile", file));
16313
16347
  formData.append("model", String(model));
16314
16348
  formData.append("id", id ? String(id) : String(0));
16315
- await handleUpload(formData);
16349
+ await handleUpload(formData, serivce, xNode);
16316
16350
  } else {
16317
16351
  const file = validFiles[0];
16318
16352
  const formData = new FormData();
@@ -16320,7 +16354,7 @@ var ButtonSelectFiles = ({
16320
16354
  formData.append("thread_model", String(model));
16321
16355
  formData.append("thread_id", id ? String(id) : String(0));
16322
16356
  formData.append("is_pending", "true");
16323
- await handleUpload(formData);
16357
+ await handleUpload(formData, serivce, xNode);
16324
16358
  }
16325
16359
  };
16326
16360
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
package/dist/widgets.mjs CHANGED
@@ -15859,7 +15859,13 @@ var VideoPlayer = ({ src }) => {
15859
15859
 
15860
15860
  // src/widgets/common/render-files.tsx
15861
15861
  import { jsx as jsx68, jsxs as jsxs43 } from "react/jsx-runtime";
15862
- var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage }) => {
15862
+ var ImageItem = ({
15863
+ filename,
15864
+ checksum,
15865
+ index: index4,
15866
+ src = null,
15867
+ useGetImage
15868
+ }) => {
15863
15869
  const { data: image } = useGetImage({
15864
15870
  data: { filename, checksum },
15865
15871
  queryKey: [`get-image-${""}`],
@@ -15870,7 +15876,7 @@ var ImageItem = ({ filename, checksum, index: index4, src = null, useGetImage })
15870
15876
  {
15871
15877
  src: image || src,
15872
15878
  alt: filename,
15873
- className: "w-32 h-32 object-cover rounded-md"
15879
+ className: "w-32 h-32 object-cover rounded-md cursor-pointer"
15874
15880
  }
15875
15881
  ) }, index4);
15876
15882
  };
@@ -15910,22 +15916,35 @@ var FileItem = (props) => {
15910
15916
  return /* @__PURE__ */ jsxs43(
15911
15917
  "div",
15912
15918
  {
15913
- className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit group/file",
15919
+ className: "flex relative items-center overflow-hidden justify-between group rounded-md w-fit",
15914
15920
  children: [
15915
15921
  renderFile(),
15916
15922
  handleRemoveFile && /* @__PURE__ */ jsx68(
15917
15923
  "div",
15918
15924
  {
15925
+ style: {
15926
+ position: "absolute",
15927
+ top: 0,
15928
+ right: 0,
15929
+ backgroundColor: "rgba(0,0,0,0.2)"
15930
+ },
15919
15931
  onClick: () => handleRemoveFile(index4),
15920
- className: "cursor-pointer absolute right-0 top-0 p-2 hidden group-hover/file:block bg-[rgba(0,0,0,0.2)]",
15932
+ className: "cursor-pointer p-2 hidden group-hover:block",
15921
15933
  children: /* @__PURE__ */ jsx68(DeleteIcon, {})
15922
15934
  }
15923
15935
  ),
15924
15936
  !handleRemoveFile && /* @__PURE__ */ jsx68(
15925
15937
  "span",
15926
15938
  {
15939
+ style: {
15940
+ position: "absolute",
15941
+ top: 0,
15942
+ right: 0,
15943
+ backgroundColor: "rgba(0,0,0,0.2)",
15944
+ zIndex: 10
15945
+ },
15927
15946
  onClick: (e3) => handleFileDownload(e3, src, filename),
15928
- className: "absolute top-0 right-0 z-10 hidden group-hover/file:block cursor-pointer p-2 text-white bg-[rgba(0,0,0,0.2)]",
15947
+ className: "hidden group-hover:block cursor-pointer p-2 text-white ",
15929
15948
  children: /* @__PURE__ */ jsx68(DownloadIcon, {})
15930
15949
  }
15931
15950
  )
@@ -15954,7 +15973,11 @@ var downloadFile = async (url, filename) => {
15954
15973
  console.error("File download failed:", error2);
15955
15974
  }
15956
15975
  };
15957
- var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
15976
+ var RenderFiles = ({
15977
+ selectedFiles,
15978
+ setSelectedFiles,
15979
+ useGetImage
15980
+ }) => {
15958
15981
  const handleRemoveFile = (index4) => {
15959
15982
  if (setSelectedFiles) {
15960
15983
  const files = selectedFiles.filter((_2, i3) => i3 !== index4);
@@ -15978,7 +16001,7 @@ var RenderFiles = ({ selectedFiles, setSelectedFiles, useGetImage }) => {
15978
16001
  useGetImage
15979
16002
  },
15980
16003
  index4
15981
- ) });
16004
+ ) }, file?.id ?? index4);
15982
16005
  }) });
15983
16006
  };
15984
16007
 
@@ -16178,7 +16201,10 @@ var ButtonSelectFiles = ({
16178
16201
  id,
16179
16202
  widget,
16180
16203
  useUploadImage,
16181
- useUploadFile
16204
+ useUploadFile,
16205
+ env,
16206
+ service,
16207
+ user
16182
16208
  }) => {
16183
16209
  const { t: t3 } = useI18n();
16184
16210
  const ALLOWED_TYPES = [
@@ -16195,6 +16221,7 @@ var ButtonSelectFiles = ({
16195
16221
  const MAX_TOTAL_SIZE = 50 * 1024 * 1024;
16196
16222
  const isBinary = widget === "many2many_binary";
16197
16223
  const { mutate, isPending } = isBinary ? useUploadFile() : useUploadImage();
16224
+ const dataUser = user?.userProfile?.data;
16198
16225
  const validateFile = (file) => {
16199
16226
  if (!ALLOWED_TYPES.includes(file.type)) {
16200
16227
  setUploadError(t3("file_accept_single"));
@@ -16214,9 +16241,13 @@ var ButtonSelectFiles = ({
16214
16241
  }
16215
16242
  return true;
16216
16243
  };
16217
- const handleUpload = async (formData) => {
16244
+ const handleUpload = async (formData, service2, xNode) => {
16218
16245
  mutate(
16219
- { formData },
16246
+ {
16247
+ formData,
16248
+ service: service2,
16249
+ xNode
16250
+ },
16220
16251
  {
16221
16252
  onSuccess: (data) => {
16222
16253
  let newFiles = [];
@@ -16231,7 +16262,8 @@ var ButtonSelectFiles = ({
16231
16262
  });
16232
16263
  y2.success(instance.t("upload_success"));
16233
16264
  },
16234
- onError: () => {
16265
+ onError: (err) => {
16266
+ console.log("data", err);
16235
16267
  y2.error(instance.t("upload_failure"));
16236
16268
  }
16237
16269
  }
@@ -16241,6 +16273,8 @@ var ButtonSelectFiles = ({
16241
16273
  const files = Array.from(event.target.files ?? []);
16242
16274
  setUploadError(void 0);
16243
16275
  event.target.value = "";
16276
+ const serivce = env?.default_service;
16277
+ const xNode = service == "mms" && dataUser?.x_node;
16244
16278
  if (files.length === 0) return;
16245
16279
  const validFiles = files.filter((file) => validateFile(file));
16246
16280
  if (validFiles.length === 0) return;
@@ -16249,7 +16283,7 @@ var ButtonSelectFiles = ({
16249
16283
  validFiles.forEach((file) => formData.append("ufile", file));
16250
16284
  formData.append("model", String(model));
16251
16285
  formData.append("id", id ? String(id) : String(0));
16252
- await handleUpload(formData);
16286
+ await handleUpload(formData, serivce, xNode);
16253
16287
  } else {
16254
16288
  const file = validFiles[0];
16255
16289
  const formData = new FormData();
@@ -16257,7 +16291,7 @@ var ButtonSelectFiles = ({
16257
16291
  formData.append("thread_model", String(model));
16258
16292
  formData.append("thread_id", id ? String(id) : String(0));
16259
16293
  formData.append("is_pending", "true");
16260
- await handleUpload(formData);
16294
+ await handleUpload(formData, serivce, xNode);
16261
16295
  }
16262
16296
  };
16263
16297
  return /* @__PURE__ */ jsxs44(Fragment14, { children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/sme-widget-ui",
3
- "version": "1.8.10",
3
+ "version": "1.9.1",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",