@redneckz/wildless-cms-uni-blocks 0.14.205 → 0.14.207

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.
Files changed (51) hide show
  1. package/bundle/bundle.umd.js +23 -9
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/utils/isUUID.d.ts +1 -1
  4. package/dist/components/Footer/Contacts.js +1 -1
  5. package/dist/components/Footer/Contacts.js.map +1 -1
  6. package/dist/hooks/useNavigateHandler.js +13 -4
  7. package/dist/hooks/useNavigateHandler.js.map +1 -1
  8. package/dist/utils/adjustHref.js +7 -2
  9. package/dist/utils/adjustHref.js.map +1 -1
  10. package/dist/utils/isUUID.d.ts +1 -1
  11. package/dist/utils/isUUID.js +1 -1
  12. package/dist/utils/isUUID.js.map +1 -1
  13. package/lib/components/Footer/Contacts.js +1 -1
  14. package/lib/components/Footer/Contacts.js.map +1 -1
  15. package/lib/hooks/useNavigateHandler.js +13 -4
  16. package/lib/hooks/useNavigateHandler.js.map +1 -1
  17. package/lib/utils/adjustHref.js +8 -3
  18. package/lib/utils/adjustHref.js.map +1 -1
  19. package/lib/utils/isUUID.d.ts +1 -1
  20. package/lib/utils/isUUID.js +1 -1
  21. package/lib/utils/isUUID.js.map +1 -1
  22. package/mobile/bundle/bundle.umd.js +23 -9
  23. package/mobile/bundle/bundle.umd.min.js +1 -1
  24. package/mobile/bundle/utils/isUUID.d.ts +1 -1
  25. package/mobile/dist/components/Footer/Contacts.js +1 -1
  26. package/mobile/dist/components/Footer/Contacts.js.map +1 -1
  27. package/mobile/dist/hooks/useNavigateHandler.js +13 -4
  28. package/mobile/dist/hooks/useNavigateHandler.js.map +1 -1
  29. package/mobile/dist/utils/adjustHref.js +7 -2
  30. package/mobile/dist/utils/adjustHref.js.map +1 -1
  31. package/mobile/dist/utils/isUUID.d.ts +1 -1
  32. package/mobile/dist/utils/isUUID.js +1 -1
  33. package/mobile/dist/utils/isUUID.js.map +1 -1
  34. package/mobile/lib/components/Footer/Contacts.js +1 -1
  35. package/mobile/lib/components/Footer/Contacts.js.map +1 -1
  36. package/mobile/lib/hooks/useNavigateHandler.js +13 -4
  37. package/mobile/lib/hooks/useNavigateHandler.js.map +1 -1
  38. package/mobile/lib/utils/adjustHref.js +8 -3
  39. package/mobile/lib/utils/adjustHref.js.map +1 -1
  40. package/mobile/lib/utils/isUUID.d.ts +1 -1
  41. package/mobile/lib/utils/isUUID.js +1 -1
  42. package/mobile/lib/utils/isUUID.js.map +1 -1
  43. package/mobile/src/components/Footer/Contacts.tsx +1 -1
  44. package/mobile/src/hooks/useNavigateHandler.ts +14 -4
  45. package/mobile/src/utils/adjustHref.ts +10 -3
  46. package/mobile/src/utils/isUUID.ts +1 -1
  47. package/package.json +1 -1
  48. package/src/components/Footer/Contacts.tsx +1 -1
  49. package/src/hooks/useNavigateHandler.ts +14 -4
  50. package/src/utils/adjustHref.ts +10 -3
  51. package/src/utils/isUUID.ts +1 -1
@@ -1 +1 @@
1
- export declare const isUUID: (src: string) => boolean;
1
+ export declare const isUUID: (src?: string) => boolean;
@@ -5,7 +5,7 @@ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
5
  const LinkButton_1 = require("../../ui-kit/LinkButton/LinkButton");
6
6
  const Paragraph_1 = require("../../ui-kit/Paragraph/Paragraph");
7
7
  const Text_1 = require("../../ui-kit/Text/Text");
8
- exports.Contacts = (0, uni_jsx_1.JSX)(({ className = '', items }) => ((0, jsx_runtime_1.jsxs)("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, (0, jsx_runtime_1.jsx)(LinkButton_1.LinkButton, { version: "primary", className: "w-full", href: "https://beta.rshb.ru/natural/feedback/question", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })] })));
8
+ exports.Contacts = (0, uni_jsx_1.JSX)(({ className = '', items }) => ((0, jsx_runtime_1.jsxs)("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, (0, jsx_runtime_1.jsx)(LinkButton_1.LinkButton, { version: "primary", className: "w-full", href: "https://www.rshb.ru/natural/feedback/question", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })] })));
9
9
  const renderContactsGroup = (item, i) => ((0, jsx_runtime_1.jsxs)("div", { className: "mb-m space-y-m", children: [(0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Text_1.Text, { size: "text-l", font: "font-medium", children: item?.title }) }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-m", children: item.items?.map(renderContact) })] }, String(i)));
10
10
  const renderContact = (item, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-2xs", children: [(0, jsx_runtime_1.jsx)("div", { children: renderText(item.type, item.text) }), (0, jsx_runtime_1.jsx)(Paragraph_1.Paragraph, { size: "text-s", font: "font-light", color: "text-secondary-text", children: item.description })] }, String(index)));
11
11
  const renderText = (type, text = '') => {
@@ -1 +1 @@
1
- {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../../src/components/Footer/Contacts.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,mEAAgE;AAChE,gEAA6D;AAC7D,iDAA8C;AAOjC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxE,iCAAK,SAAS,EAAE,SAAS,aACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,uBAAC,uBAAU,IACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,gDAAgD,EACrD,MAAM,EAAC,QAAQ,EACf,SAAS,EAAC,iFAAgB,EAC1B,IAAI,EAAC,iFAAgB,GACrB,IACE,CACP,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,IAAkB,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7D,iCAAK,SAAS,EAAC,gBAAgB,aAC7B,0CACE,uBAAC,WAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,YACnC,IAAI,EAAE,KAAK,GACP,GACH,EACN,gCAAK,SAAS,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,GAAO,KAN9B,MAAM,CAAC,CAAC,CAAC,CAOxC,CACP,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC1D,iCAAK,SAAS,EAAC,aAAa,aAC1B,0CAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAO,EAC7C,uBAAC,qBAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,YACnE,IAAI,CAAC,WAAW,GACP,KAJoB,MAAM,CAAC,KAAK,CAAC,CAKzC,CACP,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IAC1D,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK;YACR,OAAO,CACL,8BACE,SAAS,EAAC,wDAAwD,EAClE,IAAI,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,YAE9B,uBAAC,WAAI,IAAC,IAAI,EAAC,SAAS,YAAE,IAAI,GAAQ,GAChC,CACL,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,8BAAG,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,UAAU,IAAI,EAAE,YAChD,uBAAC,qBAAS,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,mBAAmB,YAClE,IAAI,GACK,GACV,CACL,CAAC;QACJ;YACE,OAAO,2CAAO,IAAI,GAAQ,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../../src/components/Footer/Contacts.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,mEAAgE;AAChE,gEAA6D;AAC7D,iDAA8C;AAOjC,QAAA,QAAQ,GAAG,IAAA,aAAG,EAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxE,iCAAK,SAAS,EAAE,SAAS,aACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,uBAAC,uBAAU,IACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,+CAA+C,EACpD,MAAM,EAAC,QAAQ,EACf,SAAS,EAAC,iFAAgB,EAC1B,IAAI,EAAC,iFAAgB,GACrB,IACE,CACP,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,IAAkB,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7D,iCAAK,SAAS,EAAC,gBAAgB,aAC7B,0CACE,uBAAC,WAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,YACnC,IAAI,EAAE,KAAK,GACP,GACH,EACN,gCAAK,SAAS,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,GAAO,KAN9B,MAAM,CAAC,CAAC,CAAC,CAOxC,CACP,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC1D,iCAAK,SAAS,EAAC,aAAa,aAC1B,0CAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAO,EAC7C,uBAAC,qBAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,YACnE,IAAI,CAAC,WAAW,GACP,KAJoB,MAAM,CAAC,KAAK,CAAC,CAKzC,CACP,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IAC1D,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK;YACR,OAAO,CACL,8BACE,SAAS,EAAC,wDAAwD,EAClE,IAAI,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,YAE9B,uBAAC,WAAI,IAAC,IAAI,EAAC,SAAS,YAAE,IAAI,GAAQ,GAChC,CACL,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,8BAAG,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,UAAU,IAAI,EAAE,YAChD,uBAAC,qBAAS,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,mBAAmB,YAClE,IAAI,GACK,GACV,CACL,CAAC;QACJ;YACE,OAAO,2CAAO,IAAI,GAAQ,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC"}
@@ -13,11 +13,20 @@ const useNavigateHandler = () => {
13
13
  };
14
14
  exports.useNavigateHandler = useNavigateHandler;
15
15
  const navigationHandler = (ev) => {
16
- const target = ev.target;
17
- if (target?.tagName === 'A' && (0, url_1.isURL)(target.href)) {
16
+ const element = getAnchorElement(ev.target);
17
+ if ((0, url_1.isURL)(element?.href)) {
18
18
  ev.preventDefault();
19
- const url = (0, adjustSessionQuery_1.adjustSessionQuery)(target.href) || target.href;
20
- globalThis.location.href = url;
19
+ const url = (0, adjustSessionQuery_1.adjustSessionQuery)(element?.href) || element?.href;
20
+ if (url) {
21
+ globalThis.location.href = url;
22
+ }
21
23
  }
22
24
  };
25
+ const getAnchorElement = (target) => {
26
+ let _target = target;
27
+ while (Boolean(_target) && _target.tagName !== 'A') {
28
+ _target = _target?.parentNode;
29
+ }
30
+ return _target;
31
+ };
23
32
  //# sourceMappingURL=useNavigateHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigateHandler.js","sourceRoot":"","sources":["../../src/hooks/useNavigateHandler.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AACxD,mFAAgF;AAChF,oEAAiE;AACjE,8DAA2D;AAC3D,sCAAqC;AAE9B,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAA,iCAAe,GAAE,CAAC,CAAC,oDAAoD;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,mCAAgB,EAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAc,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,MAA2B,CAAC;IAC9C,IAAI,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI,IAAA,WAAK,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACjD,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,IAAA,uCAAkB,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC;QAE3D,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;KAChC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"useNavigateHandler.js","sourceRoot":"","sources":["../../src/hooks/useNavigateHandler.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AACxD,mFAAgF;AAChF,oEAAiE;AACjE,8DAA2D;AAC3D,sCAAqC;AAE9B,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAA,iCAAe,GAAE,CAAC,CAAC,oDAAoD;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,mCAAgB,EAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,MAAc,CAAC,CAAC;IACpD,IAAI,IAAA,WAAK,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QACxB,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,IAAA,uCAAkB,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC;QAC/D,IAAI,GAAG,EAAE;YACP,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;SAChC;KACF;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC/C,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAK,OAAmB,CAAC,OAAO,KAAK,GAAG,EAAE;QAC/D,OAAO,GAAG,OAAO,EAAE,UAAyB,CAAC;KAC9C;IAED,OAAO,OAAmC,CAAC;AAC7C,CAAC,CAAC"}
@@ -7,13 +7,18 @@ const url_1 = require("./url");
7
7
  exports.PREFIX_API = '/api/';
8
8
  exports.FILE_STORAGE_API = `${exports.PREFIX_API}v1/storage`;
9
9
  const adjustHref = (router) => (href, basePath = ProjectSettings_1.projectSettings.BASE_PATH) => {
10
- if (!href || (0, url_1.isURL)(href) || [ProjectSettings_1.projectSettings.CDN, exports.PREFIX_API].some((_) => hasPrefix(href, _))) {
10
+ if ([
11
+ !href,
12
+ (0, url_1.isURL)(href),
13
+ (0, url_1.isHash)(href),
14
+ [ProjectSettings_1.projectSettings.CDN, exports.PREFIX_API].some((_) => hasPrefix(href, _)),
15
+ ].some(Boolean)) {
11
16
  return href;
12
17
  }
13
18
  if ((0, isUUID_1.isUUID)(href)) {
14
19
  return `${exports.FILE_STORAGE_API}/${href}/file`;
15
20
  }
16
- const isRelativeToBase = href.startsWith('/');
21
+ const isRelativeToBase = href?.startsWith('/');
17
22
  return (0, url_1.joinPath)(hasPrefix(href, basePath) ? '' : basePath, isRelativeToBase ? '/' : (0, dirname_1.dirname)(router.pathname), href);
18
23
  };
19
24
  exports.adjustHref = adjustHref;
@@ -1 +1 @@
1
- {"version":3,"file":"adjustHref.js","sourceRoot":"","sources":["../../src/utils/adjustHref.ts"],"names":[],"mappings":";;AAAA,wDAAqD;AACrD,uCAAoC;AACpC,qCAAkC;AAClC,+BAAwC;AAE3B,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,gBAAgB,GAAG,GAAG,kBAAU,YAAY,CAAC;AAEnD,MAAM,UAAU,GACrB,CAAC,MAA4B,EAAE,EAAE,CACjC,CAAC,IAAwB,EAAE,QAAQ,GAAG,iCAAe,CAAC,SAAS,EAAE,EAAE;IACjE,IAAI,CAAC,IAAI,IAAI,IAAA,WAAK,EAAC,IAAI,CAAC,IAAI,CAAC,iCAAe,CAAC,GAAG,EAAE,kBAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC7F,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAA,eAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,GAAG,wBAAgB,IAAI,IAAI,OAAO,CAAC;KAC3C;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,IAAA,cAAQ,EACb,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACzC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAlBS,QAAA,UAAU,cAkBnB;AAEJ,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,MAA2B,EAAE,EAAE,CAC/D,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"adjustHref.js","sourceRoot":"","sources":["../../src/utils/adjustHref.ts"],"names":[],"mappings":";;AAAA,wDAAqD;AACrD,uCAAoC;AACpC,qCAAkC;AAClC,+BAAgD;AAEnC,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,gBAAgB,GAAG,GAAG,kBAAU,YAAY,CAAC;AAEnD,MAAM,UAAU,GACrB,CAAC,MAA4B,EAAE,EAAE,CACjC,CAAC,IAAwB,EAAE,QAAQ,GAAG,iCAAe,CAAC,SAAS,EAAE,EAAE;IACjE,IACE;QACE,CAAC,IAAI;QACL,IAAA,WAAK,EAAC,IAAI,CAAC;QACX,IAAA,YAAM,EAAC,IAAI,CAAC;QACZ,CAAC,iCAAe,CAAC,GAAG,EAAE,kBAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAClE,CAAC,IAAI,CAAC,OAAO,CAAC,EACf;QACA,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAA,eAAM,EAAC,IAAI,CAAC,EAAE;QAChB,OAAO,GAAG,wBAAgB,IAAI,IAAI,OAAO,CAAC;KAC3C;IAED,MAAM,gBAAgB,GAAG,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAE/C,OAAO,IAAA,cAAQ,EACb,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACzC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAzBS,QAAA,UAAU,cAyBnB;AAEJ,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,MAA2B,EAAE,EAAE,CAC/D,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare const isUUID: (src: string) => boolean;
1
+ export declare const isUUID: (src?: string) => boolean;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.isUUID = void 0;
3
- const isUUID = (src) => {
3
+ const isUUID = (src = '') => {
4
4
  return /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}(\/revs\/[0-9]{1,20})?$/.test(src);
5
5
  };
6
6
  exports.isUUID = isUUID;
@@ -1 +1 @@
1
- {"version":3,"file":"isUUID.js","sourceRoot":"","sources":["../../src/utils/isUUID.ts"],"names":[],"mappings":";;AAAO,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,OAAO,+FAA+F,CAAC,IAAI,CACzG,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB"}
1
+ {"version":3,"file":"isUUID.js","sourceRoot":"","sources":["../../src/utils/isUUID.ts"],"names":[],"mappings":";;AAAO,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE;IACjC,OAAO,+FAA+F,CAAC,IAAI,CACzG,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB"}
@@ -3,7 +3,7 @@ import { JSX } from '@redneckz/uni-jsx';
3
3
  import { LinkButton } from '../../ui-kit/LinkButton/LinkButton.js';
4
4
  import { Paragraph } from '../../ui-kit/Paragraph/Paragraph.js';
5
5
  import { Text } from '../../ui-kit/Text/Text.js';
6
- export const Contacts = JSX(({ className = '', items }) => (_jsxs("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, _jsx(LinkButton, { version: "primary", className: "w-full", href: "https://beta.rshb.ru/natural/feedback/question", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })] })));
6
+ export const Contacts = JSX(({ className = '', items }) => (_jsxs("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, _jsx(LinkButton, { version: "primary", className: "w-full", href: "https://www.rshb.ru/natural/feedback/question", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })] })));
7
7
  const renderContactsGroup = (item, i) => (_jsxs("div", { className: "mb-m space-y-m", children: [_jsx("div", { children: _jsx(Text, { size: "text-l", font: "font-medium", children: item?.title }) }), _jsx("div", { className: "space-y-m", children: item.items?.map(renderContact) })] }, String(i)));
8
8
  const renderContact = (item, index) => (_jsxs("div", { className: "space-y-2xs", children: [_jsx("div", { children: renderText(item.type, item.text) }), _jsx(Paragraph, { size: "text-s", font: "font-light", color: "text-secondary-text", children: item.description })] }, String(index)));
9
9
  const renderText = (type, text = '') => {
@@ -1 +1 @@
1
- {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../../src/components/Footer/Contacts.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAO9C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxE,eAAK,SAAS,EAAE,SAAS,aACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,KAAC,UAAU,IACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,gDAAgD,EACrD,MAAM,EAAC,QAAQ,EACf,SAAS,EAAC,iFAAgB,EAC1B,IAAI,EAAC,iFAAgB,GACrB,IACE,CACP,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,IAAkB,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7D,eAAK,SAAS,EAAC,gBAAgB,aAC7B,wBACE,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,YACnC,IAAI,EAAE,KAAK,GACP,GACH,EACN,cAAK,SAAS,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,GAAO,KAN9B,MAAM,CAAC,CAAC,CAAC,CAOxC,CACP,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC1D,eAAK,SAAS,EAAC,aAAa,aAC1B,wBAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAO,EAC7C,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,YACnE,IAAI,CAAC,WAAW,GACP,KAJoB,MAAM,CAAC,KAAK,CAAC,CAKzC,CACP,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IAC1D,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK;YACR,OAAO,CACL,YACE,SAAS,EAAC,wDAAwD,EAClE,IAAI,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,YAE9B,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,YAAE,IAAI,GAAQ,GAChC,CACL,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,YAAG,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,UAAU,IAAI,EAAE,YAChD,KAAC,SAAS,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,mBAAmB,YAClE,IAAI,GACK,GACV,CACL,CAAC;QACJ;YACE,OAAO,yBAAO,IAAI,GAAQ,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../../src/components/Footer/Contacts.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAO9C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAgB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACxE,eAAK,SAAS,EAAE,SAAS,aACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,KAAC,UAAU,IACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,+CAA+C,EACpD,MAAM,EAAC,QAAQ,EACf,SAAS,EAAC,iFAAgB,EAC1B,IAAI,EAAC,iFAAgB,GACrB,IACE,CACP,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,IAAkB,EAAE,CAAS,EAAE,EAAE,CAAC,CAC7D,eAAK,SAAS,EAAC,gBAAgB,aAC7B,wBACE,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,YACnC,IAAI,EAAE,KAAK,GACP,GACH,EACN,cAAK,SAAS,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,GAAO,KAN9B,MAAM,CAAC,CAAC,CAAC,CAOxC,CACP,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,KAAa,EAAE,EAAE,CAAC,CAC1D,eAAK,SAAS,EAAC,aAAa,aAC1B,wBAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAO,EAC7C,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,YACnE,IAAI,CAAC,WAAW,GACP,KAJoB,MAAM,CAAC,KAAK,CAAC,CAKzC,CACP,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IAC1D,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK;YACR,OAAO,CACL,YACE,SAAS,EAAC,wDAAwD,EAClE,IAAI,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,YAE9B,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,YAAE,IAAI,GAAQ,GAChC,CACL,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,CACL,YAAG,SAAS,EAAC,cAAc,EAAC,IAAI,EAAE,UAAU,IAAI,EAAE,YAChD,KAAC,SAAS,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,mBAAmB,YAClE,IAAI,GACK,GACV,CACL,CAAC;QACJ;YACE,OAAO,yBAAO,IAAI,GAAQ,CAAC;KAC9B;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC"}
@@ -10,11 +10,20 @@ export const useNavigateHandler = () => {
10
10
  useEventListener(globalThis, 'click', navigationHandler);
11
11
  };
12
12
  const navigationHandler = (ev) => {
13
- const target = ev.target;
14
- if (target?.tagName === 'A' && isURL(target.href)) {
13
+ const element = getAnchorElement(ev.target);
14
+ if (isURL(element?.href)) {
15
15
  ev.preventDefault();
16
- const url = adjustSessionQuery(target.href) || target.href;
17
- globalThis.location.href = url;
16
+ const url = adjustSessionQuery(element?.href) || element?.href;
17
+ if (url) {
18
+ globalThis.location.href = url;
19
+ }
18
20
  }
19
21
  };
22
+ const getAnchorElement = (target) => {
23
+ let _target = target;
24
+ while (Boolean(_target) && _target.tagName !== 'A') {
25
+ _target = _target?.parentNode;
26
+ }
27
+ return _target;
28
+ };
20
29
  //# sourceMappingURL=useNavigateHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigateHandler.js","sourceRoot":"","sources":["../../src/hooks/useNavigateHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC,CAAC,oDAAoD;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAc,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,MAA2B,CAAC;IAC9C,IAAI,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACjD,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC;QAE3D,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;KAChC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"useNavigateHandler.js","sourceRoot":"","sources":["../../src/hooks/useNavigateHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC,CAAC,oDAAoD;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,MAAc,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QACxB,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC;QAC/D,IAAI,GAAG,EAAE;YACP,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;SAChC;KACF;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC/C,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAK,OAAmB,CAAC,OAAO,KAAK,GAAG,EAAE;QAC/D,OAAO,GAAG,OAAO,EAAE,UAAyB,CAAC;KAC9C;IAED,OAAO,OAAmC,CAAC;AAC7C,CAAC,CAAC"}
@@ -1,17 +1,22 @@
1
1
  import { projectSettings } from '../ProjectSettings.js';
2
2
  import { dirname } from './dirname.js';
3
3
  import { isUUID } from './isUUID.js';
4
- import { isURL, joinPath } from './url.js';
4
+ import { isHash, isURL, joinPath } from './url.js';
5
5
  export const PREFIX_API = '/api/';
6
6
  export const FILE_STORAGE_API = `${PREFIX_API}v1/storage`;
7
7
  export const adjustHref = (router) => (href, basePath = projectSettings.BASE_PATH) => {
8
- if (!href || isURL(href) || [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _))) {
8
+ if ([
9
+ !href,
10
+ isURL(href),
11
+ isHash(href),
12
+ [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _)),
13
+ ].some(Boolean)) {
9
14
  return href;
10
15
  }
11
16
  if (isUUID(href)) {
12
17
  return `${FILE_STORAGE_API}/${href}/file`;
13
18
  }
14
- const isRelativeToBase = href.startsWith('/');
19
+ const isRelativeToBase = href?.startsWith('/');
15
20
  return joinPath(hasPrefix(href, basePath) ? '' : basePath, isRelativeToBase ? '/' : dirname(router.pathname), href);
16
21
  };
17
22
  const hasPrefix = (href, prefix) => prefix && href && href.startsWith(prefix);
@@ -1 +1 @@
1
- {"version":3,"file":"adjustHref.js","sourceRoot":"","sources":["../../src/utils/adjustHref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,UAAU,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,MAA4B,EAAE,EAAE,CACjC,CAAC,IAAwB,EAAE,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE;IACjE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC7F,OAAO,IAAI,CAAC;KACb;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,OAAO,GAAG,gBAAgB,IAAI,IAAI,OAAO,CAAC;KAC3C;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,QAAQ,CACb,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACzC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,MAA2B,EAAE,EAAE,CAC/D,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"adjustHref.js","sourceRoot":"","sources":["../../src/utils/adjustHref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,UAAU,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,MAA4B,EAAE,EAAE,CACjC,CAAC,IAAwB,EAAE,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,EAAE;IACjE,IACE;QACE,CAAC,IAAI;QACL,KAAK,CAAC,IAAI,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;QACZ,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAClE,CAAC,IAAI,CAAC,OAAO,CAAC,EACf;QACA,OAAO,IAAI,CAAC;KACb;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,OAAO,GAAG,gBAAgB,IAAI,IAAI,OAAO,CAAC;KAC3C;IAED,MAAM,gBAAgB,GAAG,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAE/C,OAAO,QAAQ,CACb,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACzC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,MAA2B,EAAE,EAAE,CAC/D,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare const isUUID: (src: string) => boolean;
1
+ export declare const isUUID: (src?: string) => boolean;
@@ -1,4 +1,4 @@
1
- export const isUUID = (src) => {
1
+ export const isUUID = (src = '') => {
2
2
  return /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}(\/revs\/[0-9]{1,20})?$/.test(src);
3
3
  };
4
4
  //# sourceMappingURL=isUUID.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isUUID.js","sourceRoot":"","sources":["../../src/utils/isUUID.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,OAAO,+FAA+F,CAAC,IAAI,CACzG,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"isUUID.js","sourceRoot":"","sources":["../../src/utils/isUUID.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE;IACjC,OAAO,+FAA+F,CAAC,IAAI,CACzG,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -15,7 +15,7 @@ export const Contacts = JSX<ContactsProps>(({ className = '', items }) => (
15
15
  <LinkButton
16
16
  version="primary"
17
17
  className="w-full"
18
- href="https://beta.rshb.ru/natural/feedback/question"
18
+ href="https://www.rshb.ru/natural/feedback/question"
19
19
  target="_blank"
20
20
  ariaLabel="Обратная связь"
21
21
  text="Обратная связь"
@@ -13,12 +13,22 @@ export const useNavigateHandler = () => {
13
13
  };
14
14
 
15
15
  const navigationHandler = (ev: MouseEvent) => {
16
- const target = ev.target as HTMLAnchorElement;
17
- if (target?.tagName === 'A' && isURL(target.href)) {
16
+ const element = getAnchorElement(ev.target as Node);
17
+ if (isURL(element?.href)) {
18
18
  ev.preventDefault();
19
19
 
20
- const url = adjustSessionQuery(target.href) || target.href;
20
+ const url = adjustSessionQuery(element?.href) || element?.href;
21
+ if (url) {
22
+ globalThis.location.href = url;
23
+ }
24
+ }
25
+ };
21
26
 
22
- globalThis.location.href = url;
27
+ const getAnchorElement = (target: Node | null) => {
28
+ let _target = target;
29
+ while (Boolean(_target) && (_target as Element).tagName !== 'A') {
30
+ _target = _target?.parentNode as Node | null;
23
31
  }
32
+
33
+ return _target as HTMLAnchorElement | null;
24
34
  };
@@ -1,7 +1,7 @@
1
1
  import { projectSettings } from '../ProjectSettings';
2
2
  import { dirname } from './dirname';
3
3
  import { isUUID } from './isUUID';
4
- import { isURL, joinPath } from './url';
4
+ import { isHash, isURL, joinPath } from './url';
5
5
 
6
6
  export const PREFIX_API = '/api/';
7
7
  export const FILE_STORAGE_API = `${PREFIX_API}v1/storage`;
@@ -9,7 +9,14 @@ export const FILE_STORAGE_API = `${PREFIX_API}v1/storage`;
9
9
  export const adjustHref =
10
10
  (router: { pathname: string }) =>
11
11
  (href: string | undefined, basePath = projectSettings.BASE_PATH) => {
12
- if (!href || isURL(href) || [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _))) {
12
+ if (
13
+ [
14
+ !href,
15
+ isURL(href),
16
+ isHash(href),
17
+ [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _)),
18
+ ].some(Boolean)
19
+ ) {
13
20
  return href;
14
21
  }
15
22
 
@@ -17,7 +24,7 @@ export const adjustHref =
17
24
  return `${FILE_STORAGE_API}/${href}/file`;
18
25
  }
19
26
 
20
- const isRelativeToBase = href.startsWith('/');
27
+ const isRelativeToBase = href?.startsWith('/');
21
28
 
22
29
  return joinPath(
23
30
  hasPrefix(href, basePath) ? '' : basePath,
@@ -1,4 +1,4 @@
1
- export const isUUID = (src: string) => {
1
+ export const isUUID = (src = '') => {
2
2
  return /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}(\/revs\/[0-9]{1,20})?$/.test(
3
3
  src,
4
4
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.205",
3
+ "version": "0.14.207",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -15,7 +15,7 @@ export const Contacts = JSX<ContactsProps>(({ className = '', items }) => (
15
15
  <LinkButton
16
16
  version="primary"
17
17
  className="w-full"
18
- href="https://beta.rshb.ru/natural/feedback/question"
18
+ href="https://www.rshb.ru/natural/feedback/question"
19
19
  target="_blank"
20
20
  ariaLabel="Обратная связь"
21
21
  text="Обратная связь"
@@ -13,12 +13,22 @@ export const useNavigateHandler = () => {
13
13
  };
14
14
 
15
15
  const navigationHandler = (ev: MouseEvent) => {
16
- const target = ev.target as HTMLAnchorElement;
17
- if (target?.tagName === 'A' && isURL(target.href)) {
16
+ const element = getAnchorElement(ev.target as Node);
17
+ if (isURL(element?.href)) {
18
18
  ev.preventDefault();
19
19
 
20
- const url = adjustSessionQuery(target.href) || target.href;
20
+ const url = adjustSessionQuery(element?.href) || element?.href;
21
+ if (url) {
22
+ globalThis.location.href = url;
23
+ }
24
+ }
25
+ };
21
26
 
22
- globalThis.location.href = url;
27
+ const getAnchorElement = (target: Node | null) => {
28
+ let _target = target;
29
+ while (Boolean(_target) && (_target as Element).tagName !== 'A') {
30
+ _target = _target?.parentNode as Node | null;
23
31
  }
32
+
33
+ return _target as HTMLAnchorElement | null;
24
34
  };
@@ -1,7 +1,7 @@
1
1
  import { projectSettings } from '../ProjectSettings';
2
2
  import { dirname } from './dirname';
3
3
  import { isUUID } from './isUUID';
4
- import { isURL, joinPath } from './url';
4
+ import { isHash, isURL, joinPath } from './url';
5
5
 
6
6
  export const PREFIX_API = '/api/';
7
7
  export const FILE_STORAGE_API = `${PREFIX_API}v1/storage`;
@@ -9,7 +9,14 @@ export const FILE_STORAGE_API = `${PREFIX_API}v1/storage`;
9
9
  export const adjustHref =
10
10
  (router: { pathname: string }) =>
11
11
  (href: string | undefined, basePath = projectSettings.BASE_PATH) => {
12
- if (!href || isURL(href) || [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _))) {
12
+ if (
13
+ [
14
+ !href,
15
+ isURL(href),
16
+ isHash(href),
17
+ [projectSettings.CDN, PREFIX_API].some((_) => hasPrefix(href, _)),
18
+ ].some(Boolean)
19
+ ) {
13
20
  return href;
14
21
  }
15
22
 
@@ -17,7 +24,7 @@ export const adjustHref =
17
24
  return `${FILE_STORAGE_API}/${href}/file`;
18
25
  }
19
26
 
20
- const isRelativeToBase = href.startsWith('/');
27
+ const isRelativeToBase = href?.startsWith('/');
21
28
 
22
29
  return joinPath(
23
30
  hasPrefix(href, basePath) ? '' : basePath,
@@ -1,4 +1,4 @@
1
- export const isUUID = (src: string) => {
1
+ export const isUUID = (src = '') => {
2
2
  return /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}(\/revs\/[0-9]{1,20})?$/.test(
3
3
  src,
4
4
  );