@fctc/widget-logic 1.1.5 → 1.1.6
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.d.mts +70 -19
- package/dist/index.d.ts +70 -19
- package/dist/index.js +158 -119
- package/dist/index.mjs +140 -87
- package/package.json +66 -66
package/dist/index.mjs
CHANGED
|
@@ -4914,7 +4914,7 @@ var many2oneFieldController = (props) => {
|
|
|
4914
4914
|
const queryKey = [`data_${relation}`, domainObject];
|
|
4915
4915
|
const {
|
|
4916
4916
|
data: dataOfSelection,
|
|
4917
|
-
refetch,
|
|
4917
|
+
// refetch,
|
|
4918
4918
|
isFetching
|
|
4919
4919
|
} = useGetSelection({
|
|
4920
4920
|
data,
|
|
@@ -4943,9 +4943,6 @@ var many2oneFieldController = (props) => {
|
|
|
4943
4943
|
});
|
|
4944
4944
|
}
|
|
4945
4945
|
}, [propValue]);
|
|
4946
|
-
const fetchMoreOptions = useCallback2(() => {
|
|
4947
|
-
refetch();
|
|
4948
|
-
}, [refetch]);
|
|
4949
4946
|
useEffect9(() => {
|
|
4950
4947
|
if (actionId) {
|
|
4951
4948
|
localStorage.setItem("aid", actionId);
|
|
@@ -5011,13 +5008,13 @@ var many2oneFieldController = (props) => {
|
|
|
5011
5008
|
isFetching,
|
|
5012
5009
|
isShowModalMany2Many,
|
|
5013
5010
|
options,
|
|
5014
|
-
fetchMoreOptions,
|
|
5011
|
+
// fetchMoreOptions,
|
|
5015
5012
|
domainModal,
|
|
5016
5013
|
tempSelectedOption,
|
|
5017
5014
|
setTempSelectedOption,
|
|
5018
5015
|
setDomainModal,
|
|
5019
5016
|
dataOfSelection,
|
|
5020
|
-
refetch,
|
|
5017
|
+
// refetch,
|
|
5021
5018
|
selectOptions,
|
|
5022
5019
|
optionsObject,
|
|
5023
5020
|
contextObject,
|
|
@@ -5057,32 +5054,44 @@ var many2oneButtonController = (props) => {
|
|
|
5057
5054
|
};
|
|
5058
5055
|
|
|
5059
5056
|
// src/widget/basic/many2many-field/controller.ts
|
|
5060
|
-
import { useEffect as
|
|
5057
|
+
import { useEffect as useEffect13, useMemo as useMemo10, useState as useState10 } from "react";
|
|
5061
5058
|
import {
|
|
5062
5059
|
evalJSONContext as evalJSONContext3,
|
|
5063
5060
|
formatSortingString as formatSortingString2,
|
|
5064
|
-
getEnv as
|
|
5065
|
-
selectSearch as
|
|
5061
|
+
getEnv as getEnv7,
|
|
5062
|
+
selectSearch as selectSearch5,
|
|
5066
5063
|
setFirstDomain,
|
|
5067
5064
|
setGroupByDomain,
|
|
5068
5065
|
setPage,
|
|
5069
5066
|
setViewDataStore,
|
|
5070
|
-
useAppDispatch as
|
|
5071
|
-
useAppSelector as
|
|
5067
|
+
useAppDispatch as useAppDispatch8,
|
|
5068
|
+
useAppSelector as useAppSelector6,
|
|
5072
5069
|
useGetFormView,
|
|
5073
|
-
useGetListData as
|
|
5070
|
+
useGetListData as useGetListData3,
|
|
5074
5071
|
useGetView as useGetView2,
|
|
5075
5072
|
useModel as useModel2
|
|
5076
5073
|
} from "@fctc/interface-logic";
|
|
5077
5074
|
|
|
5075
|
+
// src/widget/advance/table/table-body/controller.ts
|
|
5076
|
+
import { setSelectedRowKeys, useAppDispatch as useAppDispatch5 } from "@fctc/interface-logic";
|
|
5077
|
+
import { useEffect as useEffect10, useMemo as useMemo7 } from "react";
|
|
5078
|
+
|
|
5079
|
+
// src/widget/advance/table/table-head/controller.ts
|
|
5080
|
+
import {
|
|
5081
|
+
selectSearch as selectSearch2,
|
|
5082
|
+
setSelectedRowKeys as setSelectedRowKeys2,
|
|
5083
|
+
useAppDispatch as useAppDispatch6,
|
|
5084
|
+
useAppSelector as useAppSelector3
|
|
5085
|
+
} from "@fctc/interface-logic";
|
|
5086
|
+
|
|
5078
5087
|
// src/widget/advance/table/table-view/controller.ts
|
|
5079
5088
|
import {
|
|
5080
5089
|
domainHelper,
|
|
5081
5090
|
selectList as selectList2,
|
|
5082
|
-
selectSearch as
|
|
5083
|
-
useAppSelector as
|
|
5091
|
+
selectSearch as selectSearch3,
|
|
5092
|
+
useAppSelector as useAppSelector4
|
|
5084
5093
|
} from "@fctc/interface-logic";
|
|
5085
|
-
import { useEffect as
|
|
5094
|
+
import { useEffect as useEffect11, useMemo as useMemo8, useRef as useRef4, useState as useState8 } from "react";
|
|
5086
5095
|
var tableController = ({ data }) => {
|
|
5087
5096
|
const [rows, setRows] = useState8(data.records || []);
|
|
5088
5097
|
const [columns, setColumns] = useState8([]);
|
|
@@ -5113,7 +5122,7 @@ var tableController = ({ data }) => {
|
|
|
5113
5122
|
return item.display_name ? { ...transformedItem, item: item.display_name } : transformedItem;
|
|
5114
5123
|
});
|
|
5115
5124
|
};
|
|
5116
|
-
|
|
5125
|
+
useEffect11(() => {
|
|
5117
5126
|
setRows(transformData(data.records || null));
|
|
5118
5127
|
}, [data.records]);
|
|
5119
5128
|
const handleGetColumns = () => {
|
|
@@ -5134,7 +5143,7 @@ var tableController = ({ data }) => {
|
|
|
5134
5143
|
}
|
|
5135
5144
|
return cols;
|
|
5136
5145
|
};
|
|
5137
|
-
|
|
5146
|
+
useEffect11(() => {
|
|
5138
5147
|
const columns2 = handleGetColumns();
|
|
5139
5148
|
setColumns(columns2);
|
|
5140
5149
|
}, [data.records]);
|
|
@@ -5158,6 +5167,41 @@ var tableController = ({ data }) => {
|
|
|
5158
5167
|
};
|
|
5159
5168
|
};
|
|
5160
5169
|
|
|
5170
|
+
// src/widget/advance/table/table-group/controller.ts
|
|
5171
|
+
import {
|
|
5172
|
+
getEnv as getEnv6,
|
|
5173
|
+
selectList as selectList3,
|
|
5174
|
+
selectSearch as selectSearch4,
|
|
5175
|
+
setSelectedRowKeys as setSelectedRowKeys3,
|
|
5176
|
+
useAppDispatch as useAppDispatch7,
|
|
5177
|
+
useAppSelector as useAppSelector5,
|
|
5178
|
+
useGetListData as useGetListData2,
|
|
5179
|
+
useOdooDataTransform
|
|
5180
|
+
} from "@fctc/interface-logic";
|
|
5181
|
+
import { useEffect as useEffect12, useMemo as useMemo9, useState as useState9 } from "react";
|
|
5182
|
+
|
|
5183
|
+
// src/utils/i18n.ts
|
|
5184
|
+
import { initReactI18next } from "react-i18next";
|
|
5185
|
+
import i18n from "i18next";
|
|
5186
|
+
import LanguageDetector from "i18next-browser-languagedetector";
|
|
5187
|
+
i18n.use(LanguageDetector).use(initReactI18next).init({
|
|
5188
|
+
resources: {
|
|
5189
|
+
vi: { translation: vi },
|
|
5190
|
+
en: { translation: en }
|
|
5191
|
+
},
|
|
5192
|
+
fallbackLng: "vi",
|
|
5193
|
+
lng: "vi_VN",
|
|
5194
|
+
debug: false,
|
|
5195
|
+
nonExplicitSupportedLngs: true,
|
|
5196
|
+
interpolation: {
|
|
5197
|
+
escapeValue: false
|
|
5198
|
+
},
|
|
5199
|
+
detection: {
|
|
5200
|
+
caches: ["cookie"]
|
|
5201
|
+
}
|
|
5202
|
+
});
|
|
5203
|
+
var i18n_default = i18n;
|
|
5204
|
+
|
|
5161
5205
|
// src/widget/basic/many2many-field/controller.ts
|
|
5162
5206
|
var many2manyFieldController = (props) => {
|
|
5163
5207
|
const {
|
|
@@ -5167,7 +5211,7 @@ var many2manyFieldController = (props) => {
|
|
|
5167
5211
|
tab,
|
|
5168
5212
|
model,
|
|
5169
5213
|
aid,
|
|
5170
|
-
setSelectedRowKeys,
|
|
5214
|
+
setSelectedRowKeys: setSelectedRowKeys4,
|
|
5171
5215
|
fields,
|
|
5172
5216
|
setFields,
|
|
5173
5217
|
groupByDomain,
|
|
@@ -5175,14 +5219,17 @@ var many2manyFieldController = (props) => {
|
|
|
5175
5219
|
options,
|
|
5176
5220
|
sessionStorageUtils
|
|
5177
5221
|
} = props;
|
|
5178
|
-
const appDispatch =
|
|
5222
|
+
const appDispatch = useAppDispatch8();
|
|
5179
5223
|
const actionData = sessionStorageUtils.getActionData();
|
|
5180
5224
|
const [debouncedPage] = useDebounce(page, 500);
|
|
5181
|
-
const [order, setOrder] =
|
|
5182
|
-
const [isLoadedData, setIsLoadedData] =
|
|
5183
|
-
const [domainMany2Many, setDomainMany2Many] =
|
|
5184
|
-
const env =
|
|
5185
|
-
const {
|
|
5225
|
+
const [order, setOrder] = useState10();
|
|
5226
|
+
const [isLoadedData, setIsLoadedData] = useState10(false);
|
|
5227
|
+
const [domainMany2Many, setDomainMany2Many] = useState10(domain);
|
|
5228
|
+
const env = getEnv7();
|
|
5229
|
+
const {
|
|
5230
|
+
// tableHead,
|
|
5231
|
+
selectedTags
|
|
5232
|
+
} = useAppSelector6(selectSearch5);
|
|
5186
5233
|
const viewParams = {
|
|
5187
5234
|
model: relation,
|
|
5188
5235
|
views: [
|
|
@@ -5195,7 +5242,7 @@ var many2manyFieldController = (props) => {
|
|
|
5195
5242
|
viewParams,
|
|
5196
5243
|
actionData
|
|
5197
5244
|
);
|
|
5198
|
-
const baseModel =
|
|
5245
|
+
const baseModel = useMemo10(
|
|
5199
5246
|
() => ({
|
|
5200
5247
|
name: String(relation),
|
|
5201
5248
|
view: viewResponse || {},
|
|
@@ -5208,13 +5255,13 @@ var many2manyFieldController = (props) => {
|
|
|
5208
5255
|
[model, viewResponse]
|
|
5209
5256
|
);
|
|
5210
5257
|
const initModel = useModel2();
|
|
5211
|
-
const modelInstance =
|
|
5258
|
+
const modelInstance = useMemo10(() => {
|
|
5212
5259
|
if (viewResponse) {
|
|
5213
5260
|
return initModel.initModel(baseModel);
|
|
5214
5261
|
}
|
|
5215
5262
|
return null;
|
|
5216
5263
|
}, [baseModel, viewResponse]);
|
|
5217
|
-
const specification =
|
|
5264
|
+
const specification = useMemo10(() => {
|
|
5218
5265
|
if (modelInstance) {
|
|
5219
5266
|
return modelInstance.getSpecification();
|
|
5220
5267
|
}
|
|
@@ -5267,8 +5314,8 @@ var many2manyFieldController = (props) => {
|
|
|
5267
5314
|
isLoading: isDataLoading,
|
|
5268
5315
|
isFetched: isDataResponseFetched,
|
|
5269
5316
|
isPlaceholderData
|
|
5270
|
-
} =
|
|
5271
|
-
|
|
5317
|
+
} = useGetListData3(data, queryKey, enabled);
|
|
5318
|
+
useEffect13(() => {
|
|
5272
5319
|
if (viewResponse) {
|
|
5273
5320
|
fetchData();
|
|
5274
5321
|
}
|
|
@@ -5279,7 +5326,7 @@ var many2manyFieldController = (props) => {
|
|
|
5279
5326
|
[`${aid}_${relation}_popupmany2many`]: null
|
|
5280
5327
|
}));
|
|
5281
5328
|
appDispatch(setPage(0));
|
|
5282
|
-
|
|
5329
|
+
setSelectedRowKeys4([]);
|
|
5283
5330
|
setDomainMany2Many(null);
|
|
5284
5331
|
setIsLoadedData(false);
|
|
5285
5332
|
};
|
|
@@ -5307,13 +5354,13 @@ var many2manyFieldController = (props) => {
|
|
|
5307
5354
|
queryKey: [`form-view-action-${relation}`],
|
|
5308
5355
|
enabled: false
|
|
5309
5356
|
});
|
|
5310
|
-
|
|
5357
|
+
useEffect13(() => {
|
|
5311
5358
|
if (isSuccess && dataFormViewResponse) {
|
|
5312
5359
|
sessionStorage.setItem("actionData", JSON.stringify(dataFormViewResponse));
|
|
5313
5360
|
window.location.href = `/form/menu?model=${relation}`;
|
|
5314
5361
|
}
|
|
5315
5362
|
}, [isSuccess]);
|
|
5316
|
-
|
|
5363
|
+
useEffect13(() => {
|
|
5317
5364
|
if (domainMany2Many && !isLoadedData) {
|
|
5318
5365
|
setIsLoadedData(true);
|
|
5319
5366
|
}
|
|
@@ -5325,15 +5372,45 @@ var many2manyFieldController = (props) => {
|
|
|
5325
5372
|
console.log(error);
|
|
5326
5373
|
}
|
|
5327
5374
|
};
|
|
5328
|
-
return {
|
|
5375
|
+
return {
|
|
5376
|
+
rows,
|
|
5377
|
+
columns,
|
|
5378
|
+
typeTable,
|
|
5379
|
+
handleCreateNewOnPage,
|
|
5380
|
+
isLoadedData,
|
|
5381
|
+
domainMany2Many,
|
|
5382
|
+
isDataLoading,
|
|
5383
|
+
isDataResponseFetched,
|
|
5384
|
+
isPlaceholderData,
|
|
5385
|
+
queryKey,
|
|
5386
|
+
data,
|
|
5387
|
+
specification,
|
|
5388
|
+
enabled,
|
|
5389
|
+
isViewReponseFetched,
|
|
5390
|
+
actionData,
|
|
5391
|
+
viewResponse,
|
|
5392
|
+
debouncedPage,
|
|
5393
|
+
order,
|
|
5394
|
+
default_order,
|
|
5395
|
+
optionsObject,
|
|
5396
|
+
setDomainMany2Many,
|
|
5397
|
+
// tableHead,
|
|
5398
|
+
selectedTags,
|
|
5399
|
+
initModel,
|
|
5400
|
+
modelInstance,
|
|
5401
|
+
baseModel,
|
|
5402
|
+
dataResponse,
|
|
5403
|
+
isLoading: isDataLoading,
|
|
5404
|
+
setOrder
|
|
5405
|
+
};
|
|
5329
5406
|
};
|
|
5330
5407
|
|
|
5331
5408
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5332
|
-
import { useMemo as
|
|
5409
|
+
import { useMemo as useMemo11 } from "react";
|
|
5333
5410
|
import {
|
|
5334
5411
|
evalJSONContext as evalJSONContext4,
|
|
5335
5412
|
evalJSONDomain as evalJSONDomain4,
|
|
5336
|
-
getEnv as
|
|
5413
|
+
getEnv as getEnv8,
|
|
5337
5414
|
useGetSelection as useGetSelection3,
|
|
5338
5415
|
WIDGETAVATAR,
|
|
5339
5416
|
WIDGETCOLOR
|
|
@@ -5348,9 +5425,9 @@ var many2manyTagsController = (props) => {
|
|
|
5348
5425
|
placeholderNoOption
|
|
5349
5426
|
} = props;
|
|
5350
5427
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
5351
|
-
const env =
|
|
5428
|
+
const env = getEnv8();
|
|
5352
5429
|
const addtionalFields = optionsFields ? evalJSONContext4(optionsFields) : null;
|
|
5353
|
-
const domainObject =
|
|
5430
|
+
const domainObject = useMemo11(
|
|
5354
5431
|
() => evalJSONDomain4(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
5355
5432
|
[domain, formValues]
|
|
5356
5433
|
);
|
|
@@ -5393,13 +5470,13 @@ var many2manyTagsController = (props) => {
|
|
|
5393
5470
|
};
|
|
5394
5471
|
|
|
5395
5472
|
// src/widget/basic/status-bar-field/controller.ts
|
|
5396
|
-
import { useState as
|
|
5473
|
+
import { useState as useState11 } from "react";
|
|
5397
5474
|
import {
|
|
5398
5475
|
evalJSONDomain as evalJSONDomain5,
|
|
5399
5476
|
selectEnv as selectEnv2,
|
|
5400
|
-
useAppSelector as
|
|
5477
|
+
useAppSelector as useAppSelector7,
|
|
5401
5478
|
useChangeStatus,
|
|
5402
|
-
useGetListData as
|
|
5479
|
+
useGetListData as useGetListData4
|
|
5403
5480
|
} from "@fctc/interface-logic";
|
|
5404
5481
|
var durationController = (props) => {
|
|
5405
5482
|
const {
|
|
@@ -5417,9 +5494,9 @@ var durationController = (props) => {
|
|
|
5417
5494
|
name: "",
|
|
5418
5495
|
fold: ""
|
|
5419
5496
|
};
|
|
5420
|
-
const [disabled, setDisabled] =
|
|
5421
|
-
const [modelStatus, setModalStatus] =
|
|
5422
|
-
const { context } =
|
|
5497
|
+
const [disabled, setDisabled] = useState11(false);
|
|
5498
|
+
const [modelStatus, setModalStatus] = useState11(false);
|
|
5499
|
+
const { context } = useAppSelector7(selectEnv2);
|
|
5423
5500
|
const queryKey = [`data-status-duration`, specification];
|
|
5424
5501
|
const listDataProps = {
|
|
5425
5502
|
model: relation,
|
|
@@ -5434,7 +5511,7 @@ var durationController = (props) => {
|
|
|
5434
5511
|
},
|
|
5435
5512
|
sort: ""
|
|
5436
5513
|
};
|
|
5437
|
-
const { data: dataResponse } =
|
|
5514
|
+
const { data: dataResponse } = useGetListData4(listDataProps, queryKey);
|
|
5438
5515
|
const { mutate: fetchChangeStatus } = useChangeStatus();
|
|
5439
5516
|
const handleClick = async (stage_id) => {
|
|
5440
5517
|
setDisabled(true);
|
|
@@ -5525,7 +5602,7 @@ var priorityFieldController = (props) => {
|
|
|
5525
5602
|
};
|
|
5526
5603
|
|
|
5527
5604
|
// src/widget/basic/float-time-field/controller.ts
|
|
5528
|
-
import { useState as
|
|
5605
|
+
import { useState as useState12 } from "react";
|
|
5529
5606
|
import { convertFloatToTime, convertTimeToFloat } from "@fctc/interface-logic";
|
|
5530
5607
|
var floatTimeFiledController = ({
|
|
5531
5608
|
onChange: fieldOnChange,
|
|
@@ -5535,11 +5612,11 @@ var floatTimeFiledController = ({
|
|
|
5535
5612
|
props
|
|
5536
5613
|
}) => {
|
|
5537
5614
|
const { name, defaultValue = 0, onChange } = props;
|
|
5538
|
-
const [input, setInput] =
|
|
5615
|
+
const [input, setInput] = useState12(
|
|
5539
5616
|
convertFloatToTime(value ?? defaultValue)
|
|
5540
5617
|
);
|
|
5541
|
-
const [formattedTime, setFormattedTime] =
|
|
5542
|
-
const [errors, setErrors] =
|
|
5618
|
+
const [formattedTime, setFormattedTime] = useState12("");
|
|
5619
|
+
const [errors, setErrors] = useState12("");
|
|
5543
5620
|
const handleInputChange = (e) => {
|
|
5544
5621
|
const raw = e.target.value.replace(/[^\d:]/g, "");
|
|
5545
5622
|
setInput(raw);
|
|
@@ -5612,31 +5689,7 @@ var floatTimeFiledController = ({
|
|
|
5612
5689
|
};
|
|
5613
5690
|
|
|
5614
5691
|
// src/widget/basic/float-field/controller.ts
|
|
5615
|
-
import { useEffect as
|
|
5616
|
-
|
|
5617
|
-
// src/utils/i18n.ts
|
|
5618
|
-
import { initReactI18next } from "react-i18next";
|
|
5619
|
-
import i18n from "i18next";
|
|
5620
|
-
import LanguageDetector from "i18next-browser-languagedetector";
|
|
5621
|
-
i18n.use(LanguageDetector).use(initReactI18next).init({
|
|
5622
|
-
resources: {
|
|
5623
|
-
vi: { translation: vi },
|
|
5624
|
-
en: { translation: en }
|
|
5625
|
-
},
|
|
5626
|
-
fallbackLng: "vi",
|
|
5627
|
-
lng: "vi_VN",
|
|
5628
|
-
debug: false,
|
|
5629
|
-
nonExplicitSupportedLngs: true,
|
|
5630
|
-
interpolation: {
|
|
5631
|
-
escapeValue: false
|
|
5632
|
-
},
|
|
5633
|
-
detection: {
|
|
5634
|
-
caches: ["cookie"]
|
|
5635
|
-
}
|
|
5636
|
-
});
|
|
5637
|
-
var i18n_default = i18n;
|
|
5638
|
-
|
|
5639
|
-
// src/widget/basic/float-field/controller.ts
|
|
5692
|
+
import { useEffect as useEffect14, useRef as useRef5, useState as useState13 } from "react";
|
|
5640
5693
|
var floatController = ({
|
|
5641
5694
|
onChange,
|
|
5642
5695
|
value,
|
|
@@ -5644,10 +5697,10 @@ var floatController = ({
|
|
|
5644
5697
|
}) => {
|
|
5645
5698
|
const { name, required, methods, onChange: handleOnchange, string } = props;
|
|
5646
5699
|
const { setError, clearErrors } = methods;
|
|
5647
|
-
const [inputValue, setInputValue] =
|
|
5700
|
+
const [inputValue, setInputValue] = useState13(
|
|
5648
5701
|
value !== void 0 && value !== null ? useFormatFloatNumber(value) : ""
|
|
5649
5702
|
);
|
|
5650
|
-
|
|
5703
|
+
useEffect14(() => {
|
|
5651
5704
|
if (value !== void 0 && value !== null && value !== parseFloat(inputValue?.replace(/,/g, ""))) {
|
|
5652
5705
|
setInputValue(useFormatFloatNumber(value));
|
|
5653
5706
|
clearErrors(name);
|
|
@@ -5758,10 +5811,10 @@ var useFormatFloatNumber = (value) => {
|
|
|
5758
5811
|
};
|
|
5759
5812
|
|
|
5760
5813
|
// src/widget/basic/download-file-field/controller.ts
|
|
5761
|
-
import { useId, useState as
|
|
5814
|
+
import { useId, useState as useState14 } from "react";
|
|
5762
5815
|
var downloadFileController = () => {
|
|
5763
5816
|
const inputId = useId();
|
|
5764
|
-
const [file, setFile] =
|
|
5817
|
+
const [file, setFile] = useState14(null);
|
|
5765
5818
|
const handleFileChange = (e) => {
|
|
5766
5819
|
setFile(e.target.files[0]);
|
|
5767
5820
|
};
|
|
@@ -5931,11 +5984,11 @@ var dateFieldController = (props) => {
|
|
|
5931
5984
|
};
|
|
5932
5985
|
|
|
5933
5986
|
// src/widget/basic/copy-link-button/controller.ts
|
|
5934
|
-
import { useState as
|
|
5987
|
+
import { useState as useState15 } from "react";
|
|
5935
5988
|
import { copyTextToClipboard } from "@fctc/interface-logic";
|
|
5936
5989
|
var copyLinkButtonController = (props) => {
|
|
5937
5990
|
const { value, defaultValue } = props;
|
|
5938
|
-
const [isCopied, setIsCopied] =
|
|
5991
|
+
const [isCopied, setIsCopied] = useState15(false);
|
|
5939
5992
|
const handleCopyToClipboard = async (value2) => {
|
|
5940
5993
|
await copyTextToClipboard(value2);
|
|
5941
5994
|
setIsCopied(true);
|
|
@@ -5950,10 +6003,10 @@ var copyLinkButtonController = (props) => {
|
|
|
5950
6003
|
};
|
|
5951
6004
|
|
|
5952
6005
|
// src/widget/basic/color-field/color-controller.ts
|
|
5953
|
-
import { evalJSONContext as evalJSONContext6, getEnv as
|
|
6006
|
+
import { evalJSONContext as evalJSONContext6, getEnv as getEnv9, useSave as useSave3 } from "@fctc/interface-logic";
|
|
5954
6007
|
var colorFieldController = (props) => {
|
|
5955
6008
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
5956
|
-
const env =
|
|
6009
|
+
const env = getEnv9();
|
|
5957
6010
|
const _context = { ...evalJSONContext6(actionData?.context) || {} };
|
|
5958
6011
|
const contextObject = { ...env.context, ..._context };
|
|
5959
6012
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
@@ -5982,14 +6035,14 @@ var colorFieldController = (props) => {
|
|
|
5982
6035
|
};
|
|
5983
6036
|
|
|
5984
6037
|
// src/widget/basic/binary-field/controller.ts
|
|
5985
|
-
import { useEffect as
|
|
6038
|
+
import { useEffect as useEffect15, useId as useId2, useRef as useRef6, useState as useState16 } from "react";
|
|
5986
6039
|
import { isBase64Image } from "@fctc/interface-logic";
|
|
5987
6040
|
var binaryFieldController = (props) => {
|
|
5988
6041
|
const { name, methods, readonly = false, value } = props;
|
|
5989
6042
|
const inputId = useId2();
|
|
5990
|
-
const [selectedImage, setSelectedImage] =
|
|
5991
|
-
const [initialImage, setInitialImage] =
|
|
5992
|
-
const [isInsideTable, setIsInsideTable] =
|
|
6043
|
+
const [selectedImage, setSelectedImage] = useState16(null);
|
|
6044
|
+
const [initialImage, setInitialImage] = useState16(value || null);
|
|
6045
|
+
const [isInsideTable, setIsInsideTable] = useState16(false);
|
|
5993
6046
|
const { setValue } = methods;
|
|
5994
6047
|
const binaryRef = useRef6(null);
|
|
5995
6048
|
const convertUrlToBase64 = async (url) => {
|
|
@@ -6053,14 +6106,14 @@ var binaryFieldController = (props) => {
|
|
|
6053
6106
|
else if (base64.startsWith("UklGR")) mimeType = "image/webp";
|
|
6054
6107
|
return mimeType ? `data:${mimeType};base64,${base64}` : null;
|
|
6055
6108
|
};
|
|
6056
|
-
|
|
6109
|
+
useEffect15(() => {
|
|
6057
6110
|
return () => {
|
|
6058
6111
|
if (selectedImage) {
|
|
6059
6112
|
URL.revokeObjectURL(selectedImage);
|
|
6060
6113
|
}
|
|
6061
6114
|
};
|
|
6062
6115
|
}, [selectedImage]);
|
|
6063
|
-
|
|
6116
|
+
useEffect15(() => {
|
|
6064
6117
|
if (binaryRef.current) {
|
|
6065
6118
|
const isInsideTable2 = !!binaryRef.current.closest("table");
|
|
6066
6119
|
setIsInsideTable(isInsideTable2);
|
package/package.json
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@fctc/widget-logic",
|
|
3
|
-
"version": "1.1.
|
|
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
|
-
"./types": {
|
|
19
|
-
"types": "./dist/types.d.ts",
|
|
20
|
-
"import": "./dist/types.mjs",
|
|
21
|
-
"require": "./dist/types.cjs"
|
|
22
|
-
},
|
|
23
|
-
"./widget": {
|
|
24
|
-
"types": "./dist/widget.d.ts",
|
|
25
|
-
"import": "./dist/widget.mjs",
|
|
26
|
-
"require": "./dist/widget.cjs"
|
|
27
|
-
},
|
|
28
|
-
"./icons": {
|
|
29
|
-
"types": "./dist/icons.d.ts",
|
|
30
|
-
"import": "./dist/icons.mjs",
|
|
31
|
-
"require": "./dist/icons.cjs"
|
|
32
|
-
},
|
|
33
|
-
"./utils": {
|
|
34
|
-
"types": "./dist/utils.d.ts",
|
|
35
|
-
"import": "./dist/utils.mjs",
|
|
36
|
-
"require": "./dist/utils.cjs"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
"files": [
|
|
40
|
-
"dist"
|
|
41
|
-
],
|
|
42
|
-
"scripts": {
|
|
43
|
-
"build": "tsup",
|
|
44
|
-
"test": "jest"
|
|
45
|
-
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"@fctc/interface-logic": "^1.0.4",
|
|
48
|
-
"@headlessui/react": "^2.2.6",
|
|
49
|
-
"@tanstack/react-query": "^5.84.0",
|
|
50
|
-
"@types/react-dom": "^19.1.7",
|
|
51
|
-
"i18next": "^25.3.2",
|
|
52
|
-
"i18next-browser-languagedetector": "^8.2.0",
|
|
53
|
-
"react-datepicker": "^8.4.0",
|
|
54
|
-
"react-dom": "^19.1.1",
|
|
55
|
-
"react-i18next": "^15.6.1",
|
|
56
|
-
"react-tooltip": "^5.29.1"
|
|
57
|
-
},
|
|
58
|
-
"devDependencies": {
|
|
59
|
-
"@types/react": "18.0.0",
|
|
60
|
-
"jest": "^29.7.0",
|
|
61
|
-
"react": "18.0.0",
|
|
62
|
-
"tsup": "^8.0.0",
|
|
63
|
-
"typescript": "^5.8.2"
|
|
64
|
-
},
|
|
65
|
-
"packageManager": "yarn@1.22.0"
|
|
66
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@fctc/widget-logic",
|
|
3
|
+
"version": "1.1.6",
|
|
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
|
+
"./types": {
|
|
19
|
+
"types": "./dist/types.d.ts",
|
|
20
|
+
"import": "./dist/types.mjs",
|
|
21
|
+
"require": "./dist/types.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./widget": {
|
|
24
|
+
"types": "./dist/widget.d.ts",
|
|
25
|
+
"import": "./dist/widget.mjs",
|
|
26
|
+
"require": "./dist/widget.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./icons": {
|
|
29
|
+
"types": "./dist/icons.d.ts",
|
|
30
|
+
"import": "./dist/icons.mjs",
|
|
31
|
+
"require": "./dist/icons.cjs"
|
|
32
|
+
},
|
|
33
|
+
"./utils": {
|
|
34
|
+
"types": "./dist/utils.d.ts",
|
|
35
|
+
"import": "./dist/utils.mjs",
|
|
36
|
+
"require": "./dist/utils.cjs"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsup",
|
|
44
|
+
"test": "jest"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@fctc/interface-logic": "^1.0.4",
|
|
48
|
+
"@headlessui/react": "^2.2.6",
|
|
49
|
+
"@tanstack/react-query": "^5.84.0",
|
|
50
|
+
"@types/react-dom": "^19.1.7",
|
|
51
|
+
"i18next": "^25.3.2",
|
|
52
|
+
"i18next-browser-languagedetector": "^8.2.0",
|
|
53
|
+
"react-datepicker": "^8.4.0",
|
|
54
|
+
"react-dom": "^19.1.1",
|
|
55
|
+
"react-i18next": "^15.6.1",
|
|
56
|
+
"react-tooltip": "^5.29.1"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/react": "18.0.0",
|
|
60
|
+
"jest": "^29.7.0",
|
|
61
|
+
"react": "18.0.0",
|
|
62
|
+
"tsup": "^8.0.0",
|
|
63
|
+
"typescript": "^5.8.2"
|
|
64
|
+
},
|
|
65
|
+
"packageManager": "yarn@1.22.0"
|
|
66
|
+
}
|