@fctc/widget-logic 2.5.3 → 2.5.5
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/hooks.js +13 -6
- package/dist/hooks.mjs +11 -4
- package/dist/index.js +50 -43
- package/dist/index.mjs +15 -8
- package/dist/widget.js +38 -38
- package/dist/widget.mjs +5 -5
- package/package.json +1 -1
package/dist/hooks.js
CHANGED
|
@@ -485,6 +485,13 @@ var useViewV2 = ({
|
|
|
485
485
|
}) => {
|
|
486
486
|
const { useGetView: useGetView2 } = (0, provider_exports.useService)();
|
|
487
487
|
const viewParams = (0, import_react6.useMemo)(() => {
|
|
488
|
+
if (!action) {
|
|
489
|
+
return {
|
|
490
|
+
model,
|
|
491
|
+
views,
|
|
492
|
+
context
|
|
493
|
+
};
|
|
494
|
+
}
|
|
488
495
|
return {
|
|
489
496
|
model,
|
|
490
497
|
views,
|
|
@@ -493,8 +500,8 @@ var useViewV2 = ({
|
|
|
493
500
|
};
|
|
494
501
|
}, [action, context, aid, model, views]);
|
|
495
502
|
const view = useGetView2(
|
|
496
|
-
viewParams,
|
|
497
|
-
!!
|
|
503
|
+
viewParams || {},
|
|
504
|
+
!!viewParams && !(0, utils_exports.isObjectEmpty)(viewParams)
|
|
498
505
|
);
|
|
499
506
|
return {
|
|
500
507
|
...view,
|
|
@@ -729,7 +736,7 @@ var useGetSpecification = ({
|
|
|
729
736
|
|
|
730
737
|
// src/hooks/core/use-list-data.ts
|
|
731
738
|
var import_react14 = require("react");
|
|
732
|
-
var
|
|
739
|
+
var import_utils5 = require("@fctc/interface-logic/utils");
|
|
733
740
|
|
|
734
741
|
// src/hooks/utils/use-click-outside.ts
|
|
735
742
|
var import_react11 = require("react");
|
|
@@ -871,12 +878,12 @@ var useListData = ({
|
|
|
871
878
|
if (!viewData || !action || !context) {
|
|
872
879
|
return null;
|
|
873
880
|
}
|
|
874
|
-
const domainParse = type === "calendar" ? getDateRange(currentDate, mode) : action?.domain ? Array.isArray(action?.domain) ? [...action?.domain] : (0,
|
|
881
|
+
const domainParse = type === "calendar" ? getDateRange(currentDate, mode) : action?.domain ? Array.isArray(action?.domain) ? [...action?.domain] : (0, import_utils5.evalJSONDomain)(action?.domain, context) : [];
|
|
875
882
|
const limit = type === "calendar" ? 2500 : pageLimit;
|
|
876
883
|
const offset = debouncedPage * pageLimit;
|
|
877
884
|
const fields = type === "calendar" ? convertFieldsToArray(viewData?.views?.calendar?.fields) || [] : typeof groupByList === "object" ? groupByList?.fields : void 0;
|
|
878
885
|
const groupby = typeof groupByList === "object" ? [groupByList?.contexts?.[0]?.group_by] : [];
|
|
879
|
-
const sort = order ? order : viewData?.views?.list?.default_order ? (0,
|
|
886
|
+
const sort = order ? order : viewData?.views?.list?.default_order ? (0, import_utils5.formatSortingString)(viewData?.views?.list?.default_order) : "";
|
|
880
887
|
return {
|
|
881
888
|
model: action.res_model,
|
|
882
889
|
specification,
|
|
@@ -904,7 +911,7 @@ var useListData = ({
|
|
|
904
911
|
const list = useGetListData2(
|
|
905
912
|
listDataProps,
|
|
906
913
|
[listDataProps],
|
|
907
|
-
!!listDataProps && !!specification && !(0,
|
|
914
|
+
!!listDataProps && !!specification && !(0, import_utils5.isObjectEmpty)(specification)
|
|
908
915
|
);
|
|
909
916
|
return {
|
|
910
917
|
...list,
|
package/dist/hooks.mjs
CHANGED
|
@@ -466,6 +466,13 @@ var useViewV2 = ({
|
|
|
466
466
|
}) => {
|
|
467
467
|
const { useGetView: useGetView2 } = (0, provider_exports.useService)();
|
|
468
468
|
const viewParams = useMemo3(() => {
|
|
469
|
+
if (!action) {
|
|
470
|
+
return {
|
|
471
|
+
model,
|
|
472
|
+
views,
|
|
473
|
+
context
|
|
474
|
+
};
|
|
475
|
+
}
|
|
469
476
|
return {
|
|
470
477
|
model,
|
|
471
478
|
views,
|
|
@@ -474,8 +481,8 @@ var useViewV2 = ({
|
|
|
474
481
|
};
|
|
475
482
|
}, [action, context, aid, model, views]);
|
|
476
483
|
const view = useGetView2(
|
|
477
|
-
viewParams,
|
|
478
|
-
!!
|
|
484
|
+
viewParams || {},
|
|
485
|
+
!!viewParams && !(0, utils_exports.isObjectEmpty)(viewParams)
|
|
479
486
|
);
|
|
480
487
|
return {
|
|
481
488
|
...view,
|
|
@@ -713,7 +720,7 @@ import { useMemo as useMemo7, useState as useState5 } from "react";
|
|
|
713
720
|
import {
|
|
714
721
|
evalJSONDomain,
|
|
715
722
|
formatSortingString,
|
|
716
|
-
isObjectEmpty as
|
|
723
|
+
isObjectEmpty as isObjectEmpty4
|
|
717
724
|
} from "@fctc/interface-logic/utils";
|
|
718
725
|
|
|
719
726
|
// src/hooks/utils/use-click-outside.ts
|
|
@@ -889,7 +896,7 @@ var useListData = ({
|
|
|
889
896
|
const list = useGetListData2(
|
|
890
897
|
listDataProps,
|
|
891
898
|
[listDataProps],
|
|
892
|
-
!!listDataProps && !!specification && !
|
|
899
|
+
!!listDataProps && !!specification && !isObjectEmpty4(specification)
|
|
893
900
|
);
|
|
894
901
|
return {
|
|
895
902
|
...list,
|
package/dist/index.js
CHANGED
|
@@ -55,7 +55,7 @@ var require_moment = __commonJS({
|
|
|
55
55
|
function hasOwnProp(a, b) {
|
|
56
56
|
return Object.prototype.hasOwnProperty.call(a, b);
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function isObjectEmpty5(obj) {
|
|
59
59
|
if (Object.getOwnPropertyNames) {
|
|
60
60
|
return Object.getOwnPropertyNames(obj).length === 0;
|
|
61
61
|
} else {
|
|
@@ -2194,7 +2194,7 @@ var require_moment = __commonJS({
|
|
|
2194
2194
|
strict = locale2;
|
|
2195
2195
|
locale2 = void 0;
|
|
2196
2196
|
}
|
|
2197
|
-
if (isObject(input) &&
|
|
2197
|
+
if (isObject(input) && isObjectEmpty5(input) || isArray(input) && input.length === 0) {
|
|
2198
2198
|
input = void 0;
|
|
2199
2199
|
}
|
|
2200
2200
|
c._isAMomentObject = true;
|
|
@@ -2613,7 +2613,7 @@ var require_moment = __commonJS({
|
|
|
2613
2613
|
return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0;
|
|
2614
2614
|
}
|
|
2615
2615
|
function isMomentInputObject(input) {
|
|
2616
|
-
var objectTest = isObject(input) && !
|
|
2616
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2617
2617
|
"years",
|
|
2618
2618
|
"year",
|
|
2619
2619
|
"y",
|
|
@@ -2655,7 +2655,7 @@ var require_moment = __commonJS({
|
|
|
2655
2655
|
return arrayTest && dataTypeTest;
|
|
2656
2656
|
}
|
|
2657
2657
|
function isCalendarSpec(input) {
|
|
2658
|
-
var objectTest = isObject(input) && !
|
|
2658
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2659
2659
|
"sameDay",
|
|
2660
2660
|
"nextDay",
|
|
2661
2661
|
"lastDay",
|
|
@@ -4535,6 +4535,13 @@ var useViewV2 = ({
|
|
|
4535
4535
|
}) => {
|
|
4536
4536
|
const { useGetView: useGetView2 } = (0, provider_exports.useService)();
|
|
4537
4537
|
const viewParams = (0, import_react6.useMemo)(() => {
|
|
4538
|
+
if (!action) {
|
|
4539
|
+
return {
|
|
4540
|
+
model,
|
|
4541
|
+
views,
|
|
4542
|
+
context
|
|
4543
|
+
};
|
|
4544
|
+
}
|
|
4538
4545
|
return {
|
|
4539
4546
|
model,
|
|
4540
4547
|
views,
|
|
@@ -4543,8 +4550,8 @@ var useViewV2 = ({
|
|
|
4543
4550
|
};
|
|
4544
4551
|
}, [action, context, aid, model, views]);
|
|
4545
4552
|
const view = useGetView2(
|
|
4546
|
-
viewParams,
|
|
4547
|
-
!!
|
|
4553
|
+
viewParams || {},
|
|
4554
|
+
!!viewParams && !(0, utils_exports.isObjectEmpty)(viewParams)
|
|
4548
4555
|
);
|
|
4549
4556
|
return {
|
|
4550
4557
|
...view,
|
|
@@ -4779,7 +4786,7 @@ var useGetSpecification = ({
|
|
|
4779
4786
|
|
|
4780
4787
|
// src/hooks/core/use-list-data.ts
|
|
4781
4788
|
var import_react14 = require("react");
|
|
4782
|
-
var
|
|
4789
|
+
var import_utils5 = require("@fctc/interface-logic/utils");
|
|
4783
4790
|
|
|
4784
4791
|
// src/hooks/utils/use-click-outside.ts
|
|
4785
4792
|
var import_react11 = require("react");
|
|
@@ -4921,12 +4928,12 @@ var useListData = ({
|
|
|
4921
4928
|
if (!viewData || !action || !context) {
|
|
4922
4929
|
return null;
|
|
4923
4930
|
}
|
|
4924
|
-
const domainParse = type === "calendar" ? getDateRange(currentDate, mode) : action?.domain ? Array.isArray(action?.domain) ? [...action?.domain] : (0,
|
|
4931
|
+
const domainParse = type === "calendar" ? getDateRange(currentDate, mode) : action?.domain ? Array.isArray(action?.domain) ? [...action?.domain] : (0, import_utils5.evalJSONDomain)(action?.domain, context) : [];
|
|
4925
4932
|
const limit = type === "calendar" ? 2500 : pageLimit;
|
|
4926
4933
|
const offset = debouncedPage * pageLimit;
|
|
4927
4934
|
const fields = type === "calendar" ? convertFieldsToArray(viewData?.views?.calendar?.fields) || [] : typeof groupByList === "object" ? groupByList?.fields : void 0;
|
|
4928
4935
|
const groupby = typeof groupByList === "object" ? [groupByList?.contexts?.[0]?.group_by] : [];
|
|
4929
|
-
const sort = order ? order : viewData?.views?.list?.default_order ? (0,
|
|
4936
|
+
const sort = order ? order : viewData?.views?.list?.default_order ? (0, import_utils5.formatSortingString)(viewData?.views?.list?.default_order) : "";
|
|
4930
4937
|
return {
|
|
4931
4938
|
model: action.res_model,
|
|
4932
4939
|
specification,
|
|
@@ -4954,7 +4961,7 @@ var useListData = ({
|
|
|
4954
4961
|
const list = useGetListData2(
|
|
4955
4962
|
listDataProps,
|
|
4956
4963
|
[listDataProps],
|
|
4957
|
-
!!listDataProps && !!specification && !(0,
|
|
4964
|
+
!!listDataProps && !!specification && !(0, import_utils5.isObjectEmpty)(specification)
|
|
4958
4965
|
);
|
|
4959
4966
|
return {
|
|
4960
4967
|
...list,
|
|
@@ -5461,18 +5468,18 @@ var many2oneFieldController = (props) => {
|
|
|
5461
5468
|
// src/widget/basic/many2one-button-field/controller.ts
|
|
5462
5469
|
var import_environment2 = require("@fctc/interface-logic/environment");
|
|
5463
5470
|
var import_hooks6 = require("@fctc/interface-logic/hooks");
|
|
5464
|
-
var
|
|
5471
|
+
var import_utils8 = require("@fctc/interface-logic/utils");
|
|
5465
5472
|
var many2oneButtonController = (props) => {
|
|
5466
5473
|
const { domain, methods, relation, service, xNode } = props;
|
|
5467
5474
|
const actionDataString = sessionStorage.getItem("actionData");
|
|
5468
5475
|
const env = (0, import_environment2.getEnv)();
|
|
5469
|
-
const domainObject = (0,
|
|
5476
|
+
const domainObject = (0, import_utils8.evalJSONDomain)(domain, methods?.getValues() || {});
|
|
5470
5477
|
const actionData = actionDataString && actionDataString !== "undefined" ? JSON.parse(actionDataString) : {};
|
|
5471
5478
|
const { data: dataOfSelection } = (0, import_hooks6.useGetSelection)({
|
|
5472
5479
|
data: {
|
|
5473
5480
|
model: relation ?? "",
|
|
5474
5481
|
domain: domainObject,
|
|
5475
|
-
context: { ...env.context, ...(0,
|
|
5482
|
+
context: { ...env.context, ...(0, import_utils8.evalJSONContext)(actionData?.context) }
|
|
5476
5483
|
},
|
|
5477
5484
|
queryKey: [`data_${relation}`, domainObject],
|
|
5478
5485
|
service,
|
|
@@ -5489,7 +5496,7 @@ var many2oneButtonController = (props) => {
|
|
|
5489
5496
|
|
|
5490
5497
|
// src/widget/basic/many2many-field/controller.ts
|
|
5491
5498
|
var import_react17 = require("react");
|
|
5492
|
-
var
|
|
5499
|
+
var import_utils9 = require("@fctc/interface-logic/utils");
|
|
5493
5500
|
var many2manyFieldController = (props) => {
|
|
5494
5501
|
const {
|
|
5495
5502
|
relation,
|
|
@@ -5547,10 +5554,10 @@ var many2manyFieldController = (props) => {
|
|
|
5547
5554
|
return null;
|
|
5548
5555
|
}, [modelInstance]);
|
|
5549
5556
|
const default_order = viewResponse && viewResponse?.views?.list?.default_order;
|
|
5550
|
-
const optionsObject = tab?.options ? (0,
|
|
5557
|
+
const optionsObject = tab?.options ? (0, import_utils9.evalJSONContext)(tab?.options) : (options ? (0, import_utils9.evalJSONContext)(options) : {}) || {};
|
|
5551
5558
|
const fetchData = async () => {
|
|
5552
5559
|
try {
|
|
5553
|
-
const domainParse = typeof domain === "string" ? (0,
|
|
5560
|
+
const domainParse = typeof domain === "string" ? (0, import_utils9.evalJSONDomain)(domain, contextObject) : Array.isArray(domain) ? domain : [];
|
|
5554
5561
|
setDomainMany2Many(domainParse);
|
|
5555
5562
|
setPage(0);
|
|
5556
5563
|
} catch (err) {
|
|
@@ -5574,7 +5581,7 @@ var many2manyFieldController = (props) => {
|
|
|
5574
5581
|
context: contextObject,
|
|
5575
5582
|
fields: groupByDomain?.fields,
|
|
5576
5583
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
5577
|
-
sort: order ? order : default_order ? (0,
|
|
5584
|
+
sort: order ? order : default_order ? (0, import_utils9.formatSortingString)(default_order) : ""
|
|
5578
5585
|
};
|
|
5579
5586
|
const enabled = enabledCallAPI && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
5580
5587
|
const {
|
|
@@ -5638,7 +5645,7 @@ var many2manyFieldController = (props) => {
|
|
|
5638
5645
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5639
5646
|
var import_react18 = require("react");
|
|
5640
5647
|
var import_constants2 = require("@fctc/interface-logic/constants");
|
|
5641
|
-
var
|
|
5648
|
+
var import_utils10 = require("@fctc/interface-logic/utils");
|
|
5642
5649
|
var many2manyTagsController = (props) => {
|
|
5643
5650
|
const {
|
|
5644
5651
|
relation,
|
|
@@ -5653,9 +5660,9 @@ var many2manyTagsController = (props) => {
|
|
|
5653
5660
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
5654
5661
|
const { env } = (0, provider_exports.useEnv)();
|
|
5655
5662
|
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
5656
|
-
const addtionalFields = optionsFields ? (0,
|
|
5663
|
+
const addtionalFields = optionsFields ? (0, import_utils10.evalJSONContext)(optionsFields) : null;
|
|
5657
5664
|
const domainObject = (0, import_react18.useMemo)(
|
|
5658
|
-
() => (0,
|
|
5665
|
+
() => (0, import_utils10.evalJSONDomain)(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
5659
5666
|
[domain, formValues]
|
|
5660
5667
|
);
|
|
5661
5668
|
const data = {
|
|
@@ -5700,7 +5707,7 @@ var many2manyTagsController = (props) => {
|
|
|
5700
5707
|
|
|
5701
5708
|
// src/widget/basic/status-bar-field/controller.ts
|
|
5702
5709
|
var import_react19 = require("react");
|
|
5703
|
-
var
|
|
5710
|
+
var import_utils11 = require("@fctc/interface-logic/utils");
|
|
5704
5711
|
var durationController = (props) => {
|
|
5705
5712
|
const { relation, domain, formValues, name, id, model, onRefetch, enabled } = props;
|
|
5706
5713
|
const specification = {
|
|
@@ -5716,7 +5723,7 @@ var durationController = (props) => {
|
|
|
5716
5723
|
const listDataProps = {
|
|
5717
5724
|
model: relation,
|
|
5718
5725
|
specification,
|
|
5719
|
-
domain: (0,
|
|
5726
|
+
domain: (0, import_utils11.evalJSONDomain)(domain, JSON.parse(JSON.stringify(formValues))),
|
|
5720
5727
|
limit: 10,
|
|
5721
5728
|
offset: 0,
|
|
5722
5729
|
fields: "",
|
|
@@ -5766,10 +5773,10 @@ var durationController = (props) => {
|
|
|
5766
5773
|
};
|
|
5767
5774
|
|
|
5768
5775
|
// src/widget/basic/priority-field/controller.ts
|
|
5769
|
-
var
|
|
5776
|
+
var import_utils12 = require("@fctc/interface-logic/utils");
|
|
5770
5777
|
var priorityFieldController = (props) => {
|
|
5771
5778
|
const { name, model, index, actionData, context, onChange, specification } = props;
|
|
5772
|
-
const _context = { ...(0,
|
|
5779
|
+
const _context = { ...(0, import_utils12.evalJSONContext)(actionData?.context) };
|
|
5773
5780
|
const contextObject = { ...context, ..._context };
|
|
5774
5781
|
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
5775
5782
|
const { mutateAsync: fetchSave } = useSave3();
|
|
@@ -6737,12 +6744,12 @@ var dateFieldController = (props) => {
|
|
|
6737
6744
|
|
|
6738
6745
|
// src/widget/basic/copy-link-button/controller.ts
|
|
6739
6746
|
var import_react21 = require("react");
|
|
6740
|
-
var
|
|
6747
|
+
var import_utils13 = require("@fctc/interface-logic/utils");
|
|
6741
6748
|
var copyLinkButtonController = (props) => {
|
|
6742
6749
|
const { value, defaultValue } = props;
|
|
6743
6750
|
const [isCopied, setIsCopied] = (0, import_react21.useState)(false);
|
|
6744
6751
|
const handleCopyToClipboard = async (value2) => {
|
|
6745
|
-
await (0,
|
|
6752
|
+
await (0, import_utils13.copyTextToClipboard)(value2);
|
|
6746
6753
|
setIsCopied(true);
|
|
6747
6754
|
setTimeout(() => setIsCopied(false), 2e3);
|
|
6748
6755
|
};
|
|
@@ -6755,12 +6762,12 @@ var copyLinkButtonController = (props) => {
|
|
|
6755
6762
|
};
|
|
6756
6763
|
|
|
6757
6764
|
// src/widget/basic/color-field/color-controller.ts
|
|
6758
|
-
var
|
|
6765
|
+
var import_utils14 = require("@fctc/interface-logic/utils");
|
|
6759
6766
|
var colorFieldController = (props) => {
|
|
6760
6767
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
6761
6768
|
const { env } = (0, provider_exports.useEnv)();
|
|
6762
6769
|
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
6763
|
-
const _context = { ...(0,
|
|
6770
|
+
const _context = { ...(0, import_utils14.evalJSONContext)(actionData?.context) || {} };
|
|
6764
6771
|
const contextObject = { ...env.context, ..._context };
|
|
6765
6772
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
6766
6773
|
const { mutate: onSave } = useSave3();
|
|
@@ -6789,7 +6796,7 @@ var colorFieldController = (props) => {
|
|
|
6789
6796
|
|
|
6790
6797
|
// src/widget/basic/binary-field/controller.ts
|
|
6791
6798
|
var import_react22 = require("react");
|
|
6792
|
-
var
|
|
6799
|
+
var import_utils15 = require("@fctc/interface-logic/utils");
|
|
6793
6800
|
var binaryFieldController = (props) => {
|
|
6794
6801
|
const { name, methods, readonly = false, value } = props;
|
|
6795
6802
|
const inputId = (0, import_react22.useId)();
|
|
@@ -6846,11 +6853,11 @@ var binaryFieldController = (props) => {
|
|
|
6846
6853
|
};
|
|
6847
6854
|
const checkIsImageLink = (url) => {
|
|
6848
6855
|
const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|svg|tiff|ico)$/i;
|
|
6849
|
-
return imageExtensions.test(url) || (0,
|
|
6856
|
+
return imageExtensions.test(url) || (0, import_utils15.isBase64Image)(url) || isBlobUrl(url);
|
|
6850
6857
|
};
|
|
6851
6858
|
const getImageBase64WithMimeType = (base64) => {
|
|
6852
6859
|
if (typeof base64 !== "string" || base64.length < 10) return null;
|
|
6853
|
-
if ((0,
|
|
6860
|
+
if ((0, import_utils15.isBase64Image)(base64)) return base64;
|
|
6854
6861
|
let mimeType = null;
|
|
6855
6862
|
if (base64.startsWith("iVBORw0KGgo")) mimeType = "image/png";
|
|
6856
6863
|
else if (base64.startsWith("/9j/")) mimeType = "image/jpeg";
|
|
@@ -6953,7 +6960,7 @@ var tableHeadController = (props) => {
|
|
|
6953
6960
|
|
|
6954
6961
|
// src/widget/advance/table/table-view/controller.ts
|
|
6955
6962
|
var import_react24 = require("react");
|
|
6956
|
-
var
|
|
6963
|
+
var import_utils17 = require("@fctc/interface-logic/utils");
|
|
6957
6964
|
var tableController = ({ data }) => {
|
|
6958
6965
|
const [rows, setRows] = (0, import_react24.useState)(null);
|
|
6959
6966
|
const [columns, setColumns] = (0, import_react24.useState)(null);
|
|
@@ -6991,7 +6998,7 @@ var tableController = ({ data }) => {
|
|
|
6991
6998
|
let cols = [];
|
|
6992
6999
|
try {
|
|
6993
7000
|
cols = mergeFields?.filter((item) => {
|
|
6994
|
-
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ?
|
|
7001
|
+
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
|
|
6995
7002
|
})?.map((field) => {
|
|
6996
7003
|
return {
|
|
6997
7004
|
name: field?.name,
|
|
@@ -7175,7 +7182,7 @@ var tableGroupController = (props) => {
|
|
|
7175
7182
|
|
|
7176
7183
|
// src/widget/advance/search/controller.ts
|
|
7177
7184
|
var import_constants3 = require("@fctc/interface-logic/constants");
|
|
7178
|
-
var
|
|
7185
|
+
var import_utils19 = require("@fctc/interface-logic/utils");
|
|
7179
7186
|
var import_moment2 = __toESM(require_moment());
|
|
7180
7187
|
var import_react26 = require("react");
|
|
7181
7188
|
var searchController = ({
|
|
@@ -7192,9 +7199,9 @@ var searchController = ({
|
|
|
7192
7199
|
const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
|
|
7193
7200
|
const [searchString, setSearchString] = (0, import_react26.useState)("");
|
|
7194
7201
|
const [searchMap, setSearchMap] = (0, import_react26.useState)({});
|
|
7195
|
-
const actionContext = typeof context === "string" ? (0,
|
|
7202
|
+
const actionContext = typeof context === "string" ? (0, import_utils19.evalJSONContext)(context) : context;
|
|
7196
7203
|
const contextSearch = { ...env.context, ...actionContext };
|
|
7197
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0,
|
|
7204
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils19.evalJSONDomain)(domain, contextSearch) : [];
|
|
7198
7205
|
const clearSearch = () => {
|
|
7199
7206
|
setFilterBy([]);
|
|
7200
7207
|
setGroupBy([]);
|
|
@@ -7209,7 +7216,7 @@ var searchController = ({
|
|
|
7209
7216
|
const dataModel = viewData?.models?.[model];
|
|
7210
7217
|
const searchViews = viewData?.views?.search;
|
|
7211
7218
|
const searchByItems = searchViews?.search_by?.filter(
|
|
7212
|
-
(item) => !
|
|
7219
|
+
(item) => !import_utils19.domainHelper.matchDomains(contextSearch, item.invisible)
|
|
7213
7220
|
)?.map(
|
|
7214
7221
|
({ string, name, filter_domain, operator, widget }, index) => ({
|
|
7215
7222
|
dataIndex: index,
|
|
@@ -7222,10 +7229,10 @@ var searchController = ({
|
|
|
7222
7229
|
})
|
|
7223
7230
|
);
|
|
7224
7231
|
const filterByItems = searchViews?.filter_by.filter((item) => {
|
|
7225
|
-
return !
|
|
7232
|
+
return !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible);
|
|
7226
7233
|
})?.map((item) => ({ ...item, active: false }));
|
|
7227
7234
|
const groupByItems = searchViews?.group_by.filter(
|
|
7228
|
-
(item) => !
|
|
7235
|
+
(item) => !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible)
|
|
7229
7236
|
).map((item) => ({
|
|
7230
7237
|
...item,
|
|
7231
7238
|
string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
|
|
@@ -7302,14 +7309,14 @@ var searchController = ({
|
|
|
7302
7309
|
}
|
|
7303
7310
|
let valueDomainItem = value?.value;
|
|
7304
7311
|
if (value?.modelType === "date") {
|
|
7305
|
-
valueDomainItem = (0,
|
|
7312
|
+
valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value);
|
|
7306
7313
|
} else if (value?.modelType === "datetime") {
|
|
7307
7314
|
if (value?.operator === "<=" || value?.operator === "<") {
|
|
7308
|
-
const parsedDate = (0,
|
|
7315
|
+
const parsedDate = (0, import_utils19.validateAndParseDate)(value?.value, true);
|
|
7309
7316
|
const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
|
|
7310
7317
|
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");
|
|
7311
7318
|
} else {
|
|
7312
|
-
valueDomainItem = (0,
|
|
7319
|
+
valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value, true);
|
|
7313
7320
|
}
|
|
7314
7321
|
}
|
|
7315
7322
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
@@ -7388,7 +7395,7 @@ var searchController = ({
|
|
|
7388
7395
|
}, [searchMap]);
|
|
7389
7396
|
const handleAddTagSearch = (tag) => {
|
|
7390
7397
|
const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
|
|
7391
|
-
const domainFormat = new
|
|
7398
|
+
const domainFormat = new import_utils19.domainHelper.Domain(domain2);
|
|
7392
7399
|
if (type === import_constants3.SearchType.FILTER) {
|
|
7393
7400
|
addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
|
|
7394
7401
|
...tag,
|
package/dist/index.mjs
CHANGED
|
@@ -59,7 +59,7 @@ var require_moment = __commonJS({
|
|
|
59
59
|
function hasOwnProp(a, b) {
|
|
60
60
|
return Object.prototype.hasOwnProperty.call(a, b);
|
|
61
61
|
}
|
|
62
|
-
function
|
|
62
|
+
function isObjectEmpty5(obj) {
|
|
63
63
|
if (Object.getOwnPropertyNames) {
|
|
64
64
|
return Object.getOwnPropertyNames(obj).length === 0;
|
|
65
65
|
} else {
|
|
@@ -2198,7 +2198,7 @@ var require_moment = __commonJS({
|
|
|
2198
2198
|
strict = locale2;
|
|
2199
2199
|
locale2 = void 0;
|
|
2200
2200
|
}
|
|
2201
|
-
if (isObject(input) &&
|
|
2201
|
+
if (isObject(input) && isObjectEmpty5(input) || isArray(input) && input.length === 0) {
|
|
2202
2202
|
input = void 0;
|
|
2203
2203
|
}
|
|
2204
2204
|
c._isAMomentObject = true;
|
|
@@ -2617,7 +2617,7 @@ var require_moment = __commonJS({
|
|
|
2617
2617
|
return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0;
|
|
2618
2618
|
}
|
|
2619
2619
|
function isMomentInputObject(input) {
|
|
2620
|
-
var objectTest = isObject(input) && !
|
|
2620
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2621
2621
|
"years",
|
|
2622
2622
|
"year",
|
|
2623
2623
|
"y",
|
|
@@ -2659,7 +2659,7 @@ var require_moment = __commonJS({
|
|
|
2659
2659
|
return arrayTest && dataTypeTest;
|
|
2660
2660
|
}
|
|
2661
2661
|
function isCalendarSpec(input) {
|
|
2662
|
-
var objectTest = isObject(input) && !
|
|
2662
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2663
2663
|
"sameDay",
|
|
2664
2664
|
"nextDay",
|
|
2665
2665
|
"lastDay",
|
|
@@ -4610,6 +4610,13 @@ var useViewV2 = ({
|
|
|
4610
4610
|
}) => {
|
|
4611
4611
|
const { useGetView: useGetView2 } = (0, provider_exports.useService)();
|
|
4612
4612
|
const viewParams = useMemo3(() => {
|
|
4613
|
+
if (!action) {
|
|
4614
|
+
return {
|
|
4615
|
+
model,
|
|
4616
|
+
views,
|
|
4617
|
+
context
|
|
4618
|
+
};
|
|
4619
|
+
}
|
|
4613
4620
|
return {
|
|
4614
4621
|
model,
|
|
4615
4622
|
views,
|
|
@@ -4618,8 +4625,8 @@ var useViewV2 = ({
|
|
|
4618
4625
|
};
|
|
4619
4626
|
}, [action, context, aid, model, views]);
|
|
4620
4627
|
const view = useGetView2(
|
|
4621
|
-
viewParams,
|
|
4622
|
-
!!
|
|
4628
|
+
viewParams || {},
|
|
4629
|
+
!!viewParams && !(0, utils_exports.isObjectEmpty)(viewParams)
|
|
4623
4630
|
);
|
|
4624
4631
|
return {
|
|
4625
4632
|
...view,
|
|
@@ -4857,7 +4864,7 @@ import { useMemo as useMemo7, useState as useState5 } from "react";
|
|
|
4857
4864
|
import {
|
|
4858
4865
|
evalJSONDomain,
|
|
4859
4866
|
formatSortingString,
|
|
4860
|
-
isObjectEmpty as
|
|
4867
|
+
isObjectEmpty as isObjectEmpty4
|
|
4861
4868
|
} from "@fctc/interface-logic/utils";
|
|
4862
4869
|
|
|
4863
4870
|
// src/hooks/utils/use-click-outside.ts
|
|
@@ -5033,7 +5040,7 @@ var useListData = ({
|
|
|
5033
5040
|
const list = useGetListData2(
|
|
5034
5041
|
listDataProps,
|
|
5035
5042
|
[listDataProps],
|
|
5036
|
-
!!listDataProps && !!specification && !
|
|
5043
|
+
!!listDataProps && !!specification && !isObjectEmpty4(specification)
|
|
5037
5044
|
);
|
|
5038
5045
|
return {
|
|
5039
5046
|
...list,
|
package/dist/widget.js
CHANGED
|
@@ -55,7 +55,7 @@ var require_moment = __commonJS({
|
|
|
55
55
|
function hasOwnProp(a, b) {
|
|
56
56
|
return Object.prototype.hasOwnProperty.call(a, b);
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function isObjectEmpty5(obj) {
|
|
59
59
|
if (Object.getOwnPropertyNames) {
|
|
60
60
|
return Object.getOwnPropertyNames(obj).length === 0;
|
|
61
61
|
} else {
|
|
@@ -2194,7 +2194,7 @@ var require_moment = __commonJS({
|
|
|
2194
2194
|
strict = locale2;
|
|
2195
2195
|
locale2 = void 0;
|
|
2196
2196
|
}
|
|
2197
|
-
if (isObject(input) &&
|
|
2197
|
+
if (isObject(input) && isObjectEmpty5(input) || isArray(input) && input.length === 0) {
|
|
2198
2198
|
input = void 0;
|
|
2199
2199
|
}
|
|
2200
2200
|
c._isAMomentObject = true;
|
|
@@ -2613,7 +2613,7 @@ var require_moment = __commonJS({
|
|
|
2613
2613
|
return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0;
|
|
2614
2614
|
}
|
|
2615
2615
|
function isMomentInputObject(input) {
|
|
2616
|
-
var objectTest = isObject(input) && !
|
|
2616
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2617
2617
|
"years",
|
|
2618
2618
|
"year",
|
|
2619
2619
|
"y",
|
|
@@ -2655,7 +2655,7 @@ var require_moment = __commonJS({
|
|
|
2655
2655
|
return arrayTest && dataTypeTest;
|
|
2656
2656
|
}
|
|
2657
2657
|
function isCalendarSpec(input) {
|
|
2658
|
-
var objectTest = isObject(input) && !
|
|
2658
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2659
2659
|
"sameDay",
|
|
2660
2660
|
"nextDay",
|
|
2661
2661
|
"lastDay",
|
|
@@ -4344,7 +4344,7 @@ var import_react11 = require("react");
|
|
|
4344
4344
|
|
|
4345
4345
|
// src/hooks/core/use-list-data.ts
|
|
4346
4346
|
var import_react15 = require("react");
|
|
4347
|
-
var
|
|
4347
|
+
var import_utils5 = require("@fctc/interface-logic/utils");
|
|
4348
4348
|
|
|
4349
4349
|
// src/hooks/utils/use-click-outside.ts
|
|
4350
4350
|
var import_react12 = require("react");
|
|
@@ -4615,18 +4615,18 @@ var many2oneFieldController = (props) => {
|
|
|
4615
4615
|
// src/widget/basic/many2one-button-field/controller.ts
|
|
4616
4616
|
var import_environment2 = require("@fctc/interface-logic/environment");
|
|
4617
4617
|
var import_hooks6 = require("@fctc/interface-logic/hooks");
|
|
4618
|
-
var
|
|
4618
|
+
var import_utils8 = require("@fctc/interface-logic/utils");
|
|
4619
4619
|
var many2oneButtonController = (props) => {
|
|
4620
4620
|
const { domain, methods, relation, service, xNode } = props;
|
|
4621
4621
|
const actionDataString = sessionStorage.getItem("actionData");
|
|
4622
4622
|
const env = (0, import_environment2.getEnv)();
|
|
4623
|
-
const domainObject = (0,
|
|
4623
|
+
const domainObject = (0, import_utils8.evalJSONDomain)(domain, methods?.getValues() || {});
|
|
4624
4624
|
const actionData = actionDataString && actionDataString !== "undefined" ? JSON.parse(actionDataString) : {};
|
|
4625
4625
|
const { data: dataOfSelection } = (0, import_hooks6.useGetSelection)({
|
|
4626
4626
|
data: {
|
|
4627
4627
|
model: relation ?? "",
|
|
4628
4628
|
domain: domainObject,
|
|
4629
|
-
context: { ...env.context, ...(0,
|
|
4629
|
+
context: { ...env.context, ...(0, import_utils8.evalJSONContext)(actionData?.context) }
|
|
4630
4630
|
},
|
|
4631
4631
|
queryKey: [`data_${relation}`, domainObject],
|
|
4632
4632
|
service,
|
|
@@ -4643,7 +4643,7 @@ var many2oneButtonController = (props) => {
|
|
|
4643
4643
|
|
|
4644
4644
|
// src/widget/basic/many2many-field/controller.ts
|
|
4645
4645
|
var import_react17 = require("react");
|
|
4646
|
-
var
|
|
4646
|
+
var import_utils9 = require("@fctc/interface-logic/utils");
|
|
4647
4647
|
var many2manyFieldController = (props) => {
|
|
4648
4648
|
const {
|
|
4649
4649
|
relation,
|
|
@@ -4701,10 +4701,10 @@ var many2manyFieldController = (props) => {
|
|
|
4701
4701
|
return null;
|
|
4702
4702
|
}, [modelInstance]);
|
|
4703
4703
|
const default_order = viewResponse && viewResponse?.views?.list?.default_order;
|
|
4704
|
-
const optionsObject = tab?.options ? (0,
|
|
4704
|
+
const optionsObject = tab?.options ? (0, import_utils9.evalJSONContext)(tab?.options) : (options ? (0, import_utils9.evalJSONContext)(options) : {}) || {};
|
|
4705
4705
|
const fetchData = async () => {
|
|
4706
4706
|
try {
|
|
4707
|
-
const domainParse = typeof domain === "string" ? (0,
|
|
4707
|
+
const domainParse = typeof domain === "string" ? (0, import_utils9.evalJSONDomain)(domain, contextObject) : Array.isArray(domain) ? domain : [];
|
|
4708
4708
|
setDomainMany2Many(domainParse);
|
|
4709
4709
|
setPage(0);
|
|
4710
4710
|
} catch (err) {
|
|
@@ -4728,7 +4728,7 @@ var many2manyFieldController = (props) => {
|
|
|
4728
4728
|
context: contextObject,
|
|
4729
4729
|
fields: groupByDomain?.fields,
|
|
4730
4730
|
groupby: [groupByDomain?.contexts[0]?.group_by],
|
|
4731
|
-
sort: order ? order : default_order ? (0,
|
|
4731
|
+
sort: order ? order : default_order ? (0, import_utils9.formatSortingString)(default_order) : ""
|
|
4732
4732
|
};
|
|
4733
4733
|
const enabled = enabledCallAPI && !!specification && !!relation && !!domainMany2Many && !!viewResponse;
|
|
4734
4734
|
const {
|
|
@@ -4792,7 +4792,7 @@ var many2manyFieldController = (props) => {
|
|
|
4792
4792
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
4793
4793
|
var import_react18 = require("react");
|
|
4794
4794
|
var import_constants2 = require("@fctc/interface-logic/constants");
|
|
4795
|
-
var
|
|
4795
|
+
var import_utils10 = require("@fctc/interface-logic/utils");
|
|
4796
4796
|
var many2manyTagsController = (props) => {
|
|
4797
4797
|
const {
|
|
4798
4798
|
relation,
|
|
@@ -4807,9 +4807,9 @@ var many2manyTagsController = (props) => {
|
|
|
4807
4807
|
const isUser = relation === "res.users" || relation === "res.partner";
|
|
4808
4808
|
const { env } = (0, provider_exports.useEnv)();
|
|
4809
4809
|
const { useGetSelection: useGetSelection3 } = (0, provider_exports.useService)();
|
|
4810
|
-
const addtionalFields = optionsFields ? (0,
|
|
4810
|
+
const addtionalFields = optionsFields ? (0, import_utils10.evalJSONContext)(optionsFields) : null;
|
|
4811
4811
|
const domainObject = (0, import_react18.useMemo)(
|
|
4812
|
-
() => (0,
|
|
4812
|
+
() => (0, import_utils10.evalJSONDomain)(domain, JSON.parse(JSON.stringify(formValues || {}))),
|
|
4813
4813
|
[domain, formValues]
|
|
4814
4814
|
);
|
|
4815
4815
|
const data = {
|
|
@@ -4854,7 +4854,7 @@ var many2manyTagsController = (props) => {
|
|
|
4854
4854
|
|
|
4855
4855
|
// src/widget/basic/status-bar-field/controller.ts
|
|
4856
4856
|
var import_react19 = require("react");
|
|
4857
|
-
var
|
|
4857
|
+
var import_utils11 = require("@fctc/interface-logic/utils");
|
|
4858
4858
|
var durationController = (props) => {
|
|
4859
4859
|
const { relation, domain, formValues, name, id, model, onRefetch, enabled } = props;
|
|
4860
4860
|
const specification = {
|
|
@@ -4870,7 +4870,7 @@ var durationController = (props) => {
|
|
|
4870
4870
|
const listDataProps = {
|
|
4871
4871
|
model: relation,
|
|
4872
4872
|
specification,
|
|
4873
|
-
domain: (0,
|
|
4873
|
+
domain: (0, import_utils11.evalJSONDomain)(domain, JSON.parse(JSON.stringify(formValues))),
|
|
4874
4874
|
limit: 10,
|
|
4875
4875
|
offset: 0,
|
|
4876
4876
|
fields: "",
|
|
@@ -4920,10 +4920,10 @@ var durationController = (props) => {
|
|
|
4920
4920
|
};
|
|
4921
4921
|
|
|
4922
4922
|
// src/widget/basic/priority-field/controller.ts
|
|
4923
|
-
var
|
|
4923
|
+
var import_utils12 = require("@fctc/interface-logic/utils");
|
|
4924
4924
|
var priorityFieldController = (props) => {
|
|
4925
4925
|
const { name, model, index, actionData, context, onChange, specification } = props;
|
|
4926
|
-
const _context = { ...(0,
|
|
4926
|
+
const _context = { ...(0, import_utils12.evalJSONContext)(actionData?.context) };
|
|
4927
4927
|
const contextObject = { ...context, ..._context };
|
|
4928
4928
|
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
4929
4929
|
const { mutateAsync: fetchSave } = useSave3();
|
|
@@ -5891,12 +5891,12 @@ var dateFieldController = (props) => {
|
|
|
5891
5891
|
|
|
5892
5892
|
// src/widget/basic/copy-link-button/controller.ts
|
|
5893
5893
|
var import_react21 = require("react");
|
|
5894
|
-
var
|
|
5894
|
+
var import_utils13 = require("@fctc/interface-logic/utils");
|
|
5895
5895
|
var copyLinkButtonController = (props) => {
|
|
5896
5896
|
const { value, defaultValue } = props;
|
|
5897
5897
|
const [isCopied, setIsCopied] = (0, import_react21.useState)(false);
|
|
5898
5898
|
const handleCopyToClipboard = async (value2) => {
|
|
5899
|
-
await (0,
|
|
5899
|
+
await (0, import_utils13.copyTextToClipboard)(value2);
|
|
5900
5900
|
setIsCopied(true);
|
|
5901
5901
|
setTimeout(() => setIsCopied(false), 2e3);
|
|
5902
5902
|
};
|
|
@@ -5909,12 +5909,12 @@ var copyLinkButtonController = (props) => {
|
|
|
5909
5909
|
};
|
|
5910
5910
|
|
|
5911
5911
|
// src/widget/basic/color-field/color-controller.ts
|
|
5912
|
-
var
|
|
5912
|
+
var import_utils14 = require("@fctc/interface-logic/utils");
|
|
5913
5913
|
var colorFieldController = (props) => {
|
|
5914
5914
|
const { value, isForm, name, formValues, idForm, model, actionData } = props;
|
|
5915
5915
|
const { env } = (0, provider_exports.useEnv)();
|
|
5916
5916
|
const { useSave: useSave3 } = (0, provider_exports.useService)();
|
|
5917
|
-
const _context = { ...(0,
|
|
5917
|
+
const _context = { ...(0, import_utils14.evalJSONContext)(actionData?.context) || {} };
|
|
5918
5918
|
const contextObject = { ...env.context, ..._context };
|
|
5919
5919
|
const idDefault = isForm ? idForm : formValues?.id;
|
|
5920
5920
|
const { mutate: onSave } = useSave3();
|
|
@@ -5943,7 +5943,7 @@ var colorFieldController = (props) => {
|
|
|
5943
5943
|
|
|
5944
5944
|
// src/widget/basic/binary-field/controller.ts
|
|
5945
5945
|
var import_react22 = require("react");
|
|
5946
|
-
var
|
|
5946
|
+
var import_utils15 = require("@fctc/interface-logic/utils");
|
|
5947
5947
|
var binaryFieldController = (props) => {
|
|
5948
5948
|
const { name, methods, readonly = false, value } = props;
|
|
5949
5949
|
const inputId = (0, import_react22.useId)();
|
|
@@ -6000,11 +6000,11 @@ var binaryFieldController = (props) => {
|
|
|
6000
6000
|
};
|
|
6001
6001
|
const checkIsImageLink = (url) => {
|
|
6002
6002
|
const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|svg|tiff|ico)$/i;
|
|
6003
|
-
return imageExtensions.test(url) || (0,
|
|
6003
|
+
return imageExtensions.test(url) || (0, import_utils15.isBase64Image)(url) || isBlobUrl(url);
|
|
6004
6004
|
};
|
|
6005
6005
|
const getImageBase64WithMimeType = (base64) => {
|
|
6006
6006
|
if (typeof base64 !== "string" || base64.length < 10) return null;
|
|
6007
|
-
if ((0,
|
|
6007
|
+
if ((0, import_utils15.isBase64Image)(base64)) return base64;
|
|
6008
6008
|
let mimeType = null;
|
|
6009
6009
|
if (base64.startsWith("iVBORw0KGgo")) mimeType = "image/png";
|
|
6010
6010
|
else if (base64.startsWith("/9j/")) mimeType = "image/jpeg";
|
|
@@ -6107,7 +6107,7 @@ var tableHeadController = (props) => {
|
|
|
6107
6107
|
|
|
6108
6108
|
// src/widget/advance/table/table-view/controller.ts
|
|
6109
6109
|
var import_react24 = require("react");
|
|
6110
|
-
var
|
|
6110
|
+
var import_utils17 = require("@fctc/interface-logic/utils");
|
|
6111
6111
|
var tableController = ({ data }) => {
|
|
6112
6112
|
const [rows, setRows] = (0, import_react24.useState)(null);
|
|
6113
6113
|
const [columns, setColumns] = (0, import_react24.useState)(null);
|
|
@@ -6145,7 +6145,7 @@ var tableController = ({ data }) => {
|
|
|
6145
6145
|
let cols = [];
|
|
6146
6146
|
try {
|
|
6147
6147
|
cols = mergeFields?.filter((item) => {
|
|
6148
|
-
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ?
|
|
6148
|
+
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.column_invisible) : item?.invisible ? import_utils17.domainHelper.matchDomains(data.context, item?.invisible) : false);
|
|
6149
6149
|
})?.map((field) => {
|
|
6150
6150
|
return {
|
|
6151
6151
|
name: field?.name,
|
|
@@ -6329,7 +6329,7 @@ var tableGroupController = (props) => {
|
|
|
6329
6329
|
|
|
6330
6330
|
// src/widget/advance/search/controller.ts
|
|
6331
6331
|
var import_constants3 = require("@fctc/interface-logic/constants");
|
|
6332
|
-
var
|
|
6332
|
+
var import_utils19 = require("@fctc/interface-logic/utils");
|
|
6333
6333
|
var import_moment2 = __toESM(require_moment());
|
|
6334
6334
|
var import_react26 = require("react");
|
|
6335
6335
|
var searchController = ({
|
|
@@ -6346,9 +6346,9 @@ var searchController = ({
|
|
|
6346
6346
|
const [selectedTags, setSelectedTags] = (0, import_react26.useState)(null);
|
|
6347
6347
|
const [searchString, setSearchString] = (0, import_react26.useState)("");
|
|
6348
6348
|
const [searchMap, setSearchMap] = (0, import_react26.useState)({});
|
|
6349
|
-
const actionContext = typeof context === "string" ? (0,
|
|
6349
|
+
const actionContext = typeof context === "string" ? (0, import_utils19.evalJSONContext)(context) : context;
|
|
6350
6350
|
const contextSearch = { ...env.context, ...actionContext };
|
|
6351
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0,
|
|
6351
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, import_utils19.evalJSONDomain)(domain, contextSearch) : [];
|
|
6352
6352
|
const clearSearch = () => {
|
|
6353
6353
|
setFilterBy([]);
|
|
6354
6354
|
setGroupBy([]);
|
|
@@ -6363,7 +6363,7 @@ var searchController = ({
|
|
|
6363
6363
|
const dataModel = viewData?.models?.[model];
|
|
6364
6364
|
const searchViews = viewData?.views?.search;
|
|
6365
6365
|
const searchByItems = searchViews?.search_by?.filter(
|
|
6366
|
-
(item) => !
|
|
6366
|
+
(item) => !import_utils19.domainHelper.matchDomains(contextSearch, item.invisible)
|
|
6367
6367
|
)?.map(
|
|
6368
6368
|
({ string, name, filter_domain, operator, widget }, index) => ({
|
|
6369
6369
|
dataIndex: index,
|
|
@@ -6376,10 +6376,10 @@ var searchController = ({
|
|
|
6376
6376
|
})
|
|
6377
6377
|
);
|
|
6378
6378
|
const filterByItems = searchViews?.filter_by.filter((item) => {
|
|
6379
|
-
return !
|
|
6379
|
+
return !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible);
|
|
6380
6380
|
})?.map((item) => ({ ...item, active: false }));
|
|
6381
6381
|
const groupByItems = searchViews?.group_by.filter(
|
|
6382
|
-
(item) => !
|
|
6382
|
+
(item) => !import_utils19.domainHelper.matchDomains(contextSearch, item?.invisible)
|
|
6383
6383
|
).map((item) => ({
|
|
6384
6384
|
...item,
|
|
6385
6385
|
string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
|
|
@@ -6456,14 +6456,14 @@ var searchController = ({
|
|
|
6456
6456
|
}
|
|
6457
6457
|
let valueDomainItem = value?.value;
|
|
6458
6458
|
if (value?.modelType === "date") {
|
|
6459
|
-
valueDomainItem = (0,
|
|
6459
|
+
valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value);
|
|
6460
6460
|
} else if (value?.modelType === "datetime") {
|
|
6461
6461
|
if (value?.operator === "<=" || value?.operator === "<") {
|
|
6462
|
-
const parsedDate = (0,
|
|
6462
|
+
const parsedDate = (0, import_utils19.validateAndParseDate)(value?.value, true);
|
|
6463
6463
|
const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
|
|
6464
6464
|
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");
|
|
6465
6465
|
} else {
|
|
6466
|
-
valueDomainItem = (0,
|
|
6466
|
+
valueDomainItem = (0, import_utils19.validateAndParseDate)(value?.value, true);
|
|
6467
6467
|
}
|
|
6468
6468
|
}
|
|
6469
6469
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
@@ -6542,7 +6542,7 @@ var searchController = ({
|
|
|
6542
6542
|
}, [searchMap]);
|
|
6543
6543
|
const handleAddTagSearch = (tag) => {
|
|
6544
6544
|
const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
|
|
6545
|
-
const domainFormat = new
|
|
6545
|
+
const domainFormat = new import_utils19.domainHelper.Domain(domain2);
|
|
6546
6546
|
if (type === import_constants3.SearchType.FILTER) {
|
|
6547
6547
|
addSearchItems(`${import_constants3.SearchType.FILTER}_${groupIndex}`, {
|
|
6548
6548
|
...tag,
|
package/dist/widget.mjs
CHANGED
|
@@ -59,7 +59,7 @@ var require_moment = __commonJS({
|
|
|
59
59
|
function hasOwnProp(a, b) {
|
|
60
60
|
return Object.prototype.hasOwnProperty.call(a, b);
|
|
61
61
|
}
|
|
62
|
-
function
|
|
62
|
+
function isObjectEmpty5(obj) {
|
|
63
63
|
if (Object.getOwnPropertyNames) {
|
|
64
64
|
return Object.getOwnPropertyNames(obj).length === 0;
|
|
65
65
|
} else {
|
|
@@ -2198,7 +2198,7 @@ var require_moment = __commonJS({
|
|
|
2198
2198
|
strict = locale2;
|
|
2199
2199
|
locale2 = void 0;
|
|
2200
2200
|
}
|
|
2201
|
-
if (isObject(input) &&
|
|
2201
|
+
if (isObject(input) && isObjectEmpty5(input) || isArray(input) && input.length === 0) {
|
|
2202
2202
|
input = void 0;
|
|
2203
2203
|
}
|
|
2204
2204
|
c._isAMomentObject = true;
|
|
@@ -2617,7 +2617,7 @@ var require_moment = __commonJS({
|
|
|
2617
2617
|
return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0;
|
|
2618
2618
|
}
|
|
2619
2619
|
function isMomentInputObject(input) {
|
|
2620
|
-
var objectTest = isObject(input) && !
|
|
2620
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2621
2621
|
"years",
|
|
2622
2622
|
"year",
|
|
2623
2623
|
"y",
|
|
@@ -2659,7 +2659,7 @@ var require_moment = __commonJS({
|
|
|
2659
2659
|
return arrayTest && dataTypeTest;
|
|
2660
2660
|
}
|
|
2661
2661
|
function isCalendarSpec(input) {
|
|
2662
|
-
var objectTest = isObject(input) && !
|
|
2662
|
+
var objectTest = isObject(input) && !isObjectEmpty5(input), propertyTest = false, properties = [
|
|
2663
2663
|
"sameDay",
|
|
2664
2664
|
"nextDay",
|
|
2665
2665
|
"lastDay",
|
|
@@ -4400,7 +4400,7 @@ import { useMemo as useMemo7, useState as useState6 } from "react";
|
|
|
4400
4400
|
import {
|
|
4401
4401
|
evalJSONDomain,
|
|
4402
4402
|
formatSortingString,
|
|
4403
|
-
isObjectEmpty as
|
|
4403
|
+
isObjectEmpty as isObjectEmpty4
|
|
4404
4404
|
} from "@fctc/interface-logic/utils";
|
|
4405
4405
|
|
|
4406
4406
|
// src/hooks/utils/use-click-outside.ts
|