nvis-fe-cms-libs 1.1.22 → 1.1.24

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.
@@ -49,7 +49,7 @@ var __async = (__this, __arguments, generator) => {
49
49
  step((generator = generator.apply(__this, __arguments)).next());
50
50
  });
51
51
  };
52
- import require$$0, { useRef, useState, useEffect, useMemo, forwardRef, createElement, createContext, useContext, useCallback } from "react";
52
+ import require$$0, { useRef, useState, useEffect, useMemo, forwardRef, createElement } from "react";
53
53
  var jsxRuntime = { exports: {} };
54
54
  var reactJsxRuntime_production = {};
55
55
  /**
@@ -657,11 +657,12 @@ const AboutCompanySection = ({ data, t, isDarkMode }) => {
657
657
  )
658
658
  ] });
659
659
  };
660
- const TimelineSection = ({ data, t, isDarkMode }) => {
660
+ const TimelineSection = ({ data, t, isDarkMode, section }) => {
661
661
  var _a;
662
662
  const timelineData = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data).map((item) => item.data)) || [];
663
663
  const [timelineVisible, setTimelineVisible] = useState([]);
664
664
  const timelineRefs = useRef([]);
665
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
665
666
  useEffect(() => {
666
667
  setTimelineVisible(new Array(timelineData.length).fill(false));
667
668
  }, [timelineData.length]);
@@ -703,7 +704,7 @@ const TimelineSection = ({ data, t, isDarkMode }) => {
703
704
  className: `relative inline-block px-4 py-2 rounded-full text-sm font-semibold mb-4 border transition-all duration-300 transform hover:scale-105 shadow-md hover:shadow-lg overflow-hidden ${isDarkMode ? "bg-gradient-to-br from-slate-900 via-blue-900 to-indigo-900 text-emerald-300 border-blue-800" : "bg-white text-emerald-800 border-gray-200"}`,
704
705
  children: [
705
706
  "📈 ",
706
- timelineData.title,
707
+ sectionTitle,
707
708
  isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
708
709
  /* @__PURE__ */ jsxRuntimeExports.jsx(
709
710
  "div",
@@ -1748,7 +1749,7 @@ const __iconNode$B = [
1748
1749
  ["path", { d: "M5 12h14", key: "1ays0h" }],
1749
1750
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
1750
1751
  ];
1751
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$B);
1752
+ const ArrowRight$1 = createLucideIcon("arrow-right", __iconNode$B);
1752
1753
  /**
1753
1754
  * @license lucide-react v0.536.0 - ISC
1754
1755
  *
@@ -4684,17 +4685,23 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
4684
4685
  ] })
4685
4686
  ] });
4686
4687
  };
4687
- const PageChildrenSelectSection = ({ data, isDarkMode, section, imageBaseUrl = "" }) => {
4688
+ const PageChildrenSelectSection = ({ data, isDarkMode, t, section, imageBaseUrl = "" }) => {
4688
4689
  var _a;
4689
4690
  const pages = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.map((item) => item.data).filter(Boolean)) || [];
4690
4691
  const sectionTitle = (section == null ? void 0 : section.title) || "";
4691
4692
  const sectionDescription = (section == null ? void 0 : section.description) || "";
4693
+ const [visibleCount, setVisibleCount] = useState(8);
4694
+ const visiblePages = pages.slice(0, visibleCount);
4695
+ const hasMore = visibleCount < pages.length;
4692
4696
  if (!pages || pages.length === 0) {
4693
4697
  return null;
4694
4698
  }
4695
4699
  const handleNavigate = (slug) => {
4696
4700
  window.location.href = slug;
4697
4701
  };
4702
+ const handleLoadMore = () => {
4703
+ setVisibleCount((prev) => prev + 8);
4704
+ };
4698
4705
  const getImageUrl = (url) => {
4699
4706
  if (!url) return "";
4700
4707
  if (url.startsWith("http://") || url.startsWith("https://")) return url;
@@ -4729,8 +4736,9 @@ const PageChildrenSelectSection = ({ data, isDarkMode, section, imageBaseUrl = "
4729
4736
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
4730
4737
  display: "grid",
4731
4738
  gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))",
4732
- gap: "24px"
4733
- }, children: pages.map((page) => {
4739
+ gap: "24px",
4740
+ marginBottom: hasMore ? "40px" : "0"
4741
+ }, children: visiblePages.map((page) => {
4734
4742
  const iconUrl = getImageUrl(page.icon);
4735
4743
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
4736
4744
  "div",
@@ -4753,7 +4761,7 @@ const PageChildrenSelectSection = ({ data, isDarkMode, section, imageBaseUrl = "
4753
4761
  onMouseEnter: (e) => {
4754
4762
  e.currentTarget.style.transform = "translateY(-8px)";
4755
4763
  e.currentTarget.style.boxShadow = isDarkMode ? "0 20px 25px -5px rgba(0, 0, 0, 0.5)" : "0 20px 25px -5px rgba(0, 0, 0, 0.15)";
4756
- e.currentTarget.style.borderColor = isDarkMode ? "#f97316" : "#f97316";
4764
+ e.currentTarget.style.borderColor = "#1638f9ff";
4757
4765
  },
4758
4766
  onMouseLeave: (e) => {
4759
4767
  e.currentTarget.style.transform = "translateY(0)";
@@ -4790,19 +4798,59 @@ const PageChildrenSelectSection = ({ data, isDarkMode, section, imageBaseUrl = "
4790
4798
  },
4791
4799
  page.id
4792
4800
  );
4793
- }) })
4801
+ }) }),
4802
+ hasMore && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
4803
+ "button",
4804
+ {
4805
+ onClick: handleLoadMore,
4806
+ style: {
4807
+ display: "inline-flex",
4808
+ alignItems: "center",
4809
+ justifyContent: "center",
4810
+ gap: "8px",
4811
+ padding: "14px 32px",
4812
+ fontSize: "16px",
4813
+ fontWeight: "600",
4814
+ color: "#fff",
4815
+ backgroundColor: "#f97316",
4816
+ border: "none",
4817
+ borderRadius: "9999px",
4818
+ cursor: "pointer",
4819
+ transition: "all 0.3s",
4820
+ boxShadow: "0 4px 6px -1px rgba(249, 115, 22, 0.3)"
4821
+ },
4822
+ onMouseEnter: (e) => {
4823
+ e.currentTarget.style.backgroundColor = "#ea580c";
4824
+ e.currentTarget.style.transform = "translateY(-2px)";
4825
+ },
4826
+ onMouseLeave: (e) => {
4827
+ e.currentTarget.style.backgroundColor = "#f97316";
4828
+ e.currentTarget.style.transform = "translateY(0)";
4829
+ },
4830
+ children: [
4831
+ t("pageChildrenSelect.moreInsights"),
4832
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
4833
+ ]
4834
+ }
4835
+ ) })
4794
4836
  ] }) });
4795
4837
  };
4796
- const PageChildrenSelectSection1 = ({ data, isDarkMode, section, imageBaseUrl = "" }) => {
4838
+ const PageChildrenSelectSection1 = ({ data, isDarkMode, t, section, imageBaseUrl = "" }) => {
4797
4839
  var _a;
4798
4840
  const pages = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.map((item) => item.data).filter(Boolean)) || [];
4799
4841
  const sectionTitle = (section == null ? void 0 : section.title) || "";
4842
+ const [visibleCount, setVisibleCount] = useState(5);
4843
+ const visiblePages = pages.slice(0, visibleCount);
4844
+ const hasMore = visibleCount < pages.length;
4800
4845
  if (!pages || pages.length === 0) {
4801
4846
  return null;
4802
4847
  }
4803
4848
  const handleNavigate = (slug) => {
4804
4849
  window.location.href = slug;
4805
4850
  };
4851
+ const handleLoadMore = () => {
4852
+ setVisibleCount((prev) => prev + 5);
4853
+ };
4806
4854
  const getImageUrl = (url) => {
4807
4855
  if (!url) return "";
4808
4856
  if (url.startsWith("http://") || url.startsWith("https://")) return url;
@@ -4828,7 +4876,7 @@ const PageChildrenSelectSection1 = ({ data, isDarkMode, section, imageBaseUrl =
4828
4876
  display: "flex",
4829
4877
  flexDirection: "column",
4830
4878
  gap: "24px"
4831
- }, children: pages.map((page) => {
4879
+ }, children: visiblePages.map((page) => {
4832
4880
  var _a2, _b;
4833
4881
  const mainImage = ((_b = (_a2 = page.pageImages) == null ? void 0 : _a2.find((img) => img.isMain)) == null ? void 0 : _b.url) || page.icon;
4834
4882
  const imageUrl = getImageUrl(mainImage);
@@ -4918,226 +4966,44 @@ const PageChildrenSelectSection1 = ({ data, isDarkMode, section, imageBaseUrl =
4918
4966
  },
4919
4967
  page.id
4920
4968
  );
4921
- }) })
4922
- ] }) });
4923
- };
4924
- const warn = (i18n, code, msg, rest) => {
4925
- var _a, _b, _c, _d;
4926
- const args = [msg, __spreadValues({
4927
- code
4928
- }, rest || {})];
4929
- if ((_b = (_a = i18n == null ? void 0 : i18n.services) == null ? void 0 : _a.logger) == null ? void 0 : _b.forward) {
4930
- return i18n.services.logger.forward(args, "warn", "react-i18next::", true);
4931
- }
4932
- if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;
4933
- if ((_d = (_c = i18n == null ? void 0 : i18n.services) == null ? void 0 : _c.logger) == null ? void 0 : _d.warn) {
4934
- i18n.services.logger.warn(...args);
4935
- } else if (console == null ? void 0 : console.warn) {
4936
- console.warn(...args);
4937
- }
4938
- };
4939
- const alreadyWarned = {};
4940
- const warnOnce = (i18n, code, msg, rest) => {
4941
- if (isString(msg) && alreadyWarned[msg]) return;
4942
- if (isString(msg)) alreadyWarned[msg] = /* @__PURE__ */ new Date();
4943
- warn(i18n, code, msg, rest);
4944
- };
4945
- const loadedClb = (i18n, cb) => () => {
4946
- if (i18n.isInitialized) {
4947
- cb();
4948
- } else {
4949
- const initialized = () => {
4950
- setTimeout(() => {
4951
- i18n.off("initialized", initialized);
4952
- }, 0);
4953
- cb();
4954
- };
4955
- i18n.on("initialized", initialized);
4956
- }
4957
- };
4958
- const loadNamespaces = (i18n, ns, cb) => {
4959
- i18n.loadNamespaces(ns, loadedClb(i18n, cb));
4960
- };
4961
- const loadLanguages = (i18n, lng, ns, cb) => {
4962
- if (isString(ns)) ns = [ns];
4963
- if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);
4964
- ns.forEach((n) => {
4965
- if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);
4966
- });
4967
- i18n.loadLanguages(lng, loadedClb(i18n, cb));
4968
- };
4969
- const hasLoadedNamespace = (ns, i18n, options = {}) => {
4970
- if (!i18n.languages || !i18n.languages.length) {
4971
- warnOnce(i18n, "NO_LANGUAGES", "i18n.languages were undefined or empty", {
4972
- languages: i18n.languages
4973
- });
4974
- return true;
4975
- }
4976
- return i18n.hasLoadedNamespace(ns, {
4977
- lng: options.lng,
4978
- precheck: (i18nInstance2, loadNotPending) => {
4979
- if (options.bindI18n && options.bindI18n.indexOf("languageChanging") > -1 && i18nInstance2.services.backendConnector.backend && i18nInstance2.isLanguageChangingTo && !loadNotPending(i18nInstance2.isLanguageChangingTo, ns)) return false;
4980
- }
4981
- });
4982
- };
4983
- const isString = (obj) => typeof obj === "string";
4984
- const isObject = (obj) => typeof obj === "object" && obj !== null;
4985
- const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
4986
- const htmlEntities = {
4987
- "&amp;": "&",
4988
- "&#38;": "&",
4989
- "&lt;": "<",
4990
- "&#60;": "<",
4991
- "&gt;": ">",
4992
- "&#62;": ">",
4993
- "&apos;": "'",
4994
- "&#39;": "'",
4995
- "&quot;": '"',
4996
- "&#34;": '"',
4997
- "&nbsp;": " ",
4998
- "&#160;": " ",
4999
- "&copy;": "©",
5000
- "&#169;": "©",
5001
- "&reg;": "®",
5002
- "&#174;": "®",
5003
- "&hellip;": "…",
5004
- "&#8230;": "…",
5005
- "&#x2F;": "/",
5006
- "&#47;": "/"
5007
- };
5008
- const unescapeHtmlEntity = (m) => htmlEntities[m];
5009
- const unescape = (text) => text.replace(matchHtmlEntity, unescapeHtmlEntity);
5010
- let defaultOptions = {
5011
- bindI18n: "languageChanged",
5012
- bindI18nStore: "",
5013
- transEmptyNodeValue: "",
5014
- transSupportBasicHtmlNodes: true,
5015
- transWrapTextNodes: "",
5016
- transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"],
5017
- useSuspense: true,
5018
- unescape
5019
- };
5020
- const getDefaults = () => defaultOptions;
5021
- let i18nInstance;
5022
- const getI18n = () => i18nInstance;
5023
- const I18nContext = createContext();
5024
- class ReportNamespaces {
5025
- constructor() {
5026
- this.usedNamespaces = {};
5027
- }
5028
- addUsedNamespaces(namespaces) {
5029
- namespaces.forEach((ns) => {
5030
- if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;
5031
- });
5032
- }
5033
- getUsedNamespaces() {
5034
- return Object.keys(this.usedNamespaces);
5035
- }
5036
- }
5037
- const usePrevious = (value, ignore) => {
5038
- const ref = useRef();
5039
- useEffect(() => {
5040
- ref.current = value;
5041
- }, [value, ignore]);
5042
- return ref.current;
5043
- };
5044
- const alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);
5045
- const useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);
5046
- const useTranslation = (ns, props = {}) => {
5047
- var _a, _b, _c, _d;
5048
- const {
5049
- i18n: i18nFromProps
5050
- } = props;
5051
- const {
5052
- i18n: i18nFromContext,
5053
- defaultNS: defaultNSFromContext
5054
- } = useContext(I18nContext) || {};
5055
- const i18n = i18nFromProps || i18nFromContext || getI18n();
5056
- if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();
5057
- if (!i18n) {
5058
- warnOnce(i18n, "NO_I18NEXT_INSTANCE", "useTranslation: You will need to pass in an i18next instance by using initReactI18next");
5059
- const notReadyT = (k, optsOrDefaultValue) => {
5060
- if (isString(optsOrDefaultValue)) return optsOrDefaultValue;
5061
- if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;
5062
- return Array.isArray(k) ? k[k.length - 1] : k;
5063
- };
5064
- const retNotReady = [notReadyT, {}, false];
5065
- retNotReady.t = notReadyT;
5066
- retNotReady.i18n = {};
5067
- retNotReady.ready = false;
5068
- return retNotReady;
5069
- }
5070
- if ((_a = i18n.options.react) == null ? void 0 : _a.wait) warnOnce(i18n, "DEPRECATED_OPTION", "useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
5071
- const i18nOptions = __spreadValues(__spreadValues(__spreadValues({}, getDefaults()), i18n.options.react), props);
5072
- const {
5073
- useSuspense,
5074
- keyPrefix
5075
- } = i18nOptions;
5076
- let namespaces = defaultNSFromContext || ((_b = i18n.options) == null ? void 0 : _b.defaultNS);
5077
- namespaces = isString(namespaces) ? [namespaces] : namespaces || ["translation"];
5078
- (_d = (_c = i18n.reportNamespaces).addUsedNamespaces) == null ? void 0 : _d.call(_c, namespaces);
5079
- const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every((n) => hasLoadedNamespace(n, i18n, i18nOptions));
5080
- const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === "fallback" ? namespaces : namespaces[0], keyPrefix);
5081
- const getT = () => memoGetT;
5082
- const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === "fallback" ? namespaces : namespaces[0], keyPrefix);
5083
- const [t, setT] = useState(getT);
5084
- let joinedNS = namespaces.join();
5085
- if (props.lng) joinedNS = `${props.lng}${joinedNS}`;
5086
- const previousJoinedNS = usePrevious(joinedNS);
5087
- const isMounted = useRef(true);
5088
- useEffect(() => {
5089
- const {
5090
- bindI18n,
5091
- bindI18nStore
5092
- } = i18nOptions;
5093
- isMounted.current = true;
5094
- if (!ready && !useSuspense) {
5095
- if (props.lng) {
5096
- loadLanguages(i18n, props.lng, namespaces, () => {
5097
- if (isMounted.current) setT(getNewT);
5098
- });
5099
- } else {
5100
- loadNamespaces(i18n, namespaces, () => {
5101
- if (isMounted.current) setT(getNewT);
5102
- });
4969
+ }) }),
4970
+ hasMore && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", justifyContent: "center", marginTop: "40px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
4971
+ "button",
4972
+ {
4973
+ onClick: handleLoadMore,
4974
+ style: {
4975
+ display: "inline-flex",
4976
+ alignItems: "center",
4977
+ gap: "8px",
4978
+ padding: "12px 28px",
4979
+ fontSize: "16px",
4980
+ fontWeight: "600",
4981
+ color: "#fff",
4982
+ backgroundColor: "#2563eb",
4983
+ border: "none",
4984
+ borderRadius: "9999px",
4985
+ cursor: "pointer",
4986
+ transition: "all 0.3s",
4987
+ boxShadow: "0 4px 6px -1px rgba(37, 99, 235, 0.3)"
4988
+ },
4989
+ onMouseEnter: (e) => {
4990
+ e.currentTarget.style.backgroundColor = "#1d4ed8";
4991
+ e.currentTarget.style.transform = "translateY(-2px)";
4992
+ },
4993
+ onMouseLeave: (e) => {
4994
+ e.currentTarget.style.backgroundColor = "#2563eb";
4995
+ e.currentTarget.style.transform = "translateY(0)";
4996
+ },
4997
+ children: [
4998
+ t("pageChildrenSelect.moreInsights"),
4999
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
5000
+ ]
5103
5001
  }
5104
- }
5105
- if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {
5106
- setT(getNewT);
5107
- }
5108
- const boundReset = () => {
5109
- if (isMounted.current) setT(getNewT);
5110
- };
5111
- if (bindI18n) i18n == null ? void 0 : i18n.on(bindI18n, boundReset);
5112
- if (bindI18nStore) i18n == null ? void 0 : i18n.store.on(bindI18nStore, boundReset);
5113
- return () => {
5114
- isMounted.current = false;
5115
- if (i18n && bindI18n) bindI18n == null ? void 0 : bindI18n.split(" ").forEach((e) => i18n.off(e, boundReset));
5116
- if (bindI18nStore && i18n) bindI18nStore.split(" ").forEach((e) => i18n.store.off(e, boundReset));
5117
- };
5118
- }, [i18n, joinedNS]);
5119
- useEffect(() => {
5120
- if (isMounted.current && ready) {
5121
- setT(getT);
5122
- }
5123
- }, [i18n, keyPrefix, ready]);
5124
- const ret = [t, i18n, ready];
5125
- ret.t = t;
5126
- ret.i18n = i18n;
5127
- ret.ready = ready;
5128
- if (ready) return ret;
5129
- if (!ready && !useSuspense) return ret;
5130
- throw new Promise((resolve) => {
5131
- if (props.lng) {
5132
- loadLanguages(i18n, props.lng, namespaces, () => resolve());
5133
- } else {
5134
- loadNamespaces(i18n, namespaces, () => resolve());
5135
- }
5136
- });
5002
+ ) })
5003
+ ] }) });
5137
5004
  };
5138
- const PageChildrenSelectSection2 = ({ data, isDarkMode, section, imageBaseUrl = "" }) => {
5005
+ const PageChildrenSelectSection2 = ({ data, isDarkMode, t, section, imageBaseUrl = "" }) => {
5139
5006
  var _a;
5140
- const { t } = useTranslation();
5141
5007
  const pages = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.map((item) => item.data).filter(Boolean)) || [];
5142
5008
  const sectionTitle = (section == null ? void 0 : section.title) || "";
5143
5009
  const [visibleCount, setVisibleCount] = useState(6);
@@ -5287,7 +5153,7 @@ const PageChildrenSelectSection2 = ({ data, isDarkMode, section, imageBaseUrl =
5287
5153
  },
5288
5154
  children: [
5289
5155
  t("pageChildrenSelect.moreInsights"),
5290
- /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight, { size: 18 })
5156
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRight$1, { size: 18 })
5291
5157
  ]
5292
5158
  }
5293
5159
  ) })