@fctc/widget-logic 3.7.2 → 3.7.4

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
@@ -5911,25 +5911,7 @@ var downLoadBinaryController = (props) => {
5911
5911
  const { value, defaultValue, formValues } = props;
5912
5912
  const handleFileDownload = async (e) => {
5913
5913
  e.stopPropagation();
5914
- await downloadFile(value || defaultValue, formValues?.name);
5915
- };
5916
- const downloadFile = async (url, filename) => {
5917
- try {
5918
- const response = await fetch(url);
5919
- if (response) {
5920
- const blob = await response.blob();
5921
- const urlBlob = window.URL.createObjectURL(blob);
5922
- const link = document.createElement("a");
5923
- link.href = urlBlob;
5924
- link.download = filename || "downloaded-file";
5925
- document.body.appendChild(link);
5926
- link.click();
5927
- document.body.removeChild(link);
5928
- window.URL.revokeObjectURL(urlBlob);
5929
- }
5930
- } catch (error) {
5931
- console.error("File download failed:", error);
5932
- }
5914
+ await (0, utils_exports.downloadFile)(value || defaultValue, formValues?.name);
5933
5915
  };
5934
5916
  return {
5935
5917
  handleFileDownload
@@ -6818,12 +6800,12 @@ var dateFieldController = (props) => {
6818
6800
 
6819
6801
  // src/widget/basic/copy-link-button/controller.ts
6820
6802
  var import_react21 = require("react");
6821
- var import_utils13 = require("@fctc/interface-logic/utils");
6803
+ var import_utils14 = require("@fctc/interface-logic/utils");
6822
6804
  var copyLinkButtonController = (props) => {
6823
6805
  const { value, defaultValue } = props;
6824
6806
  const [isCopied, setIsCopied] = (0, import_react21.useState)(false);
6825
6807
  const handleCopyToClipboard = async (value2) => {
6826
- await (0, import_utils13.copyTextToClipboard)(value2);
6808
+ await (0, import_utils14.copyTextToClipboard)(value2);
6827
6809
  setIsCopied(true);
6828
6810
  setTimeout(() => setIsCopied(false), 2e3);
6829
6811
  };
@@ -6836,12 +6818,12 @@ var copyLinkButtonController = (props) => {
6836
6818
  };
6837
6819
 
6838
6820
  // src/widget/basic/color-field/color-controller.ts
6839
- var import_utils14 = require("@fctc/interface-logic/utils");
6821
+ var import_utils15 = require("@fctc/interface-logic/utils");
6840
6822
  var colorFieldController = (props) => {
6841
6823
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
6842
6824
  const { env } = (0, provider_exports.useEnv)();
6843
6825
  const { useSave: useSave3 } = (0, provider_exports.useService)();
6844
- const _context = { ...(0, import_utils14.evalJSONContext)(actionData?.context) || {} };
6826
+ const _context = { ...(0, import_utils15.evalJSONContext)(actionData?.context) || {} };
6845
6827
  const contextObject = { ...env.context, ..._context };
6846
6828
  const idDefault = isForm ? idForm : formValues?.id;
6847
6829
  const { mutate: onSave } = useSave3();
@@ -6870,7 +6852,7 @@ var colorFieldController = (props) => {
6870
6852
 
6871
6853
  // src/widget/basic/binary-field/controller.ts
6872
6854
  var import_react22 = require("react");
6873
- var import_utils15 = require("@fctc/interface-logic/utils");
6855
+ var import_utils16 = require("@fctc/interface-logic/utils");
6874
6856
  var binaryFieldController = (props) => {
6875
6857
  const { name, methods, readonly = false, value } = props;
6876
6858
  const inputId = (0, import_react22.useId)();
@@ -6927,11 +6909,11 @@ var binaryFieldController = (props) => {
6927
6909
  };
6928
6910
  const checkIsImageLink = (url) => {
6929
6911
  const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|svg|tiff|ico)$/i;
6930
- return imageExtensions.test(url) || (0, import_utils15.isBase64Image)(url) || isBlobUrl(url);
6912
+ return imageExtensions.test(url) || (0, import_utils16.isBase64Image)(url) || isBlobUrl(url);
6931
6913
  };
6932
6914
  const getImageBase64WithMimeType = (base64) => {
6933
6915
  if (typeof base64 !== "string" || base64.length < 10) return null;
6934
- if ((0, import_utils15.isBase64Image)(base64)) return base64;
6916
+ if ((0, import_utils16.isBase64Image)(base64)) return base64;
6935
6917
  let mimeType = null;
6936
6918
  if (base64.startsWith("iVBORw0KGgo")) mimeType = "image/png";
6937
6919
  else if (base64.startsWith("/9j/")) mimeType = "image/jpeg";
@@ -7034,7 +7016,7 @@ var tableHeadController = (props) => {
7034
7016
 
7035
7017
  // src/widget/advance/table/table-view/controller.ts
7036
7018
  var import_react24 = require("react");
7037
- var import_utils17 = require("@fctc/interface-logic/utils");
7019
+ var import_utils18 = require("@fctc/interface-logic/utils");
7038
7020
  var tableController = ({ data }) => {
7039
7021
  const [rows, setRows] = (0, import_react24.useState)([]);
7040
7022
  const [columnVisibility, setColumnVisibility] = (0, import_react24.useState)({});
@@ -7077,10 +7059,10 @@ var tableController = ({ data }) => {
7077
7059
  const columns = (0, import_react24.useMemo)(() => {
7078
7060
  try {
7079
7061
  return mergeFields?.filter((item) => {
7080
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(
7062
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils18.domainHelper.matchDomains(
7081
7063
  data.context,
7082
7064
  item?.column_invisible
7083
- ) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
7065
+ ) : item?.invisible ? import_utils18.domainHelper.matchDomains(data.context, item?.invisible) : false);
7084
7066
  })?.map((field) => {
7085
7067
  const overridden = columnVisibility[field?.name];
7086
7068
  return {
@@ -7245,7 +7227,7 @@ var tableGroupController = (props) => {
7245
7227
 
7246
7228
  // src/widget/advance/search/controller.ts
7247
7229
  var import_constants3 = require("@fctc/interface-logic/constants");
7248
- var import_utils19 = require("@fctc/interface-logic/utils");
7230
+ var import_utils20 = require("@fctc/interface-logic/utils");
7249
7231
  var import_moment2 = __toESM(require_moment());
7250
7232
  var import_react26 = require("react");
7251
7233
  var searchController = ({
@@ -7262,9 +7244,9 @@ var searchController = ({
7262
7244
  const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
7263
7245
  const [searchString, setSearchString] = (0, import_react26.useState)("");
7264
7246
  const [searchMap, setSearchMap] = (0, import_react26.useState)({});
7265
- const actionContext = typeof context === "string" ? (0, import_utils19.evalJSONContext)(context) : context;
7247
+ const actionContext = typeof context === "string" ? (0, import_utils20.evalJSONContext)(context) : context;
7266
7248
  const contextSearch = { ...env.context, ...actionContext };
7267
- const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils19.evalJSONDomain)(domain, contextSearch) : [];
7249
+ const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils20.evalJSONDomain)(domain, contextSearch) : [];
7268
7250
  const clearSearch = () => {
7269
7251
  setFilterBy([]);
7270
7252
  setGroupBy([]);
@@ -7279,7 +7261,7 @@ var searchController = ({
7279
7261
  const dataModel = viewData?.models?.[model];
7280
7262
  const searchViews = viewData?.views?.search;
7281
7263
  const searchByItems = searchViews?.search_by?.filter(
7282
- (item) => !import_utils19.domainHelper.matchDomains(contextSearch, item.invisible)
7264
+ (item) => !import_utils20.domainHelper.matchDomains(contextSearch, item.invisible)
7283
7265
  )?.map(
7284
7266
  ({ string, name, filter_domain, operator, widget }, index) => ({
7285
7267
  dataIndex: index,
@@ -7292,10 +7274,10 @@ var searchController = ({
7292
7274
  })
7293
7275
  );
7294
7276
  const filterByItems = searchViews?.filter_by.filter((item) => {
7295
- return !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible);
7277
+ return !import_utils20.domainHelper.matchDomains(contextSearch, item?.invisible);
7296
7278
  })?.map((item) => ({ ...item, active: false }));
7297
7279
  const groupByItems = searchViews?.group_by.filter(
7298
- (item) => !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible)
7280
+ (item) => !import_utils20.domainHelper.matchDomains(contextSearch, item?.invisible)
7299
7281
  ).map((item) => ({
7300
7282
  ...item,
7301
7283
  string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
@@ -7372,14 +7354,14 @@ var searchController = ({
7372
7354
  }
7373
7355
  let valueDomainItem = value?.value;
7374
7356
  if (value?.modelType === "date") {
7375
- valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value);
7357
+ valueDomainItem = (0, import_utils20.validateAndParseDate)(value?.value);
7376
7358
  } else if (value?.modelType === "datetime") {
7377
7359
  if (value?.operator === "<=" || value?.operator === "<") {
7378
- const parsedDate = (0, import_utils19.validateAndParseDate)(value?.value, true);
7360
+ const parsedDate = (0, import_utils20.validateAndParseDate)(value?.value, true);
7379
7361
  const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
7380
7362
  valueDomainItem = hasTime ? (0, import_moment2.default)(parsedDate).format("YYYY-MM-DD HH:mm:ss") : (0, import_moment2.default)(parsedDate).add(1, "day").subtract(1, "second").format("YYYY-MM-DD HH:mm:ss");
7381
7363
  } else {
7382
- valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value, true);
7364
+ valueDomainItem = (0, import_utils20.validateAndParseDate)(value?.value, true);
7383
7365
  }
7384
7366
  }
7385
7367
  const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
@@ -7458,7 +7440,7 @@ var searchController = ({
7458
7440
  }, [searchMap]);
7459
7441
  const handleAddTagSearch = (tag) => {
7460
7442
  const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
7461
- const domainFormat = new import_utils19.domainHelper.Domain(domain2);
7443
+ const domainFormat = new import_utils20.domainHelper.Domain(domain2);
7462
7444
  if (type === import_constants3.SearchType.FILTER) {
7463
7445
  addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
7464
7446
  ...tag,
package/dist/index.mjs CHANGED
@@ -5992,25 +5992,7 @@ var downLoadBinaryController = (props) => {
5992
5992
  const { value, defaultValue, formValues } = props;
5993
5993
  const handleFileDownload = async (e) => {
5994
5994
  e.stopPropagation();
5995
- await downloadFile(value || defaultValue, formValues?.name);
5996
- };
5997
- const downloadFile = async (url, filename) => {
5998
- try {
5999
- const response = await fetch(url);
6000
- if (response) {
6001
- const blob = await response.blob();
6002
- const urlBlob = window.URL.createObjectURL(blob);
6003
- const link = document.createElement("a");
6004
- link.href = urlBlob;
6005
- link.download = filename || "downloaded-file";
6006
- document.body.appendChild(link);
6007
- link.click();
6008
- document.body.removeChild(link);
6009
- window.URL.revokeObjectURL(urlBlob);
6010
- }
6011
- } catch (error) {
6012
- console.error("File download failed:", error);
6013
- }
5995
+ await (0, utils_exports.downloadFile)(value || defaultValue, formValues?.name);
6014
5996
  };
6015
5997
  return {
6016
5998
  handleFileDownload
package/dist/widget.js CHANGED
@@ -5146,25 +5146,7 @@ var downLoadBinaryController = (props) => {
5146
5146
  const { value, defaultValue, formValues } = props;
5147
5147
  const handleFileDownload = async (e) => {
5148
5148
  e.stopPropagation();
5149
- await downloadFile(value || defaultValue, formValues?.name);
5150
- };
5151
- const downloadFile = async (url, filename) => {
5152
- try {
5153
- const response = await fetch(url);
5154
- if (response) {
5155
- const blob = await response.blob();
5156
- const urlBlob = window.URL.createObjectURL(blob);
5157
- const link = document.createElement("a");
5158
- link.href = urlBlob;
5159
- link.download = filename || "downloaded-file";
5160
- document.body.appendChild(link);
5161
- link.click();
5162
- document.body.removeChild(link);
5163
- window.URL.revokeObjectURL(urlBlob);
5164
- }
5165
- } catch (error) {
5166
- console.error("File download failed:", error);
5167
- }
5149
+ await (0, utils_exports.downloadFile)(value || defaultValue, formValues?.name);
5168
5150
  };
5169
5151
  return {
5170
5152
  handleFileDownload
@@ -6053,12 +6035,12 @@ var dateFieldController = (props) => {
6053
6035
 
6054
6036
  // src/widget/basic/copy-link-button/controller.ts
6055
6037
  var import_react21 = require("react");
6056
- var import_utils13 = require("@fctc/interface-logic/utils");
6038
+ var import_utils14 = require("@fctc/interface-logic/utils");
6057
6039
  var copyLinkButtonController = (props) => {
6058
6040
  const { value, defaultValue } = props;
6059
6041
  const [isCopied, setIsCopied] = (0, import_react21.useState)(false);
6060
6042
  const handleCopyToClipboard = async (value2) => {
6061
- await (0, import_utils13.copyTextToClipboard)(value2);
6043
+ await (0, import_utils14.copyTextToClipboard)(value2);
6062
6044
  setIsCopied(true);
6063
6045
  setTimeout(() => setIsCopied(false), 2e3);
6064
6046
  };
@@ -6071,12 +6053,12 @@ var copyLinkButtonController = (props) => {
6071
6053
  };
6072
6054
 
6073
6055
  // src/widget/basic/color-field/color-controller.ts
6074
- var import_utils14 = require("@fctc/interface-logic/utils");
6056
+ var import_utils15 = require("@fctc/interface-logic/utils");
6075
6057
  var colorFieldController = (props) => {
6076
6058
  const { value, isForm, name, formValues, idForm, model, actionData } = props;
6077
6059
  const { env } = (0, provider_exports.useEnv)();
6078
6060
  const { useSave: useSave3 } = (0, provider_exports.useService)();
6079
- const _context = { ...(0, import_utils14.evalJSONContext)(actionData?.context) || {} };
6061
+ const _context = { ...(0, import_utils15.evalJSONContext)(actionData?.context) || {} };
6080
6062
  const contextObject = { ...env.context, ..._context };
6081
6063
  const idDefault = isForm ? idForm : formValues?.id;
6082
6064
  const { mutate: onSave } = useSave3();
@@ -6105,7 +6087,7 @@ var colorFieldController = (props) => {
6105
6087
 
6106
6088
  // src/widget/basic/binary-field/controller.ts
6107
6089
  var import_react22 = require("react");
6108
- var import_utils15 = require("@fctc/interface-logic/utils");
6090
+ var import_utils16 = require("@fctc/interface-logic/utils");
6109
6091
  var binaryFieldController = (props) => {
6110
6092
  const { name, methods, readonly = false, value } = props;
6111
6093
  const inputId = (0, import_react22.useId)();
@@ -6162,11 +6144,11 @@ var binaryFieldController = (props) => {
6162
6144
  };
6163
6145
  const checkIsImageLink = (url) => {
6164
6146
  const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|svg|tiff|ico)$/i;
6165
- return imageExtensions.test(url) || (0, import_utils15.isBase64Image)(url) || isBlobUrl(url);
6147
+ return imageExtensions.test(url) || (0, import_utils16.isBase64Image)(url) || isBlobUrl(url);
6166
6148
  };
6167
6149
  const getImageBase64WithMimeType = (base64) => {
6168
6150
  if (typeof base64 !== "string" || base64.length < 10) return null;
6169
- if ((0, import_utils15.isBase64Image)(base64)) return base64;
6151
+ if ((0, import_utils16.isBase64Image)(base64)) return base64;
6170
6152
  let mimeType = null;
6171
6153
  if (base64.startsWith("iVBORw0KGgo")) mimeType = "image/png";
6172
6154
  else if (base64.startsWith("/9j/")) mimeType = "image/jpeg";
@@ -6269,7 +6251,7 @@ var tableHeadController = (props) => {
6269
6251
 
6270
6252
  // src/widget/advance/table/table-view/controller.ts
6271
6253
  var import_react24 = require("react");
6272
- var import_utils17 = require("@fctc/interface-logic/utils");
6254
+ var import_utils18 = require("@fctc/interface-logic/utils");
6273
6255
  var tableController = ({ data }) => {
6274
6256
  const [rows, setRows] = (0, import_react24.useState)([]);
6275
6257
  const [columnVisibility, setColumnVisibility] = (0, import_react24.useState)({});
@@ -6312,10 +6294,10 @@ var tableController = ({ data }) => {
6312
6294
  const columns = (0, import_react24.useMemo)(() => {
6313
6295
  try {
6314
6296
  return mergeFields?.filter((item) => {
6315
- return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(
6297
+ return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils18.domainHelper.matchDomains(
6316
6298
  data.context,
6317
6299
  item?.column_invisible
6318
- ) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
6300
+ ) : item?.invisible ? import_utils18.domainHelper.matchDomains(data.context, item?.invisible) : false);
6319
6301
  })?.map((field) => {
6320
6302
  const overridden = columnVisibility[field?.name];
6321
6303
  return {
@@ -6480,7 +6462,7 @@ var tableGroupController = (props) => {
6480
6462
 
6481
6463
  // src/widget/advance/search/controller.ts
6482
6464
  var import_constants3 = require("@fctc/interface-logic/constants");
6483
- var import_utils19 = require("@fctc/interface-logic/utils");
6465
+ var import_utils20 = require("@fctc/interface-logic/utils");
6484
6466
  var import_moment2 = __toESM(require_moment());
6485
6467
  var import_react26 = require("react");
6486
6468
  var searchController = ({
@@ -6497,9 +6479,9 @@ var searchController = ({
6497
6479
  const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
6498
6480
  const [searchString, setSearchString] = (0, import_react26.useState)("");
6499
6481
  const [searchMap, setSearchMap] = (0, import_react26.useState)({});
6500
- const actionContext = typeof context === "string" ? (0, import_utils19.evalJSONContext)(context) : context;
6482
+ const actionContext = typeof context === "string" ? (0, import_utils20.evalJSONContext)(context) : context;
6501
6483
  const contextSearch = { ...env.context, ...actionContext };
6502
- const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils19.evalJSONDomain)(domain, contextSearch) : [];
6484
+ const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils20.evalJSONDomain)(domain, contextSearch) : [];
6503
6485
  const clearSearch = () => {
6504
6486
  setFilterBy([]);
6505
6487
  setGroupBy([]);
@@ -6514,7 +6496,7 @@ var searchController = ({
6514
6496
  const dataModel = viewData?.models?.[model];
6515
6497
  const searchViews = viewData?.views?.search;
6516
6498
  const searchByItems = searchViews?.search_by?.filter(
6517
- (item) => !import_utils19.domainHelper.matchDomains(contextSearch, item.invisible)
6499
+ (item) => !import_utils20.domainHelper.matchDomains(contextSearch, item.invisible)
6518
6500
  )?.map(
6519
6501
  ({ string, name, filter_domain, operator, widget }, index) => ({
6520
6502
  dataIndex: index,
@@ -6527,10 +6509,10 @@ var searchController = ({
6527
6509
  })
6528
6510
  );
6529
6511
  const filterByItems = searchViews?.filter_by.filter((item) => {
6530
- return !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible);
6512
+ return !import_utils20.domainHelper.matchDomains(contextSearch, item?.invisible);
6531
6513
  })?.map((item) => ({ ...item, active: false }));
6532
6514
  const groupByItems = searchViews?.group_by.filter(
6533
- (item) => !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible)
6515
+ (item) => !import_utils20.domainHelper.matchDomains(contextSearch, item?.invisible)
6534
6516
  ).map((item) => ({
6535
6517
  ...item,
6536
6518
  string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
@@ -6607,14 +6589,14 @@ var searchController = ({
6607
6589
  }
6608
6590
  let valueDomainItem = value?.value;
6609
6591
  if (value?.modelType === "date") {
6610
- valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value);
6592
+ valueDomainItem = (0, import_utils20.validateAndParseDate)(value?.value);
6611
6593
  } else if (value?.modelType === "datetime") {
6612
6594
  if (value?.operator === "<=" || value?.operator === "<") {
6613
- const parsedDate = (0, import_utils19.validateAndParseDate)(value?.value, true);
6595
+ const parsedDate = (0, import_utils20.validateAndParseDate)(value?.value, true);
6614
6596
  const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
6615
6597
  valueDomainItem = hasTime ? (0, import_moment2.default)(parsedDate).format("YYYY-MM-DD HH:mm:ss") : (0, import_moment2.default)(parsedDate).add(1, "day").subtract(1, "second").format("YYYY-MM-DD HH:mm:ss");
6616
6598
  } else {
6617
- valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value, true);
6599
+ valueDomainItem = (0, import_utils20.validateAndParseDate)(value?.value, true);
6618
6600
  }
6619
6601
  }
6620
6602
  const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
@@ -6693,7 +6675,7 @@ var searchController = ({
6693
6675
  }, [searchMap]);
6694
6676
  const handleAddTagSearch = (tag) => {
6695
6677
  const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
6696
- const domainFormat = new import_utils19.domainHelper.Domain(domain2);
6678
+ const domainFormat = new import_utils20.domainHelper.Domain(domain2);
6697
6679
  if (type === import_constants3.SearchType.FILTER) {
6698
6680
  addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
6699
6681
  ...tag,
package/dist/widget.mjs CHANGED
@@ -5204,25 +5204,7 @@ var downLoadBinaryController = (props) => {
5204
5204
  const { value, defaultValue, formValues } = props;
5205
5205
  const handleFileDownload = async (e) => {
5206
5206
  e.stopPropagation();
5207
- await downloadFile(value || defaultValue, formValues?.name);
5208
- };
5209
- const downloadFile = async (url, filename) => {
5210
- try {
5211
- const response = await fetch(url);
5212
- if (response) {
5213
- const blob = await response.blob();
5214
- const urlBlob = window.URL.createObjectURL(blob);
5215
- const link = document.createElement("a");
5216
- link.href = urlBlob;
5217
- link.download = filename || "downloaded-file";
5218
- document.body.appendChild(link);
5219
- link.click();
5220
- document.body.removeChild(link);
5221
- window.URL.revokeObjectURL(urlBlob);
5222
- }
5223
- } catch (error) {
5224
- console.error("File download failed:", error);
5225
- }
5207
+ await (0, utils_exports.downloadFile)(value || defaultValue, formValues?.name);
5226
5208
  };
5227
5209
  return {
5228
5210
  handleFileDownload
package/package.json CHANGED
@@ -1,94 +1,94 @@
1
- {
2
- "name": "@fctc/widget-logic",
3
- "version": "3.7.2",
4
- "types": "dist/index.d.ts",
5
- "main": "dist/index.cjs",
6
- "module": "dist/index.mjs",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs"
12
- },
13
- "./hooks": {
14
- "types": "./dist/hooks.d.ts",
15
- "import": "./dist/hooks.mjs",
16
- "require": "./dist/hooks.cjs"
17
- },
18
- "./widget": {
19
- "types": "./dist/widget.d.ts",
20
- "import": "./dist/widget.mjs",
21
- "require": "./dist/widget.cjs"
22
- },
23
- "./icons": {
24
- "types": "./dist/icons.d.ts",
25
- "import": "./dist/icons.mjs",
26
- "require": "./dist/icons.cjs"
27
- },
28
- "./utils": {
29
- "types": "./dist/utils.d.ts",
30
- "import": "./dist/utils.mjs",
31
- "require": "./dist/utils.cjs"
32
- },
33
- "./store": {
34
- "types": "./dist/store.d.ts",
35
- "import": "./dist/store.mjs",
36
- "require": "./dist/store.cjs"
37
- },
38
- "./config": {
39
- "types": "./dist/config.d.ts",
40
- "import": "./dist/config.mjs",
41
- "require": "./dist/config.cjs"
42
- },
43
- "./constants": {
44
- "types": "./dist/constants.d.ts",
45
- "import": "./dist/constants.mjs",
46
- "require": "./dist/constants.cjs"
47
- },
48
- "./environment": {
49
- "types": "./dist/environment.d.ts",
50
- "import": "./dist/environment.mjs",
51
- "require": "./dist/environment.cjs"
52
- },
53
- "./provider": {
54
- "types": "./dist/provider.d.ts",
55
- "import": "./dist/provider.mjs",
56
- "require": "./dist/provider.cjs"
57
- },
58
- "./services": {
59
- "types": "./dist/services.d.ts",
60
- "import": "./dist/services.mjs",
61
- "require": "./dist/services.cjs"
62
- },
63
- "./types": {
64
- "types": "./dist/types.d.ts",
65
- "import": "./dist/types.mjs",
66
- "require": "./dist/types.cjs"
67
- }
68
- },
69
- "files": [
70
- "dist"
71
- ],
72
- "scripts": {
73
- "build": "tsup",
74
- "test": "jest"
75
- },
76
- "dependencies": {
77
- "@fctc/interface-logic": "^3.2.6",
78
- "@headlessui/react": "^2.2.6",
79
- "@tanstack/react-query": "^5.84.0",
80
- "i18next": "^25.3.2",
81
- "i18next-browser-languagedetector": "^8.2.0",
82
- "react-i18next": "^15.6.1",
83
- "react-tooltip": "^5.29.1"
84
- },
85
- "devDependencies": {
86
- "@types/react": "^18.3.1",
87
- "jest": "^29.7.0",
88
- "react": "18.0.0",
89
- "tsup": "^8.0.0",
90
- "typescript": "^5.8.2"
91
- },
92
- "packageManager": "yarn@1.22.0",
93
- "peerDependencies": {}
94
- }
1
+ {
2
+ "name": "@fctc/widget-logic",
3
+ "version": "3.7.4",
4
+ "types": "dist/index.d.ts",
5
+ "main": "dist/index.cjs",
6
+ "module": "dist/index.mjs",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.mjs",
11
+ "require": "./dist/index.cjs"
12
+ },
13
+ "./hooks": {
14
+ "types": "./dist/hooks.d.ts",
15
+ "import": "./dist/hooks.mjs",
16
+ "require": "./dist/hooks.cjs"
17
+ },
18
+ "./widget": {
19
+ "types": "./dist/widget.d.ts",
20
+ "import": "./dist/widget.mjs",
21
+ "require": "./dist/widget.cjs"
22
+ },
23
+ "./icons": {
24
+ "types": "./dist/icons.d.ts",
25
+ "import": "./dist/icons.mjs",
26
+ "require": "./dist/icons.cjs"
27
+ },
28
+ "./utils": {
29
+ "types": "./dist/utils.d.ts",
30
+ "import": "./dist/utils.mjs",
31
+ "require": "./dist/utils.cjs"
32
+ },
33
+ "./store": {
34
+ "types": "./dist/store.d.ts",
35
+ "import": "./dist/store.mjs",
36
+ "require": "./dist/store.cjs"
37
+ },
38
+ "./config": {
39
+ "types": "./dist/config.d.ts",
40
+ "import": "./dist/config.mjs",
41
+ "require": "./dist/config.cjs"
42
+ },
43
+ "./constants": {
44
+ "types": "./dist/constants.d.ts",
45
+ "import": "./dist/constants.mjs",
46
+ "require": "./dist/constants.cjs"
47
+ },
48
+ "./environment": {
49
+ "types": "./dist/environment.d.ts",
50
+ "import": "./dist/environment.mjs",
51
+ "require": "./dist/environment.cjs"
52
+ },
53
+ "./provider": {
54
+ "types": "./dist/provider.d.ts",
55
+ "import": "./dist/provider.mjs",
56
+ "require": "./dist/provider.cjs"
57
+ },
58
+ "./services": {
59
+ "types": "./dist/services.d.ts",
60
+ "import": "./dist/services.mjs",
61
+ "require": "./dist/services.cjs"
62
+ },
63
+ "./types": {
64
+ "types": "./dist/types.d.ts",
65
+ "import": "./dist/types.mjs",
66
+ "require": "./dist/types.cjs"
67
+ }
68
+ },
69
+ "files": [
70
+ "dist"
71
+ ],
72
+ "scripts": {
73
+ "build": "tsup",
74
+ "test": "jest"
75
+ },
76
+ "dependencies": {
77
+ "@fctc/interface-logic": "^3.2.8",
78
+ "@headlessui/react": "^2.2.6",
79
+ "@tanstack/react-query": "^5.84.0",
80
+ "i18next": "^25.3.2",
81
+ "i18next-browser-languagedetector": "^8.2.0",
82
+ "react-i18next": "^15.6.1",
83
+ "react-tooltip": "^5.29.1"
84
+ },
85
+ "devDependencies": {
86
+ "@types/react": "^18.3.1",
87
+ "jest": "^29.7.0",
88
+ "react": "18.0.0",
89
+ "tsup": "^8.0.0",
90
+ "typescript": "^5.8.2"
91
+ },
92
+ "packageManager": "yarn@1.22.0",
93
+ "peerDependencies": {}
94
+ }