@fctc/widget-logic 4.6.6 → 4.6.8
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 +1 -5
- package/dist/hooks.mjs +19 -23
- package/dist/index.js +95 -36
- package/dist/index.mjs +131 -77
- package/dist/widget.d.mts +8 -0
- package/dist/widget.d.ts +8 -0
- package/dist/widget.js +94 -25
- package/dist/widget.mjs +123 -58
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -4264,13 +4264,13 @@ import {
|
|
|
4264
4264
|
} from "@fctc/interface-logic/hooks";
|
|
4265
4265
|
|
|
4266
4266
|
// src/hooks/core/use-app-provider.tsx
|
|
4267
|
-
import { createContext, useContext, useMemo as
|
|
4267
|
+
import { createContext, useContext, useMemo as useMemo5 } from "react";
|
|
4268
4268
|
|
|
4269
4269
|
// src/hooks/core/use-menu.ts
|
|
4270
|
-
import { useMemo
|
|
4270
|
+
import { useMemo, useState as useState2 } from "react";
|
|
4271
4271
|
|
|
4272
4272
|
// src/hooks/core/use-call-action.ts
|
|
4273
|
-
import { useCallback,
|
|
4273
|
+
import { useCallback, useState } from "react";
|
|
4274
4274
|
|
|
4275
4275
|
// src/provider.ts
|
|
4276
4276
|
var provider_exports = {};
|
|
@@ -4294,12 +4294,8 @@ var useCallAction = () => {
|
|
|
4294
4294
|
context
|
|
4295
4295
|
}) => {
|
|
4296
4296
|
try {
|
|
4297
|
-
const stableEnvContext = useMemo(
|
|
4298
|
-
() => env?.context,
|
|
4299
|
-
[env?.context?.lang]
|
|
4300
|
-
);
|
|
4301
4297
|
const menuContext = {
|
|
4302
|
-
...
|
|
4298
|
+
...env?.context,
|
|
4303
4299
|
...context
|
|
4304
4300
|
};
|
|
4305
4301
|
const loadRes = await queryLoadAction.mutateAsync({
|
|
@@ -4533,7 +4529,7 @@ var useMenu = ({
|
|
|
4533
4529
|
defaultService
|
|
4534
4530
|
);
|
|
4535
4531
|
const [menuId, setMenuId] = useState2(void 0);
|
|
4536
|
-
const configedIconData =
|
|
4532
|
+
const configedIconData = useMemo(() => {
|
|
4537
4533
|
const data = menuData.data;
|
|
4538
4534
|
return data?.map((item) => {
|
|
4539
4535
|
return {
|
|
@@ -4615,7 +4611,7 @@ var useDetail = (sub) => {
|
|
|
4615
4611
|
|
|
4616
4612
|
// src/hooks/core/use-profile.ts
|
|
4617
4613
|
import { useQuery as useQuery2 } from "@tanstack/react-query";
|
|
4618
|
-
import { useEffect as useEffect3, useMemo as
|
|
4614
|
+
import { useEffect as useEffect3, useMemo as useMemo2 } from "react";
|
|
4619
4615
|
import { useTranslation } from "react-i18next";
|
|
4620
4616
|
var useProfile = ({ service }) => {
|
|
4621
4617
|
const { setUid, setLang, setUserInfo, env } = (0, provider_exports.useEnv)();
|
|
@@ -4638,7 +4634,7 @@ var useProfile = ({ service }) => {
|
|
|
4638
4634
|
i18n2.changeLanguage(userLocale?.id.split("_")[0]);
|
|
4639
4635
|
}
|
|
4640
4636
|
}, [userInfoQuery.isFetched]);
|
|
4641
|
-
const context =
|
|
4637
|
+
const context = useMemo2(() => {
|
|
4642
4638
|
if (userInfoQuery.data?.sub && userInfoQuery.data?.locale) {
|
|
4643
4639
|
return {
|
|
4644
4640
|
uid: Number(userInfoQuery.data.sub),
|
|
@@ -4662,7 +4658,7 @@ var useUser = ({ service }) => {
|
|
|
4662
4658
|
};
|
|
4663
4659
|
|
|
4664
4660
|
// src/hooks/core/use-view-v2.ts
|
|
4665
|
-
import { useMemo as
|
|
4661
|
+
import { useMemo as useMemo3 } from "react";
|
|
4666
4662
|
var useViewV2 = ({
|
|
4667
4663
|
action,
|
|
4668
4664
|
context,
|
|
@@ -4671,7 +4667,7 @@ var useViewV2 = ({
|
|
|
4671
4667
|
xNode
|
|
4672
4668
|
}) => {
|
|
4673
4669
|
const { useGetView: useGetView2 } = (0, provider_exports.useService)();
|
|
4674
|
-
const viewParams =
|
|
4670
|
+
const viewParams = useMemo3(() => {
|
|
4675
4671
|
if (!action || !action?.res_model) {
|
|
4676
4672
|
return void 0;
|
|
4677
4673
|
}
|
|
@@ -4705,7 +4701,7 @@ var useViewV2 = ({
|
|
|
4705
4701
|
|
|
4706
4702
|
// src/hooks/core/use-company.ts
|
|
4707
4703
|
import { useQuery as useQuery3 } from "@tanstack/react-query";
|
|
4708
|
-
import { useEffect as useEffect4, useMemo as
|
|
4704
|
+
import { useEffect as useEffect4, useMemo as useMemo4 } from "react";
|
|
4709
4705
|
var useCompany = ({ service }) => {
|
|
4710
4706
|
const { setAllowCompanies, setCompanies, setDefaultCompany, env } = (0, provider_exports.useEnv)();
|
|
4711
4707
|
const { useGetCurrentCompany: useGetCurrentCompany2, useGetCompanyInfo: useGetCompanyInfo2 } = (0, provider_exports.useService)();
|
|
@@ -4720,7 +4716,7 @@ var useCompany = ({ service }) => {
|
|
|
4720
4716
|
queryFn: fetchCurrentCompany,
|
|
4721
4717
|
enabled: !!env?.defaultCompany
|
|
4722
4718
|
});
|
|
4723
|
-
const current_company_id =
|
|
4719
|
+
const current_company_id = useMemo4(() => {
|
|
4724
4720
|
return currentCompany.data?.current_company_id;
|
|
4725
4721
|
}, [currentCompany.data]);
|
|
4726
4722
|
useEffect4(() => {
|
|
@@ -4771,7 +4767,7 @@ var AppProvider = ({
|
|
|
4771
4767
|
const { env } = (0, provider_exports.useEnv)();
|
|
4772
4768
|
const user = useUser({ service: env.default_service });
|
|
4773
4769
|
const company = useCompany({ service: env.default_service });
|
|
4774
|
-
const menuContext =
|
|
4770
|
+
const menuContext = useMemo5(() => {
|
|
4775
4771
|
return combineContexts([
|
|
4776
4772
|
{
|
|
4777
4773
|
...user?.context,
|
|
@@ -4788,10 +4784,10 @@ var AppProvider = ({
|
|
|
4788
4784
|
domain: menuParams?.domain,
|
|
4789
4785
|
defaultService: env.default_service
|
|
4790
4786
|
});
|
|
4791
|
-
const action =
|
|
4787
|
+
const action = useMemo5(() => {
|
|
4792
4788
|
return menu?.state?.action;
|
|
4793
4789
|
}, [menu?.state?.action, env?.context?.lang]);
|
|
4794
|
-
const viewContext =
|
|
4790
|
+
const viewContext = useMemo5(() => {
|
|
4795
4791
|
return combineContexts([
|
|
4796
4792
|
menuContext,
|
|
4797
4793
|
{ ...(0, utils_exports.evalJSONContext)(action?.context) }
|
|
@@ -4895,7 +4891,7 @@ var useGetAction = ({
|
|
|
4895
4891
|
};
|
|
4896
4892
|
|
|
4897
4893
|
// src/hooks/core/use-get-specification.ts
|
|
4898
|
-
import { useMemo as
|
|
4894
|
+
import { useMemo as useMemo6 } from "react";
|
|
4899
4895
|
var useGetSpecification = ({
|
|
4900
4896
|
model,
|
|
4901
4897
|
viewData,
|
|
@@ -4907,13 +4903,13 @@ var useGetSpecification = ({
|
|
|
4907
4903
|
fields
|
|
4908
4904
|
};
|
|
4909
4905
|
const initModel = useModel();
|
|
4910
|
-
const modelInstance =
|
|
4906
|
+
const modelInstance = useMemo6(() => {
|
|
4911
4907
|
if (viewData) {
|
|
4912
4908
|
return initModel.initModel(baseModel);
|
|
4913
4909
|
}
|
|
4914
4910
|
return null;
|
|
4915
4911
|
}, [baseModel, viewData, model]);
|
|
4916
|
-
const specification =
|
|
4912
|
+
const specification = useMemo6(() => {
|
|
4917
4913
|
if (modelInstance) {
|
|
4918
4914
|
return modelInstance.getSpecification();
|
|
4919
4915
|
}
|
|
@@ -4923,7 +4919,7 @@ var useGetSpecification = ({
|
|
|
4923
4919
|
};
|
|
4924
4920
|
|
|
4925
4921
|
// src/hooks/core/use-list-data.ts
|
|
4926
|
-
import { useMemo as
|
|
4922
|
+
import { useMemo as useMemo7, useState as useState5 } from "react";
|
|
4927
4923
|
import {
|
|
4928
4924
|
evalJSONDomain,
|
|
4929
4925
|
formatSortingString,
|
|
@@ -5067,7 +5063,7 @@ var useListData = ({
|
|
|
5067
5063
|
viewData,
|
|
5068
5064
|
fields: mode === "kanban" ? viewData?.views?.kanban?.fields : viewData?.views?.list?.fields
|
|
5069
5065
|
});
|
|
5070
|
-
const listDataProps =
|
|
5066
|
+
const listDataProps = useMemo7(() => {
|
|
5071
5067
|
if (!viewData || !action || !context) {
|
|
5072
5068
|
return null;
|
|
5073
5069
|
}
|
|
@@ -5430,7 +5426,7 @@ var statusDropdownController = (props) => {
|
|
|
5430
5426
|
};
|
|
5431
5427
|
|
|
5432
5428
|
// src/widget/basic/many2one-field/controller.ts
|
|
5433
|
-
import { useCallback as useCallback4, useEffect as useEffect10, useMemo as
|
|
5429
|
+
import { useCallback as useCallback4, useEffect as useEffect10, useMemo as useMemo8, useState as useState7 } from "react";
|
|
5434
5430
|
var MANY2ONE_EXTERNAL = "many2one_external";
|
|
5435
5431
|
var many2oneFieldController = (props) => {
|
|
5436
5432
|
const {
|
|
@@ -5497,7 +5493,7 @@ var many2oneFieldController = (props) => {
|
|
|
5497
5493
|
service: widget === MANY2ONE_EXTERNAL ? optionsObject?.service : service,
|
|
5498
5494
|
xNode
|
|
5499
5495
|
});
|
|
5500
|
-
const selectOptions =
|
|
5496
|
+
const selectOptions = useMemo8(() => {
|
|
5501
5497
|
return dataOfSelection?.records?.map((val) => ({
|
|
5502
5498
|
value: val?.id,
|
|
5503
5499
|
label: val?.display_name || val?.name,
|
|
@@ -5508,7 +5504,7 @@ var many2oneFieldController = (props) => {
|
|
|
5508
5504
|
setListOptions(selectOptions);
|
|
5509
5505
|
setDomainModal(domainObject);
|
|
5510
5506
|
}, [selectOptions]);
|
|
5511
|
-
const parsedFormValues =
|
|
5507
|
+
const parsedFormValues = useMemo8(
|
|
5512
5508
|
() => JSON.parse(
|
|
5513
5509
|
JSON.stringify({
|
|
5514
5510
|
...formValues,
|
|
@@ -5865,7 +5861,7 @@ var many2manyFieldController = (props) => {
|
|
|
5865
5861
|
};
|
|
5866
5862
|
|
|
5867
5863
|
// src/widget/basic/many2many-tags-field/controller.ts
|
|
5868
|
-
import { useCallback as useCallback5, useEffect as useEffect12, useMemo as
|
|
5864
|
+
import { useCallback as useCallback5, useEffect as useEffect12, useMemo as useMemo9, useState as useState8 } from "react";
|
|
5869
5865
|
import { WIDGETAVATAR, WIDGETCOLOR } from "@fctc/interface-logic/constants";
|
|
5870
5866
|
import { evalJSONContext as evalJSONContext5, evalJSONDomain as evalJSONDomain4 } from "@fctc/interface-logic/utils";
|
|
5871
5867
|
var many2manyTagsController = (props) => {
|
|
@@ -5897,7 +5893,7 @@ var many2manyTagsController = (props) => {
|
|
|
5897
5893
|
...fieldContext ?? {},
|
|
5898
5894
|
...env?.context
|
|
5899
5895
|
};
|
|
5900
|
-
const parsedFormValues =
|
|
5896
|
+
const parsedFormValues = useMemo9(
|
|
5901
5897
|
() => JSON.parse(
|
|
5902
5898
|
JSON.stringify({
|
|
5903
5899
|
...formValues,
|
|
@@ -5938,7 +5934,7 @@ var many2manyTagsController = (props) => {
|
|
|
5938
5934
|
xNode,
|
|
5939
5935
|
enabled: false
|
|
5940
5936
|
});
|
|
5941
|
-
const selectOptions =
|
|
5937
|
+
const selectOptions = useMemo9(() => {
|
|
5942
5938
|
return dataOfSelection?.records?.map((val) => ({
|
|
5943
5939
|
value: val.id,
|
|
5944
5940
|
label: val.name ?? val.display_name,
|
|
@@ -6445,7 +6441,7 @@ var binaryFieldController = (props) => {
|
|
|
6445
6441
|
};
|
|
6446
6442
|
|
|
6447
6443
|
// src/widget/advance/table/table-head/controller.ts
|
|
6448
|
-
import { useMemo as
|
|
6444
|
+
import { useMemo as useMemo10, useRef as useRef5 } from "react";
|
|
6449
6445
|
var tableHeadController = (props) => {
|
|
6450
6446
|
const {
|
|
6451
6447
|
typeTable,
|
|
@@ -6458,19 +6454,19 @@ var tableHeadController = (props) => {
|
|
|
6458
6454
|
const { rowIds: recordIds } = useGetRowIds(tableRef);
|
|
6459
6455
|
const selectedRowKeysRef = useRef5(recordIds);
|
|
6460
6456
|
const isGroupTable = typeTable === "group";
|
|
6461
|
-
const recordsCheckedGroup =
|
|
6457
|
+
const recordsCheckedGroup = useMemo10(() => {
|
|
6462
6458
|
if (!rows || !groupByList) return 0;
|
|
6463
6459
|
const groupBy = typeof groupByList === "object" ? groupByList?.contexts?.[0]?.group_by : void 0;
|
|
6464
6460
|
return countSum(rows, groupBy);
|
|
6465
6461
|
}, [rows, groupByList]);
|
|
6466
|
-
const isAllGroupChecked =
|
|
6462
|
+
const isAllGroupChecked = useMemo10(() => {
|
|
6467
6463
|
if (!isGroupTable || !selectedRowKeys?.length) return false;
|
|
6468
6464
|
const selectedLength = selectedRowKeys.filter((id) => id !== -1).length;
|
|
6469
6465
|
const allRecordsSelected = recordIds.length === selectedRowKeys.length ? recordIds.length === selectedLength : false;
|
|
6470
6466
|
const allGroupsSelected = recordsCheckedGroup === selectedRowKeys.length;
|
|
6471
6467
|
return allGroupsSelected || allRecordsSelected;
|
|
6472
6468
|
}, [isGroupTable, selectedRowKeys, recordIds, recordsCheckedGroup]);
|
|
6473
|
-
const isAllNormalChecked =
|
|
6469
|
+
const isAllNormalChecked = useMemo10(() => {
|
|
6474
6470
|
if (isGroupTable || !selectedRowKeys?.length || !rows?.length) return false;
|
|
6475
6471
|
return selectedRowKeys.length === rows.length && selectedRowKeys.every(
|
|
6476
6472
|
(id) => rows.some((record) => record.id === id)
|
|
@@ -6511,19 +6507,19 @@ var tableHeadController = (props) => {
|
|
|
6511
6507
|
};
|
|
6512
6508
|
|
|
6513
6509
|
// src/widget/advance/table/table-view/controller.ts
|
|
6514
|
-
import { useCallback as useCallback6, useEffect as useEffect14, useMemo as
|
|
6510
|
+
import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo11, useState as useState13 } from "react";
|
|
6515
6511
|
import { domainHelper } from "@fctc/interface-logic/utils";
|
|
6516
6512
|
var tableController = ({ data }) => {
|
|
6517
6513
|
const [rows, setRows] = useState13([]);
|
|
6518
6514
|
const [columnVisibility, setColumnVisibility] = useState13({});
|
|
6519
|
-
const dataModelFields =
|
|
6515
|
+
const dataModelFields = useMemo11(() => {
|
|
6520
6516
|
return data?.fields?.map((field) => ({
|
|
6521
6517
|
...data.dataModel?.[field?.name],
|
|
6522
6518
|
...field,
|
|
6523
6519
|
string: field?.string || data.dataModel?.[field?.name]?.string
|
|
6524
6520
|
})) ?? [];
|
|
6525
6521
|
}, [data?.fields, data?.dataModel]);
|
|
6526
|
-
const mergeFields =
|
|
6522
|
+
const mergeFields = useMemo11(
|
|
6527
6523
|
() => mergeButtons(dataModelFields),
|
|
6528
6524
|
[dataModelFields]
|
|
6529
6525
|
);
|
|
@@ -6552,7 +6548,7 @@ var tableController = ({ data }) => {
|
|
|
6552
6548
|
useEffect14(() => {
|
|
6553
6549
|
setRows(transformData(data?.records));
|
|
6554
6550
|
}, [data?.records, transformData]);
|
|
6555
|
-
const columns =
|
|
6551
|
+
const columns = useMemo11(() => {
|
|
6556
6552
|
try {
|
|
6557
6553
|
return mergeFields?.filter((item) => {
|
|
6558
6554
|
return item?.widget !== "details_Receive_money" && !(item?.column_invisible ? domainHelper.matchDomains(
|
|
@@ -6588,7 +6584,7 @@ var tableController = ({ data }) => {
|
|
|
6588
6584
|
};
|
|
6589
6585
|
|
|
6590
6586
|
// src/widget/advance/table/table-group/controller.ts
|
|
6591
|
-
import { useEffect as useEffect15, useMemo as
|
|
6587
|
+
import { useEffect as useEffect15, useMemo as useMemo12, useState as useState14 } from "react";
|
|
6592
6588
|
import { useAppSelector, selectList } from "@fctc/interface-logic/store";
|
|
6593
6589
|
var tableGroupController = (props) => {
|
|
6594
6590
|
const { env } = (0, provider_exports.useEnv)();
|
|
@@ -6613,7 +6609,7 @@ var tableGroupController = (props) => {
|
|
|
6613
6609
|
fromEnd: 1
|
|
6614
6610
|
});
|
|
6615
6611
|
const domain = row?.__domain;
|
|
6616
|
-
const processedData =
|
|
6612
|
+
const processedData = useMemo12(() => {
|
|
6617
6613
|
const calculateColSpanEmpty = () => {
|
|
6618
6614
|
const startIndex = columns.findIndex(
|
|
6619
6615
|
(col) => col.field.type === "monetary" && typeof row[col.key] === "number" || col.field.aggregator === "sum"
|
|
@@ -6628,7 +6624,7 @@ var tableGroupController = (props) => {
|
|
|
6628
6624
|
};
|
|
6629
6625
|
return calculateColSpanEmpty();
|
|
6630
6626
|
}, [columns, row]);
|
|
6631
|
-
const shouldFetchData =
|
|
6627
|
+
const shouldFetchData = useMemo12(() => {
|
|
6632
6628
|
return !!isShowGroup;
|
|
6633
6629
|
}, [isShowGroup]);
|
|
6634
6630
|
const enabled = shouldFetchData && !!processedData;
|
|
@@ -6723,14 +6719,14 @@ var tableGroupController = (props) => {
|
|
|
6723
6719
|
|
|
6724
6720
|
// src/widget/advance/search/controller.ts
|
|
6725
6721
|
var import_moment2 = __toESM(require_moment());
|
|
6726
|
-
import { SearchType } from "@fctc/interface-logic/constants";
|
|
6727
|
-
import {
|
|
6728
|
-
domainHelper as domainHelper2,
|
|
6729
|
-
evalJSONContext as evalJSONContext8,
|
|
6730
|
-
evalJSONDomain as evalJSONDomain6,
|
|
6731
|
-
validateAndParseDate
|
|
6732
|
-
} from "@fctc/interface-logic/utils";
|
|
6733
6722
|
import { useCallback as useCallback7, useEffect as useEffect16, useState as useState15 } from "react";
|
|
6723
|
+
|
|
6724
|
+
// src/constants.ts
|
|
6725
|
+
var constants_exports = {};
|
|
6726
|
+
__reExport(constants_exports, constants_star);
|
|
6727
|
+
import * as constants_star from "@fctc/interface-logic/constants";
|
|
6728
|
+
|
|
6729
|
+
// src/widget/advance/search/controller.ts
|
|
6734
6730
|
var searchController = ({
|
|
6735
6731
|
viewData,
|
|
6736
6732
|
model,
|
|
@@ -6745,9 +6741,11 @@ var searchController = ({
|
|
|
6745
6741
|
const [selectedTags, setSelectedTags] = useState15(null);
|
|
6746
6742
|
const [searchString, setSearchString] = useState15("");
|
|
6747
6743
|
const [searchMap, setSearchMap] = useState15({});
|
|
6748
|
-
const
|
|
6744
|
+
const [hoveredIndex, setHoveredIndex] = useState15(0);
|
|
6745
|
+
const [hoveredIndexSearchList, setHoveredIndexSearchList] = useState15(0);
|
|
6746
|
+
const actionContext = typeof context === "string" ? (0, utils_exports.evalJSONContext)(context) : context;
|
|
6749
6747
|
const contextSearch = { ...env.context, ...actionContext };
|
|
6750
|
-
const domainAction = domain ? Array.isArray(domain) ? [...domain] :
|
|
6748
|
+
const domainAction = domain ? Array.isArray(domain) ? [...domain] : (0, utils_exports.evalJSONDomain)(domain, contextSearch) : [];
|
|
6751
6749
|
const clearSearch = () => {
|
|
6752
6750
|
setFilterBy([]);
|
|
6753
6751
|
setGroupBy([]);
|
|
@@ -6762,23 +6760,23 @@ var searchController = ({
|
|
|
6762
6760
|
const dataModel = viewData?.models?.[model];
|
|
6763
6761
|
const searchViews = viewData?.views?.search;
|
|
6764
6762
|
const searchByItems = searchViews?.search_by?.filter(
|
|
6765
|
-
(item) => !
|
|
6763
|
+
(item) => !utils_exports.domainHelper.matchDomains(contextSearch, item.invisible)
|
|
6766
6764
|
)?.map(
|
|
6767
6765
|
({ string, name, filter_domain, operator, widget }, index) => ({
|
|
6768
6766
|
dataIndex: index,
|
|
6769
|
-
title: string ?? dataModel[name]?.string,
|
|
6770
|
-
name: name ?? dataModel[name]?.name,
|
|
6767
|
+
title: string ?? dataModel?.[name]?.string,
|
|
6768
|
+
name: name ?? dataModel?.[name]?.name,
|
|
6771
6769
|
filter_domain,
|
|
6772
6770
|
operator,
|
|
6773
6771
|
widget,
|
|
6774
|
-
type: dataModel[name]?.type
|
|
6772
|
+
type: dataModel?.[name]?.type
|
|
6775
6773
|
})
|
|
6776
6774
|
);
|
|
6777
6775
|
const filterByItems = searchViews?.filter_by.filter((item) => {
|
|
6778
|
-
return !
|
|
6776
|
+
return !utils_exports.domainHelper.matchDomains(contextSearch, item?.invisible);
|
|
6779
6777
|
})?.map((item) => ({ ...item, active: false }));
|
|
6780
6778
|
const groupByItems = searchViews?.group_by.filter(
|
|
6781
|
-
(item) => !
|
|
6779
|
+
(item) => !utils_exports.domainHelper.matchDomains(contextSearch, item?.invisible)
|
|
6782
6780
|
).map((item) => ({
|
|
6783
6781
|
...item,
|
|
6784
6782
|
string: item.string ?? viewData?.models?.[model]?.[item?.name?.split("group_by_")?.[1]]?.string
|
|
@@ -6832,7 +6830,7 @@ var searchController = ({
|
|
|
6832
6830
|
if (domainAction) {
|
|
6833
6831
|
const domain2 = [];
|
|
6834
6832
|
if (Array.isArray(domainAction) && domainAction.length > 0) {
|
|
6835
|
-
if (Object.keys(searchMap).some((key) => !key.includes(SearchType.GROUP))) {
|
|
6833
|
+
if (Object.keys(searchMap).some((key) => !key.includes(constants_exports.SearchType.GROUP))) {
|
|
6836
6834
|
domain2.push("&");
|
|
6837
6835
|
}
|
|
6838
6836
|
domainAction.forEach((domainItem) => {
|
|
@@ -6840,7 +6838,7 @@ var searchController = ({
|
|
|
6840
6838
|
});
|
|
6841
6839
|
}
|
|
6842
6840
|
Object.keys(searchMap).forEach((key, keyIndex, keys) => {
|
|
6843
|
-
if (!key?.includes(SearchType.GROUP)) {
|
|
6841
|
+
if (!key?.includes(constants_exports.SearchType.GROUP)) {
|
|
6844
6842
|
if (keys.length > 1 && keyIndex < keys.length - 1) {
|
|
6845
6843
|
domain2.push("&");
|
|
6846
6844
|
}
|
|
@@ -6855,14 +6853,14 @@ var searchController = ({
|
|
|
6855
6853
|
}
|
|
6856
6854
|
let valueDomainItem = value?.value;
|
|
6857
6855
|
if (value?.modelType === "date") {
|
|
6858
|
-
valueDomainItem = validateAndParseDate(value?.value);
|
|
6856
|
+
valueDomainItem = (0, utils_exports.validateAndParseDate)(value?.value);
|
|
6859
6857
|
} else if (value?.modelType === "datetime") {
|
|
6860
6858
|
if (value?.operator === "<=" || value?.operator === "<") {
|
|
6861
|
-
const parsedDate = validateAndParseDate(value?.value, true);
|
|
6859
|
+
const parsedDate = (0, utils_exports.validateAndParseDate)(value?.value, true);
|
|
6862
6860
|
const hasTime = (0, import_moment2.default)(value?.value).format("HH:mm:ss") !== "00:00:00";
|
|
6863
6861
|
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");
|
|
6864
6862
|
} else {
|
|
6865
|
-
valueDomainItem = validateAndParseDate(value?.value, true);
|
|
6863
|
+
valueDomainItem = (0, utils_exports.validateAndParseDate)(value?.value, true);
|
|
6866
6864
|
}
|
|
6867
6865
|
}
|
|
6868
6866
|
const operator = value?.modelType === "date" || value?.modelType === "datetime" || value?.modelType === "boolean" || value?.modelType === "integer" ? value?.operator ?? "=" : value.operator ?? "ilike";
|
|
@@ -6887,11 +6885,11 @@ var searchController = ({
|
|
|
6887
6885
|
modelType,
|
|
6888
6886
|
dataIndex
|
|
6889
6887
|
} = objValues[0];
|
|
6890
|
-
if (!key?.includes(SearchType.GROUP)) {
|
|
6888
|
+
if (!key?.includes(constants_exports.SearchType.GROUP)) {
|
|
6891
6889
|
const values = objValues?.map((objValue) => objValue.value);
|
|
6892
6890
|
return {
|
|
6893
6891
|
title,
|
|
6894
|
-
name: type === SearchType.SEARCH ? `${SearchType.SEARCH}_${String(dataIndex)}` : groupIndex ?? name,
|
|
6892
|
+
name: type === constants_exports.SearchType.SEARCH ? `${constants_exports.SearchType.SEARCH}_${String(dataIndex)}` : groupIndex ?? name,
|
|
6895
6893
|
values,
|
|
6896
6894
|
type,
|
|
6897
6895
|
widget,
|
|
@@ -6941,22 +6939,22 @@ var searchController = ({
|
|
|
6941
6939
|
}, [searchMap]);
|
|
6942
6940
|
const handleAddTagSearch = (tag) => {
|
|
6943
6941
|
const { domain: domain2, groupIndex, value, type, context: context2, dataIndex } = tag;
|
|
6944
|
-
const domainFormat = new
|
|
6945
|
-
if (type === SearchType.FILTER) {
|
|
6946
|
-
addSearchItems(`${SearchType.FILTER}_${groupIndex}`, {
|
|
6942
|
+
const domainFormat = new utils_exports.domainHelper.Domain(domain2);
|
|
6943
|
+
if (type === constants_exports.SearchType.FILTER) {
|
|
6944
|
+
addSearchItems(`${constants_exports.SearchType.FILTER}_${groupIndex}`, {
|
|
6947
6945
|
...tag,
|
|
6948
6946
|
domain: domain2 ? domainFormat.toList(context2) : null
|
|
6949
6947
|
});
|
|
6950
|
-
} else if (type === SearchType.SEARCH) {
|
|
6951
|
-
addSearchItems(`${SearchType.SEARCH}_${String(dataIndex)}`, {
|
|
6948
|
+
} else if (type === constants_exports.SearchType.SEARCH) {
|
|
6949
|
+
addSearchItems(`${constants_exports.SearchType.SEARCH}_${String(dataIndex)}`, {
|
|
6952
6950
|
...tag,
|
|
6953
6951
|
domain: domain2 ? domainFormat.toList({
|
|
6954
6952
|
...context2,
|
|
6955
6953
|
self: value
|
|
6956
6954
|
}) : null
|
|
6957
6955
|
});
|
|
6958
|
-
} else if (type === SearchType.GROUP) {
|
|
6959
|
-
addSearchItems(`${SearchType.GROUP}`, {
|
|
6956
|
+
} else if (type === constants_exports.SearchType.GROUP) {
|
|
6957
|
+
addSearchItems(`${constants_exports.SearchType.GROUP}`, {
|
|
6960
6958
|
...tag,
|
|
6961
6959
|
domain: domain2 ? domainFormat.toList({
|
|
6962
6960
|
context: context2,
|
|
@@ -6965,6 +6963,65 @@ var searchController = ({
|
|
|
6965
6963
|
});
|
|
6966
6964
|
}
|
|
6967
6965
|
};
|
|
6966
|
+
const onKeyDown = (e) => {
|
|
6967
|
+
if (!searchBy || searchBy.length === 0) return;
|
|
6968
|
+
switch (e.key) {
|
|
6969
|
+
case "Backspace": {
|
|
6970
|
+
if (!searchString && selectedTags && selectedTags.length > 0) {
|
|
6971
|
+
const lastTag = selectedTags[selectedTags.length - 1];
|
|
6972
|
+
if (!lastTag) return;
|
|
6973
|
+
const key = lastTag.type === constants_exports.SearchType.GROUP ? constants_exports.SearchType.GROUP : lastTag.name;
|
|
6974
|
+
removeKeyFromSearchMap({ key: String(key) });
|
|
6975
|
+
}
|
|
6976
|
+
break;
|
|
6977
|
+
}
|
|
6978
|
+
case "ArrowDown": {
|
|
6979
|
+
e.preventDefault();
|
|
6980
|
+
setHoveredIndex((prev) => {
|
|
6981
|
+
const maxIndex = searchBy.length - 1;
|
|
6982
|
+
const next = prev < maxIndex ? prev + 1 : prev;
|
|
6983
|
+
setHoveredIndexSearchList(next);
|
|
6984
|
+
return next;
|
|
6985
|
+
});
|
|
6986
|
+
break;
|
|
6987
|
+
}
|
|
6988
|
+
case "ArrowUp": {
|
|
6989
|
+
e.preventDefault();
|
|
6990
|
+
setHoveredIndex((prev) => {
|
|
6991
|
+
const next = prev > 0 ? prev - 1 : prev;
|
|
6992
|
+
setHoveredIndexSearchList(next);
|
|
6993
|
+
return next;
|
|
6994
|
+
});
|
|
6995
|
+
break;
|
|
6996
|
+
}
|
|
6997
|
+
case "Enter": {
|
|
6998
|
+
e.preventDefault();
|
|
6999
|
+
if (!searchString.trim()) return;
|
|
7000
|
+
const head = searchBy[hoveredIndex];
|
|
7001
|
+
if (!head) return;
|
|
7002
|
+
handleAddTagSearch({
|
|
7003
|
+
title: head.title,
|
|
7004
|
+
name: head.name,
|
|
7005
|
+
value: searchString,
|
|
7006
|
+
type: constants_exports.SearchType.SEARCH,
|
|
7007
|
+
domain: head.filter_domain,
|
|
7008
|
+
operator: head.operator,
|
|
7009
|
+
dataIndex: head.dataIndex,
|
|
7010
|
+
widget: head.widget,
|
|
7011
|
+
modelType: head.type
|
|
7012
|
+
});
|
|
7013
|
+
break;
|
|
7014
|
+
}
|
|
7015
|
+
default:
|
|
7016
|
+
break;
|
|
7017
|
+
}
|
|
7018
|
+
};
|
|
7019
|
+
const handleMouseEnter = (index) => {
|
|
7020
|
+
setHoveredIndexSearchList(index);
|
|
7021
|
+
};
|
|
7022
|
+
const handleMouseLeave = () => {
|
|
7023
|
+
setHoveredIndexSearchList(null);
|
|
7024
|
+
};
|
|
6968
7025
|
return {
|
|
6969
7026
|
groupBy,
|
|
6970
7027
|
searchBy,
|
|
@@ -6980,7 +7037,11 @@ var searchController = ({
|
|
|
6980
7037
|
onSearchString: onChangeSearchInput,
|
|
6981
7038
|
handleAddTagSearch,
|
|
6982
7039
|
domain: formatDomain(),
|
|
6983
|
-
context: contextSearch
|
|
7040
|
+
context: contextSearch,
|
|
7041
|
+
onKeyDown,
|
|
7042
|
+
handleMouseEnter,
|
|
7043
|
+
handleMouseLeave,
|
|
7044
|
+
hoveredIndexSearchList
|
|
6984
7045
|
};
|
|
6985
7046
|
};
|
|
6986
7047
|
|
|
@@ -6994,13 +7055,6 @@ import * as store_star from "@fctc/interface-logic/store";
|
|
|
6994
7055
|
|
|
6995
7056
|
// src/index.ts
|
|
6996
7057
|
__reExport(index_exports, store_exports);
|
|
6997
|
-
|
|
6998
|
-
// src/constants.ts
|
|
6999
|
-
var constants_exports = {};
|
|
7000
|
-
__reExport(constants_exports, constants_star);
|
|
7001
|
-
import * as constants_star from "@fctc/interface-logic/constants";
|
|
7002
|
-
|
|
7003
|
-
// src/index.ts
|
|
7004
7058
|
__reExport(index_exports, constants_exports);
|
|
7005
7059
|
|
|
7006
7060
|
// src/environment.ts
|
package/dist/widget.d.mts
CHANGED
|
@@ -109,6 +109,10 @@ declare const many2manyFieldController: (props: IMany2ManyControllerProps) => {
|
|
|
109
109
|
handleAddTagSearch: (tag: any) => void;
|
|
110
110
|
domain: any[] | undefined;
|
|
111
111
|
context: any;
|
|
112
|
+
onKeyDown: (e: any) => void;
|
|
113
|
+
handleMouseEnter: (index: number) => void;
|
|
114
|
+
handleMouseLeave: () => void;
|
|
115
|
+
hoveredIndexSearchList: number | null;
|
|
112
116
|
};
|
|
113
117
|
handleCreateNewOnPage: () => Promise<void>;
|
|
114
118
|
specification: Record<string, any> | null;
|
|
@@ -306,6 +310,10 @@ declare const searchController: ({ viewData, model, domain, context, fieldsList,
|
|
|
306
310
|
handleAddTagSearch: (tag: any) => void;
|
|
307
311
|
domain: any[] | undefined;
|
|
308
312
|
context: any;
|
|
313
|
+
onKeyDown: (e: any) => void;
|
|
314
|
+
handleMouseEnter: (index: number) => void;
|
|
315
|
+
handleMouseLeave: () => void;
|
|
316
|
+
hoveredIndexSearchList: number | null;
|
|
309
317
|
};
|
|
310
318
|
|
|
311
319
|
export { type ISelctionStateProps, type ITableHeadProps, type ITableProps, binaryFieldController, colorFieldController, copyLinkButtonController, dateFieldController, downLoadBinaryController, downloadFileController, durationController, many2manyFieldController, many2manyTagsController, many2oneButtonController, many2oneFieldController, priorityFieldController, searchController, statusDropdownController, tableController, tableGroupController, tableHeadController };
|
package/dist/widget.d.ts
CHANGED
|
@@ -109,6 +109,10 @@ declare const many2manyFieldController: (props: IMany2ManyControllerProps) => {
|
|
|
109
109
|
handleAddTagSearch: (tag: any) => void;
|
|
110
110
|
domain: any[] | undefined;
|
|
111
111
|
context: any;
|
|
112
|
+
onKeyDown: (e: any) => void;
|
|
113
|
+
handleMouseEnter: (index: number) => void;
|
|
114
|
+
handleMouseLeave: () => void;
|
|
115
|
+
hoveredIndexSearchList: number | null;
|
|
112
116
|
};
|
|
113
117
|
handleCreateNewOnPage: () => Promise<void>;
|
|
114
118
|
specification: Record<string, any> | null;
|
|
@@ -306,6 +310,10 @@ declare const searchController: ({ viewData, model, domain, context, fieldsList,
|
|
|
306
310
|
handleAddTagSearch: (tag: any) => void;
|
|
307
311
|
domain: any[] | undefined;
|
|
308
312
|
context: any;
|
|
313
|
+
onKeyDown: (e: any) => void;
|
|
314
|
+
handleMouseEnter: (index: number) => void;
|
|
315
|
+
handleMouseLeave: () => void;
|
|
316
|
+
hoveredIndexSearchList: number | null;
|
|
309
317
|
};
|
|
310
318
|
|
|
311
319
|
export { type ISelctionStateProps, type ITableHeadProps, type ITableProps, binaryFieldController, colorFieldController, copyLinkButtonController, dateFieldController, downLoadBinaryController, downloadFileController, durationController, many2manyFieldController, many2manyTagsController, many2oneButtonController, many2oneFieldController, priorityFieldController, searchController, statusDropdownController, tableController, tableGroupController, tableHeadController };
|