@creopse/react 0.0.12 → 0.0.13
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-jw_2nhs3.js → content-CM9eJ2st.js} +326 -6
- package/dist/{index-hI__ihu3.cjs → content-WeAhwlM_.cjs} +320 -0
- package/dist/hooks/index.cjs +7 -372
- package/dist/hooks/index.mjs +7 -372
- package/dist/index.cjs +202 -59
- package/dist/index.mjs +182 -39
- package/package.json +4 -2
- package/types/components/RootContainer/RootContainer.d.ts +1 -8
- package/types/components/RootContainer/index.d.ts +1 -1
- package/types/hooks/content.d.ts +1 -4
- package/types/hooks/setup.d.ts +7 -0
- package/types/index.d.ts +1 -1
|
@@ -7803,16 +7803,336 @@ function requireLodash_clonedeep() {
|
|
|
7803
7803
|
}
|
|
7804
7804
|
var lodash_clonedeepExports = requireLodash_clonedeep();
|
|
7805
7805
|
const cloneDeep = /* @__PURE__ */ getDefaultExportFromCjs(lodash_clonedeepExports);
|
|
7806
|
+
const useContent = () => {
|
|
7807
|
+
const { request } = useApi();
|
|
7808
|
+
const { fileUrl } = useHelper();
|
|
7809
|
+
const props = useProps();
|
|
7810
|
+
const page = usePage();
|
|
7811
|
+
const pageData = useMemo(
|
|
7812
|
+
() => props.pageData,
|
|
7813
|
+
[props.pageData]
|
|
7814
|
+
);
|
|
7815
|
+
const newsArticle = useMemo(
|
|
7816
|
+
() => props.article,
|
|
7817
|
+
[props.article]
|
|
7818
|
+
);
|
|
7819
|
+
const newsCategory = useMemo(
|
|
7820
|
+
() => props.category,
|
|
7821
|
+
[props.category]
|
|
7822
|
+
);
|
|
7823
|
+
const newsTag = useMemo(
|
|
7824
|
+
() => props.tag,
|
|
7825
|
+
[props.tag]
|
|
7826
|
+
);
|
|
7827
|
+
const contentModelItem = useMemo(
|
|
7828
|
+
() => props.contentModelItem,
|
|
7829
|
+
[props.contentModelItem]
|
|
7830
|
+
);
|
|
7831
|
+
const getSectionData = useCallback(
|
|
7832
|
+
(key) => {
|
|
7833
|
+
if (!key) return null;
|
|
7834
|
+
const keyParts = key.split("__");
|
|
7835
|
+
const slug = keyParts.length ? keyParts[0] : "";
|
|
7836
|
+
const linkId = keyParts.length > 1 ? keyParts[1] : "";
|
|
7837
|
+
return props.pageData?.sections?.find(
|
|
7838
|
+
(section) => section.slug === slug && section.pivot?.linkId === linkId
|
|
7839
|
+
)?.pivot?.data || null;
|
|
7840
|
+
},
|
|
7841
|
+
[props.pageData?.sections]
|
|
7842
|
+
);
|
|
7843
|
+
const getSectionRootData = useCallback(
|
|
7844
|
+
(key) => getSectionData(key)?.index,
|
|
7845
|
+
[getSectionData]
|
|
7846
|
+
);
|
|
7847
|
+
const getSectionSettings = useCallback(
|
|
7848
|
+
(key) => {
|
|
7849
|
+
if (!key) return null;
|
|
7850
|
+
const keyParts = key.split("__");
|
|
7851
|
+
const slug = keyParts.length ? keyParts[0] : "";
|
|
7852
|
+
const linkId = keyParts.length > 1 ? keyParts[1] : "";
|
|
7853
|
+
return props.pageData?.sections?.find(
|
|
7854
|
+
(section) => section.slug === slug && section.pivot?.linkId === linkId
|
|
7855
|
+
)?.pivot?.settings || null;
|
|
7856
|
+
},
|
|
7857
|
+
[props.pageData?.sections]
|
|
7858
|
+
);
|
|
7859
|
+
const getSectionSettingsGroup = useCallback(
|
|
7860
|
+
(key, group) => {
|
|
7861
|
+
const settings = getSectionSettings(key);
|
|
7862
|
+
return settings?.[group];
|
|
7863
|
+
},
|
|
7864
|
+
[getSectionSettings]
|
|
7865
|
+
);
|
|
7866
|
+
const getSectionSetting = useCallback(
|
|
7867
|
+
(key, group, name) => {
|
|
7868
|
+
const settings = getSectionSettingsGroup(key, group);
|
|
7869
|
+
return settings?.[name];
|
|
7870
|
+
},
|
|
7871
|
+
[getSectionSettingsGroup]
|
|
7872
|
+
);
|
|
7873
|
+
const getAnySectionData = useCallback(
|
|
7874
|
+
async (sectionSlug, pageSlug, linkId = "default") => {
|
|
7875
|
+
const task = await request({
|
|
7876
|
+
url: `section-data/${sectionSlug}/source/${pageSlug}/link/${linkId}`
|
|
7877
|
+
});
|
|
7878
|
+
if (task.success && task.result) {
|
|
7879
|
+
return task.result.data;
|
|
7880
|
+
}
|
|
7881
|
+
return null;
|
|
7882
|
+
},
|
|
7883
|
+
[request]
|
|
7884
|
+
);
|
|
7885
|
+
const getContentModel = useCallback(
|
|
7886
|
+
(name) => {
|
|
7887
|
+
return props?.contentModels?.find(
|
|
7888
|
+
(contentModel) => contentModel.name === name
|
|
7889
|
+
);
|
|
7890
|
+
},
|
|
7891
|
+
[props?.contentModels]
|
|
7892
|
+
);
|
|
7893
|
+
const formatContentModelItemData = useCallback(
|
|
7894
|
+
(item) => {
|
|
7895
|
+
const { index: _, ...rest } = item.contentModelData;
|
|
7896
|
+
return {
|
|
7897
|
+
...item,
|
|
7898
|
+
data: {
|
|
7899
|
+
...item.contentModelData?.index,
|
|
7900
|
+
...rest
|
|
7901
|
+
}
|
|
7902
|
+
};
|
|
7903
|
+
},
|
|
7904
|
+
[]
|
|
7905
|
+
);
|
|
7906
|
+
const getContentModelItems = useCallback(
|
|
7907
|
+
async (name, filterByIsActive = true) => {
|
|
7908
|
+
const task = await request({
|
|
7909
|
+
url: `content-model/items?contentModelName=${name}${filterByIsActive ? "&isActive=true" : ""}`
|
|
7910
|
+
});
|
|
7911
|
+
if (task.success && task.result) {
|
|
7912
|
+
return (task.result.data || []).map(
|
|
7913
|
+
(item) => formatContentModelItemData(item)
|
|
7914
|
+
);
|
|
7915
|
+
}
|
|
7916
|
+
return [];
|
|
7917
|
+
},
|
|
7918
|
+
[request, formatContentModelItemData]
|
|
7919
|
+
);
|
|
7920
|
+
const getPaginatedContentModelItems = useCallback(
|
|
7921
|
+
async (name, pageSize, filterByIsActive = true) => {
|
|
7922
|
+
const task = await request({
|
|
7923
|
+
url: `content-model/items?pageSize=${pageSize}&contentModelName=${name}${filterByIsActive ? "&isActive=true" : ""}`
|
|
7924
|
+
});
|
|
7925
|
+
if (task.success && task.result) {
|
|
7926
|
+
const items = (task.result.data?.items || []).map(
|
|
7927
|
+
(item) => formatContentModelItemData(item)
|
|
7928
|
+
);
|
|
7929
|
+
const total = task.result.data?.meta?.total || 0;
|
|
7930
|
+
const currentPage = task.result.data?.meta?.currentPage || 1;
|
|
7931
|
+
return {
|
|
7932
|
+
items,
|
|
7933
|
+
total,
|
|
7934
|
+
currentPage
|
|
7935
|
+
};
|
|
7936
|
+
}
|
|
7937
|
+
return {
|
|
7938
|
+
items: [],
|
|
7939
|
+
total: 0,
|
|
7940
|
+
currentPage: 1
|
|
7941
|
+
};
|
|
7942
|
+
},
|
|
7943
|
+
[request, formatContentModelItemData]
|
|
7944
|
+
);
|
|
7945
|
+
const getMenu = useCallback(
|
|
7946
|
+
(name, filterByIsActive = true) => {
|
|
7947
|
+
const menu = props?.menus?.find((menu2) => menu2.name === name);
|
|
7948
|
+
if (menu) {
|
|
7949
|
+
menu.items = cloneDeep(
|
|
7950
|
+
menu.items?.filter((item) => !filterByIsActive || item.isActive)?.sort((a, b) => a.position - b.position)
|
|
7951
|
+
);
|
|
7952
|
+
}
|
|
7953
|
+
return menu;
|
|
7954
|
+
},
|
|
7955
|
+
[props?.menus]
|
|
7956
|
+
);
|
|
7957
|
+
const getMenuByLocation = useCallback(
|
|
7958
|
+
(name, filterByIsActive = true) => {
|
|
7959
|
+
const menu = props?.menus?.find((menu2) => menu2.location?.name === name);
|
|
7960
|
+
if (menu) {
|
|
7961
|
+
menu.items = cloneDeep(
|
|
7962
|
+
menu.items?.filter((item) => !filterByIsActive || item.isActive)?.sort((a, b) => a.position - b.position)
|
|
7963
|
+
);
|
|
7964
|
+
}
|
|
7965
|
+
return menu;
|
|
7966
|
+
},
|
|
7967
|
+
[props?.menus]
|
|
7968
|
+
);
|
|
7969
|
+
const getMenuItems = useCallback(
|
|
7970
|
+
(name, filterByIsVisible = true) => {
|
|
7971
|
+
return getMenu(name)?.items?.filter((item) => !filterByIsVisible || item.isVisible)?.sort((a, b) => a.position - b.position);
|
|
7972
|
+
},
|
|
7973
|
+
[getMenu]
|
|
7974
|
+
);
|
|
7975
|
+
const getMenuItemById = useCallback(
|
|
7976
|
+
(id) => {
|
|
7977
|
+
const menuItems = [];
|
|
7978
|
+
const menus = props?.menus || [];
|
|
7979
|
+
menus.forEach((menu) => {
|
|
7980
|
+
if (Array.isArray(menu.items)) menuItems.push(...menu.items);
|
|
7981
|
+
});
|
|
7982
|
+
return menuItems.find((item) => item.id === id);
|
|
7983
|
+
},
|
|
7984
|
+
[props?.menus]
|
|
7985
|
+
);
|
|
7986
|
+
const getMenuItemsByLocation = useCallback(
|
|
7987
|
+
(name, filterByIsVisible = true) => {
|
|
7988
|
+
return getMenuByLocation(name)?.items?.filter((item) => !filterByIsVisible || item.isVisible)?.sort((a, b) => a.position - b.position);
|
|
7989
|
+
},
|
|
7990
|
+
[getMenuByLocation]
|
|
7991
|
+
);
|
|
7992
|
+
const getMenuGroups = useCallback(
|
|
7993
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
7994
|
+
const groups = [];
|
|
7995
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
7996
|
+
if (items) {
|
|
7997
|
+
for (const item of items) {
|
|
7998
|
+
const groupAlreadyExists = groups.find(
|
|
7999
|
+
(group) => group.id === item.menuItemGroupId
|
|
8000
|
+
);
|
|
8001
|
+
if (!groupAlreadyExists) {
|
|
8002
|
+
const group = props?.menuItemGroups?.find(
|
|
8003
|
+
(group2) => group2.id === item.menuItemGroupId
|
|
8004
|
+
);
|
|
8005
|
+
if (group) groups.push(group);
|
|
8006
|
+
}
|
|
8007
|
+
}
|
|
8008
|
+
}
|
|
8009
|
+
return groups;
|
|
8010
|
+
},
|
|
8011
|
+
[getMenuItems, getMenuItemsByLocation, props?.menuItemGroups]
|
|
8012
|
+
);
|
|
8013
|
+
const getMenuItemsByGroup = useCallback(
|
|
8014
|
+
(name, groupId, byLocation = false, filterByIsVisible = true) => {
|
|
8015
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
8016
|
+
return items?.filter((item) => item.menuItemGroupId === groupId);
|
|
8017
|
+
},
|
|
8018
|
+
[getMenuItems, getMenuItemsByLocation]
|
|
8019
|
+
);
|
|
8020
|
+
const getMenuGroupedItems = useCallback(
|
|
8021
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
8022
|
+
const groups = getMenuGroups(name, byLocation);
|
|
8023
|
+
return groups.map((group) => ({
|
|
8024
|
+
group,
|
|
8025
|
+
items: getMenuItemsByGroup(
|
|
8026
|
+
name,
|
|
8027
|
+
group.id || 0,
|
|
8028
|
+
byLocation,
|
|
8029
|
+
filterByIsVisible
|
|
8030
|
+
)
|
|
8031
|
+
}));
|
|
8032
|
+
},
|
|
8033
|
+
[getMenuGroups, getMenuItemsByGroup]
|
|
8034
|
+
);
|
|
8035
|
+
const getMenuUngroupedItems = useCallback(
|
|
8036
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
8037
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
8038
|
+
return items?.filter((item) => !item.menuItemGroupId);
|
|
8039
|
+
},
|
|
8040
|
+
[getMenuItems, getMenuItemsByLocation]
|
|
8041
|
+
);
|
|
8042
|
+
const getAppInformationValue = useCallback(
|
|
8043
|
+
(key, type = "string") => {
|
|
8044
|
+
const appInformation = props.appInformation;
|
|
8045
|
+
const setting = appInformation.find((s) => s.key === key);
|
|
8046
|
+
let value = "";
|
|
8047
|
+
switch (type) {
|
|
8048
|
+
case "number":
|
|
8049
|
+
value = setting && parseInt(setting.value) && !isNaN(parseInt(setting.value)) ? parseInt(setting.value) : 0;
|
|
8050
|
+
break;
|
|
8051
|
+
case "boolean":
|
|
8052
|
+
value = setting && !isNaN(parseInt(setting.value)) && parseInt(setting.value) > 0;
|
|
8053
|
+
break;
|
|
8054
|
+
case "object":
|
|
8055
|
+
value = setting && setting.value ? JSON.parse(setting.value) : {};
|
|
8056
|
+
break;
|
|
8057
|
+
case "array":
|
|
8058
|
+
value = setting && setting.value ? JSON.parse(setting.value) : [];
|
|
8059
|
+
break;
|
|
8060
|
+
default:
|
|
8061
|
+
value = setting && setting.value ? setting.value : "";
|
|
8062
|
+
break;
|
|
8063
|
+
}
|
|
8064
|
+
return value;
|
|
8065
|
+
},
|
|
8066
|
+
[props.appInformation]
|
|
8067
|
+
);
|
|
8068
|
+
const appPrimaryColor = useMemo(() => {
|
|
8069
|
+
const primaryColor = getAppInformationValue(
|
|
8070
|
+
"primaryColor"
|
|
8071
|
+
);
|
|
8072
|
+
return primaryColor || "#005B97";
|
|
8073
|
+
}, [getAppInformationValue]);
|
|
8074
|
+
const appSecondaryColor = useMemo(() => {
|
|
8075
|
+
const secondaryColor = getAppInformationValue(
|
|
8076
|
+
"secondaryColor"
|
|
8077
|
+
);
|
|
8078
|
+
return secondaryColor || "#1E9CD7";
|
|
8079
|
+
}, [getAppInformationValue]);
|
|
8080
|
+
const appAccentColor = useMemo(() => {
|
|
8081
|
+
const accentColor = getAppInformationValue("accentColor");
|
|
8082
|
+
return accentColor || "#FF6501";
|
|
8083
|
+
}, [getAppInformationValue]);
|
|
8084
|
+
const icon = useMemo(() => {
|
|
8085
|
+
const icon2 = getAppInformationValue("icon");
|
|
8086
|
+
return fileUrl(icon2) || "";
|
|
8087
|
+
}, [getAppInformationValue, fileUrl]);
|
|
8088
|
+
const logo = useMemo(() => {
|
|
8089
|
+
const logo2 = getAppInformationValue("logo");
|
|
8090
|
+
return fileUrl(logo2) || "";
|
|
8091
|
+
}, [getAppInformationValue, fileUrl]);
|
|
8092
|
+
return {
|
|
8093
|
+
logo,
|
|
8094
|
+
icon,
|
|
8095
|
+
page,
|
|
8096
|
+
pageData,
|
|
8097
|
+
newsArticle,
|
|
8098
|
+
newsCategory,
|
|
8099
|
+
newsTag,
|
|
8100
|
+
contentModelItem,
|
|
8101
|
+
getMenu,
|
|
8102
|
+
getMenuByLocation,
|
|
8103
|
+
getMenuItems,
|
|
8104
|
+
getMenuItemById,
|
|
8105
|
+
getMenuItemsByLocation,
|
|
8106
|
+
getMenuGroups,
|
|
8107
|
+
getMenuItemsByGroup,
|
|
8108
|
+
getMenuGroupedItems,
|
|
8109
|
+
getMenuUngroupedItems,
|
|
8110
|
+
getSectionData,
|
|
8111
|
+
getSectionSettings,
|
|
8112
|
+
getSectionSettingsGroup,
|
|
8113
|
+
getSectionSetting,
|
|
8114
|
+
getAnySectionData,
|
|
8115
|
+
getSectionRootData,
|
|
8116
|
+
getContentModel,
|
|
8117
|
+
getContentModelItems,
|
|
8118
|
+
getPaginatedContentModelItems,
|
|
8119
|
+
getAppInformationValue,
|
|
8120
|
+
appAccentColor,
|
|
8121
|
+
appPrimaryColor,
|
|
8122
|
+
appSecondaryColor
|
|
8123
|
+
};
|
|
8124
|
+
};
|
|
7806
8125
|
export {
|
|
7807
8126
|
ConfigContext as C,
|
|
7808
8127
|
EditorMessageType as E,
|
|
7809
8128
|
PropsContext as P,
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7813
|
-
|
|
7814
|
-
|
|
7815
|
-
|
|
8129
|
+
ResolveSectionsContext as R,
|
|
8130
|
+
useContent as a,
|
|
8131
|
+
useProps as b,
|
|
8132
|
+
cloneDeep as c,
|
|
8133
|
+
RouterContext as d,
|
|
8134
|
+
useApi as e,
|
|
8135
|
+
useConfig as f,
|
|
7816
8136
|
slideToId as s,
|
|
7817
8137
|
useHelper as u
|
|
7818
8138
|
};
|
|
@@ -7804,6 +7804,325 @@ function requireLodash_clonedeep() {
|
|
|
7804
7804
|
}
|
|
7805
7805
|
var lodash_clonedeepExports = requireLodash_clonedeep();
|
|
7806
7806
|
const cloneDeep = /* @__PURE__ */ getDefaultExportFromCjs(lodash_clonedeepExports);
|
|
7807
|
+
const useContent = () => {
|
|
7808
|
+
const { request } = useApi();
|
|
7809
|
+
const { fileUrl } = useHelper();
|
|
7810
|
+
const props = useProps();
|
|
7811
|
+
const page = react.usePage();
|
|
7812
|
+
const pageData = React.useMemo(
|
|
7813
|
+
() => props.pageData,
|
|
7814
|
+
[props.pageData]
|
|
7815
|
+
);
|
|
7816
|
+
const newsArticle = React.useMemo(
|
|
7817
|
+
() => props.article,
|
|
7818
|
+
[props.article]
|
|
7819
|
+
);
|
|
7820
|
+
const newsCategory = React.useMemo(
|
|
7821
|
+
() => props.category,
|
|
7822
|
+
[props.category]
|
|
7823
|
+
);
|
|
7824
|
+
const newsTag = React.useMemo(
|
|
7825
|
+
() => props.tag,
|
|
7826
|
+
[props.tag]
|
|
7827
|
+
);
|
|
7828
|
+
const contentModelItem = React.useMemo(
|
|
7829
|
+
() => props.contentModelItem,
|
|
7830
|
+
[props.contentModelItem]
|
|
7831
|
+
);
|
|
7832
|
+
const getSectionData = React.useCallback(
|
|
7833
|
+
(key) => {
|
|
7834
|
+
if (!key) return null;
|
|
7835
|
+
const keyParts = key.split("__");
|
|
7836
|
+
const slug = keyParts.length ? keyParts[0] : "";
|
|
7837
|
+
const linkId = keyParts.length > 1 ? keyParts[1] : "";
|
|
7838
|
+
return props.pageData?.sections?.find(
|
|
7839
|
+
(section) => section.slug === slug && section.pivot?.linkId === linkId
|
|
7840
|
+
)?.pivot?.data || null;
|
|
7841
|
+
},
|
|
7842
|
+
[props.pageData?.sections]
|
|
7843
|
+
);
|
|
7844
|
+
const getSectionRootData = React.useCallback(
|
|
7845
|
+
(key) => getSectionData(key)?.index,
|
|
7846
|
+
[getSectionData]
|
|
7847
|
+
);
|
|
7848
|
+
const getSectionSettings = React.useCallback(
|
|
7849
|
+
(key) => {
|
|
7850
|
+
if (!key) return null;
|
|
7851
|
+
const keyParts = key.split("__");
|
|
7852
|
+
const slug = keyParts.length ? keyParts[0] : "";
|
|
7853
|
+
const linkId = keyParts.length > 1 ? keyParts[1] : "";
|
|
7854
|
+
return props.pageData?.sections?.find(
|
|
7855
|
+
(section) => section.slug === slug && section.pivot?.linkId === linkId
|
|
7856
|
+
)?.pivot?.settings || null;
|
|
7857
|
+
},
|
|
7858
|
+
[props.pageData?.sections]
|
|
7859
|
+
);
|
|
7860
|
+
const getSectionSettingsGroup = React.useCallback(
|
|
7861
|
+
(key, group) => {
|
|
7862
|
+
const settings = getSectionSettings(key);
|
|
7863
|
+
return settings?.[group];
|
|
7864
|
+
},
|
|
7865
|
+
[getSectionSettings]
|
|
7866
|
+
);
|
|
7867
|
+
const getSectionSetting = React.useCallback(
|
|
7868
|
+
(key, group, name) => {
|
|
7869
|
+
const settings = getSectionSettingsGroup(key, group);
|
|
7870
|
+
return settings?.[name];
|
|
7871
|
+
},
|
|
7872
|
+
[getSectionSettingsGroup]
|
|
7873
|
+
);
|
|
7874
|
+
const getAnySectionData = React.useCallback(
|
|
7875
|
+
async (sectionSlug, pageSlug, linkId = "default") => {
|
|
7876
|
+
const task = await request({
|
|
7877
|
+
url: `section-data/${sectionSlug}/source/${pageSlug}/link/${linkId}`
|
|
7878
|
+
});
|
|
7879
|
+
if (task.success && task.result) {
|
|
7880
|
+
return task.result.data;
|
|
7881
|
+
}
|
|
7882
|
+
return null;
|
|
7883
|
+
},
|
|
7884
|
+
[request]
|
|
7885
|
+
);
|
|
7886
|
+
const getContentModel = React.useCallback(
|
|
7887
|
+
(name) => {
|
|
7888
|
+
return props?.contentModels?.find(
|
|
7889
|
+
(contentModel) => contentModel.name === name
|
|
7890
|
+
);
|
|
7891
|
+
},
|
|
7892
|
+
[props?.contentModels]
|
|
7893
|
+
);
|
|
7894
|
+
const formatContentModelItemData = React.useCallback(
|
|
7895
|
+
(item) => {
|
|
7896
|
+
const { index: _, ...rest } = item.contentModelData;
|
|
7897
|
+
return {
|
|
7898
|
+
...item,
|
|
7899
|
+
data: {
|
|
7900
|
+
...item.contentModelData?.index,
|
|
7901
|
+
...rest
|
|
7902
|
+
}
|
|
7903
|
+
};
|
|
7904
|
+
},
|
|
7905
|
+
[]
|
|
7906
|
+
);
|
|
7907
|
+
const getContentModelItems = React.useCallback(
|
|
7908
|
+
async (name, filterByIsActive = true) => {
|
|
7909
|
+
const task = await request({
|
|
7910
|
+
url: `content-model/items?contentModelName=${name}${filterByIsActive ? "&isActive=true" : ""}`
|
|
7911
|
+
});
|
|
7912
|
+
if (task.success && task.result) {
|
|
7913
|
+
return (task.result.data || []).map(
|
|
7914
|
+
(item) => formatContentModelItemData(item)
|
|
7915
|
+
);
|
|
7916
|
+
}
|
|
7917
|
+
return [];
|
|
7918
|
+
},
|
|
7919
|
+
[request, formatContentModelItemData]
|
|
7920
|
+
);
|
|
7921
|
+
const getPaginatedContentModelItems = React.useCallback(
|
|
7922
|
+
async (name, pageSize, filterByIsActive = true) => {
|
|
7923
|
+
const task = await request({
|
|
7924
|
+
url: `content-model/items?pageSize=${pageSize}&contentModelName=${name}${filterByIsActive ? "&isActive=true" : ""}`
|
|
7925
|
+
});
|
|
7926
|
+
if (task.success && task.result) {
|
|
7927
|
+
const items = (task.result.data?.items || []).map(
|
|
7928
|
+
(item) => formatContentModelItemData(item)
|
|
7929
|
+
);
|
|
7930
|
+
const total = task.result.data?.meta?.total || 0;
|
|
7931
|
+
const currentPage = task.result.data?.meta?.currentPage || 1;
|
|
7932
|
+
return {
|
|
7933
|
+
items,
|
|
7934
|
+
total,
|
|
7935
|
+
currentPage
|
|
7936
|
+
};
|
|
7937
|
+
}
|
|
7938
|
+
return {
|
|
7939
|
+
items: [],
|
|
7940
|
+
total: 0,
|
|
7941
|
+
currentPage: 1
|
|
7942
|
+
};
|
|
7943
|
+
},
|
|
7944
|
+
[request, formatContentModelItemData]
|
|
7945
|
+
);
|
|
7946
|
+
const getMenu = React.useCallback(
|
|
7947
|
+
(name, filterByIsActive = true) => {
|
|
7948
|
+
const menu = props?.menus?.find((menu2) => menu2.name === name);
|
|
7949
|
+
if (menu) {
|
|
7950
|
+
menu.items = cloneDeep(
|
|
7951
|
+
menu.items?.filter((item) => !filterByIsActive || item.isActive)?.sort((a, b) => a.position - b.position)
|
|
7952
|
+
);
|
|
7953
|
+
}
|
|
7954
|
+
return menu;
|
|
7955
|
+
},
|
|
7956
|
+
[props?.menus]
|
|
7957
|
+
);
|
|
7958
|
+
const getMenuByLocation = React.useCallback(
|
|
7959
|
+
(name, filterByIsActive = true) => {
|
|
7960
|
+
const menu = props?.menus?.find((menu2) => menu2.location?.name === name);
|
|
7961
|
+
if (menu) {
|
|
7962
|
+
menu.items = cloneDeep(
|
|
7963
|
+
menu.items?.filter((item) => !filterByIsActive || item.isActive)?.sort((a, b) => a.position - b.position)
|
|
7964
|
+
);
|
|
7965
|
+
}
|
|
7966
|
+
return menu;
|
|
7967
|
+
},
|
|
7968
|
+
[props?.menus]
|
|
7969
|
+
);
|
|
7970
|
+
const getMenuItems = React.useCallback(
|
|
7971
|
+
(name, filterByIsVisible = true) => {
|
|
7972
|
+
return getMenu(name)?.items?.filter((item) => !filterByIsVisible || item.isVisible)?.sort((a, b) => a.position - b.position);
|
|
7973
|
+
},
|
|
7974
|
+
[getMenu]
|
|
7975
|
+
);
|
|
7976
|
+
const getMenuItemById = React.useCallback(
|
|
7977
|
+
(id) => {
|
|
7978
|
+
const menuItems = [];
|
|
7979
|
+
const menus = props?.menus || [];
|
|
7980
|
+
menus.forEach((menu) => {
|
|
7981
|
+
if (Array.isArray(menu.items)) menuItems.push(...menu.items);
|
|
7982
|
+
});
|
|
7983
|
+
return menuItems.find((item) => item.id === id);
|
|
7984
|
+
},
|
|
7985
|
+
[props?.menus]
|
|
7986
|
+
);
|
|
7987
|
+
const getMenuItemsByLocation = React.useCallback(
|
|
7988
|
+
(name, filterByIsVisible = true) => {
|
|
7989
|
+
return getMenuByLocation(name)?.items?.filter((item) => !filterByIsVisible || item.isVisible)?.sort((a, b) => a.position - b.position);
|
|
7990
|
+
},
|
|
7991
|
+
[getMenuByLocation]
|
|
7992
|
+
);
|
|
7993
|
+
const getMenuGroups = React.useCallback(
|
|
7994
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
7995
|
+
const groups = [];
|
|
7996
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
7997
|
+
if (items) {
|
|
7998
|
+
for (const item of items) {
|
|
7999
|
+
const groupAlreadyExists = groups.find(
|
|
8000
|
+
(group) => group.id === item.menuItemGroupId
|
|
8001
|
+
);
|
|
8002
|
+
if (!groupAlreadyExists) {
|
|
8003
|
+
const group = props?.menuItemGroups?.find(
|
|
8004
|
+
(group2) => group2.id === item.menuItemGroupId
|
|
8005
|
+
);
|
|
8006
|
+
if (group) groups.push(group);
|
|
8007
|
+
}
|
|
8008
|
+
}
|
|
8009
|
+
}
|
|
8010
|
+
return groups;
|
|
8011
|
+
},
|
|
8012
|
+
[getMenuItems, getMenuItemsByLocation, props?.menuItemGroups]
|
|
8013
|
+
);
|
|
8014
|
+
const getMenuItemsByGroup = React.useCallback(
|
|
8015
|
+
(name, groupId, byLocation = false, filterByIsVisible = true) => {
|
|
8016
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
8017
|
+
return items?.filter((item) => item.menuItemGroupId === groupId);
|
|
8018
|
+
},
|
|
8019
|
+
[getMenuItems, getMenuItemsByLocation]
|
|
8020
|
+
);
|
|
8021
|
+
const getMenuGroupedItems = React.useCallback(
|
|
8022
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
8023
|
+
const groups = getMenuGroups(name, byLocation);
|
|
8024
|
+
return groups.map((group) => ({
|
|
8025
|
+
group,
|
|
8026
|
+
items: getMenuItemsByGroup(
|
|
8027
|
+
name,
|
|
8028
|
+
group.id || 0,
|
|
8029
|
+
byLocation,
|
|
8030
|
+
filterByIsVisible
|
|
8031
|
+
)
|
|
8032
|
+
}));
|
|
8033
|
+
},
|
|
8034
|
+
[getMenuGroups, getMenuItemsByGroup]
|
|
8035
|
+
);
|
|
8036
|
+
const getMenuUngroupedItems = React.useCallback(
|
|
8037
|
+
(name, byLocation = false, filterByIsVisible = true) => {
|
|
8038
|
+
const items = byLocation ? getMenuItemsByLocation(name, filterByIsVisible) : getMenuItems(name, filterByIsVisible);
|
|
8039
|
+
return items?.filter((item) => !item.menuItemGroupId);
|
|
8040
|
+
},
|
|
8041
|
+
[getMenuItems, getMenuItemsByLocation]
|
|
8042
|
+
);
|
|
8043
|
+
const getAppInformationValue = React.useCallback(
|
|
8044
|
+
(key, type = "string") => {
|
|
8045
|
+
const appInformation = props.appInformation;
|
|
8046
|
+
const setting = appInformation.find((s) => s.key === key);
|
|
8047
|
+
let value = "";
|
|
8048
|
+
switch (type) {
|
|
8049
|
+
case "number":
|
|
8050
|
+
value = setting && parseInt(setting.value) && !isNaN(parseInt(setting.value)) ? parseInt(setting.value) : 0;
|
|
8051
|
+
break;
|
|
8052
|
+
case "boolean":
|
|
8053
|
+
value = setting && !isNaN(parseInt(setting.value)) && parseInt(setting.value) > 0;
|
|
8054
|
+
break;
|
|
8055
|
+
case "object":
|
|
8056
|
+
value = setting && setting.value ? JSON.parse(setting.value) : {};
|
|
8057
|
+
break;
|
|
8058
|
+
case "array":
|
|
8059
|
+
value = setting && setting.value ? JSON.parse(setting.value) : [];
|
|
8060
|
+
break;
|
|
8061
|
+
default:
|
|
8062
|
+
value = setting && setting.value ? setting.value : "";
|
|
8063
|
+
break;
|
|
8064
|
+
}
|
|
8065
|
+
return value;
|
|
8066
|
+
},
|
|
8067
|
+
[props.appInformation]
|
|
8068
|
+
);
|
|
8069
|
+
const appPrimaryColor = React.useMemo(() => {
|
|
8070
|
+
const primaryColor = getAppInformationValue(
|
|
8071
|
+
"primaryColor"
|
|
8072
|
+
);
|
|
8073
|
+
return primaryColor || "#005B97";
|
|
8074
|
+
}, [getAppInformationValue]);
|
|
8075
|
+
const appSecondaryColor = React.useMemo(() => {
|
|
8076
|
+
const secondaryColor = getAppInformationValue(
|
|
8077
|
+
"secondaryColor"
|
|
8078
|
+
);
|
|
8079
|
+
return secondaryColor || "#1E9CD7";
|
|
8080
|
+
}, [getAppInformationValue]);
|
|
8081
|
+
const appAccentColor = React.useMemo(() => {
|
|
8082
|
+
const accentColor = getAppInformationValue("accentColor");
|
|
8083
|
+
return accentColor || "#FF6501";
|
|
8084
|
+
}, [getAppInformationValue]);
|
|
8085
|
+
const icon = React.useMemo(() => {
|
|
8086
|
+
const icon2 = getAppInformationValue("icon");
|
|
8087
|
+
return fileUrl(icon2) || "";
|
|
8088
|
+
}, [getAppInformationValue, fileUrl]);
|
|
8089
|
+
const logo = React.useMemo(() => {
|
|
8090
|
+
const logo2 = getAppInformationValue("logo");
|
|
8091
|
+
return fileUrl(logo2) || "";
|
|
8092
|
+
}, [getAppInformationValue, fileUrl]);
|
|
8093
|
+
return {
|
|
8094
|
+
logo,
|
|
8095
|
+
icon,
|
|
8096
|
+
page,
|
|
8097
|
+
pageData,
|
|
8098
|
+
newsArticle,
|
|
8099
|
+
newsCategory,
|
|
8100
|
+
newsTag,
|
|
8101
|
+
contentModelItem,
|
|
8102
|
+
getMenu,
|
|
8103
|
+
getMenuByLocation,
|
|
8104
|
+
getMenuItems,
|
|
8105
|
+
getMenuItemById,
|
|
8106
|
+
getMenuItemsByLocation,
|
|
8107
|
+
getMenuGroups,
|
|
8108
|
+
getMenuItemsByGroup,
|
|
8109
|
+
getMenuGroupedItems,
|
|
8110
|
+
getMenuUngroupedItems,
|
|
8111
|
+
getSectionData,
|
|
8112
|
+
getSectionSettings,
|
|
8113
|
+
getSectionSettingsGroup,
|
|
8114
|
+
getSectionSetting,
|
|
8115
|
+
getAnySectionData,
|
|
8116
|
+
getSectionRootData,
|
|
8117
|
+
getContentModel,
|
|
8118
|
+
getContentModelItems,
|
|
8119
|
+
getPaginatedContentModelItems,
|
|
8120
|
+
getAppInformationValue,
|
|
8121
|
+
appAccentColor,
|
|
8122
|
+
appPrimaryColor,
|
|
8123
|
+
appSecondaryColor
|
|
8124
|
+
};
|
|
8125
|
+
};
|
|
7807
8126
|
exports.ConfigContext = ConfigContext;
|
|
7808
8127
|
exports.PropsContext = PropsContext;
|
|
7809
8128
|
exports.ResolveSectionsContext = ResolveSectionsContext;
|
|
@@ -7812,5 +8131,6 @@ exports.cloneDeep = cloneDeep;
|
|
|
7812
8131
|
exports.slideToId = slideToId;
|
|
7813
8132
|
exports.useApi = useApi;
|
|
7814
8133
|
exports.useConfig = useConfig;
|
|
8134
|
+
exports.useContent = useContent;
|
|
7815
8135
|
exports.useHelper = useHelper;
|
|
7816
8136
|
exports.useProps = useProps;
|