@redneckz/wildless-cms-uni-blocks 0.9.15 → 0.9.16

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 (103) hide show
  1. package/bundle/bundle.umd.js +14 -12
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/hooks/useLink.d.ts +5 -1
  4. package/bundle/services/sitemap/SitemapData.d.ts +2 -2
  5. package/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  6. package/bundle/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  7. package/bundle/utils/adjustHref.d.ts +1 -1
  8. package/dist/components/Calculator/useDepositCalculatorParams.js +1 -1
  9. package/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  10. package/dist/components/Footer/TextInformationLink.js +1 -1
  11. package/dist/components/Footer/TextInformationLink.js.map +1 -1
  12. package/dist/hooks/useLink.d.ts +5 -1
  13. package/dist/hooks/useLink.js +3 -2
  14. package/dist/hooks/useLink.js.map +1 -1
  15. package/dist/services/sitemap/SitemapData.d.ts +2 -2
  16. package/dist/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  17. package/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  18. package/dist/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  19. package/dist/ui-kit/Sitemap/Sitemap.js +3 -4
  20. package/dist/ui-kit/Sitemap/Sitemap.js.map +1 -1
  21. package/dist/ui-kit/TopItem/TopItem.js +1 -1
  22. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  23. package/dist/utils/adjustHref.d.ts +1 -1
  24. package/dist/utils/adjustHref.js +4 -3
  25. package/dist/utils/adjustHref.js.map +1 -1
  26. package/lib/components/Calculator/useDepositCalculatorParams.js +1 -1
  27. package/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  28. package/lib/components/Footer/TextInformationLink.js +1 -1
  29. package/lib/components/Footer/TextInformationLink.js.map +1 -1
  30. package/lib/hooks/useLink.d.ts +5 -1
  31. package/lib/hooks/useLink.js +3 -2
  32. package/lib/hooks/useLink.js.map +1 -1
  33. package/lib/services/sitemap/SitemapData.d.ts +2 -2
  34. package/lib/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  35. package/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  36. package/lib/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  37. package/lib/ui-kit/Sitemap/Sitemap.js +3 -4
  38. package/lib/ui-kit/Sitemap/Sitemap.js.map +1 -1
  39. package/lib/ui-kit/TopItem/TopItem.js +1 -1
  40. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  41. package/lib/utils/adjustHref.d.ts +1 -1
  42. package/lib/utils/adjustHref.js +4 -3
  43. package/lib/utils/adjustHref.js.map +1 -1
  44. package/mobile/bundle/bundle.umd.js +12 -10
  45. package/mobile/bundle/bundle.umd.min.js +1 -1
  46. package/mobile/bundle/hooks/useLink.d.ts +5 -1
  47. package/mobile/bundle/services/sitemap/SitemapData.d.ts +2 -2
  48. package/mobile/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  49. package/mobile/bundle/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  50. package/mobile/bundle/utils/adjustHref.d.ts +1 -1
  51. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js +1 -1
  52. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  53. package/mobile/dist/components/Footer/TextInformationLink.js +1 -1
  54. package/mobile/dist/components/Footer/TextInformationLink.js.map +1 -1
  55. package/mobile/dist/hooks/useLink.d.ts +5 -1
  56. package/mobile/dist/hooks/useLink.js +3 -2
  57. package/mobile/dist/hooks/useLink.js.map +1 -1
  58. package/mobile/dist/services/sitemap/SitemapData.d.ts +2 -2
  59. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  60. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  61. package/mobile/dist/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  62. package/mobile/dist/ui-kit/Sitemap/Sitemap.js +3 -4
  63. package/mobile/dist/ui-kit/Sitemap/Sitemap.js.map +1 -1
  64. package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -1
  65. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  66. package/mobile/dist/utils/adjustHref.d.ts +1 -1
  67. package/mobile/dist/utils/adjustHref.js +4 -3
  68. package/mobile/dist/utils/adjustHref.js.map +1 -1
  69. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js +1 -1
  70. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  71. package/mobile/lib/components/Footer/TextInformationLink.js +1 -1
  72. package/mobile/lib/components/Footer/TextInformationLink.js.map +1 -1
  73. package/mobile/lib/hooks/useLink.d.ts +5 -1
  74. package/mobile/lib/hooks/useLink.js +3 -2
  75. package/mobile/lib/hooks/useLink.js.map +1 -1
  76. package/mobile/lib/services/sitemap/SitemapData.d.ts +2 -2
  77. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.d.ts +2 -2
  78. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  79. package/mobile/lib/ui-kit/Sitemap/Sitemap.d.ts +2 -2
  80. package/mobile/lib/ui-kit/Sitemap/Sitemap.js +3 -4
  81. package/mobile/lib/ui-kit/Sitemap/Sitemap.js.map +1 -1
  82. package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -1
  83. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  84. package/mobile/lib/utils/adjustHref.d.ts +1 -1
  85. package/mobile/lib/utils/adjustHref.js +4 -3
  86. package/mobile/lib/utils/adjustHref.js.map +1 -1
  87. package/mobile/src/components/Calculator/useDepositCalculatorParams.ts +1 -1
  88. package/mobile/src/components/Footer/TextInformationLink.tsx +1 -1
  89. package/mobile/src/hooks/useLink.ts +9 -2
  90. package/mobile/src/services/sitemap/SitemapData.ts +2 -2
  91. package/mobile/src/ui-kit/SearchDialog/SearchDialog.tsx +5 -5
  92. package/mobile/src/ui-kit/Sitemap/Sitemap.tsx +6 -7
  93. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -1
  94. package/mobile/src/utils/adjustHref.ts +16 -11
  95. package/package.json +1 -1
  96. package/src/components/Calculator/useDepositCalculatorParams.ts +1 -1
  97. package/src/components/Footer/TextInformationLink.tsx +1 -1
  98. package/src/hooks/useLink.ts +9 -2
  99. package/src/services/sitemap/SitemapData.ts +2 -2
  100. package/src/ui-kit/SearchDialog/SearchDialog.tsx +5 -5
  101. package/src/ui-kit/Sitemap/Sitemap.tsx +6 -7
  102. package/src/ui-kit/TopItem/TopItem.tsx +1 -1
  103. package/src/utils/adjustHref.ts +16 -11
@@ -1 +1 @@
1
- {"version":3,"file":"useDepositCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/Calculator/useDepositCalculatorParams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDepositCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/Calculator/useDepositCalculatorParams.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { useLink } from '../../hooks/useLink.js';
4
4
  export const TextInformationLink = JSX(({ className = '', index, ...rest }) => {
5
- const link = useLink();
5
+ const link = useLink({ isRemote: true });
6
6
  const { href, target, text, onClick } = link(rest);
7
7
  return (_jsx("a", { className: `text-xs-light text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` }));
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TextInformationLink.js","sourceRoot":"","sources":["../../../src/components/Footer/TextInformationLink.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,iIAAiI,SAAS,EAAE,EACvJ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,YAAY,KAAK,EAAE,GAC1B,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"TextInformationLink.js","sourceRoot":"","sources":["../../../src/components/Footer/TextInformationLink.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAS9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,iIAAiI,SAAS,EAAE,EACvJ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,YAAY,KAAK,EAAE,GAC1B,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -3,5 +3,9 @@ import type { PreventableEvent } from '../ui-kit/PreventableEvent';
3
3
  interface Clickable {
4
4
  onClick(ev?: PreventableEvent): void;
5
5
  }
6
- export declare function useLink(isRemote?: boolean): <L extends Partial<LinkProps & Clickable>>(props: L) => L & Clickable;
6
+ interface UseLinkParams {
7
+ isRemote?: boolean;
8
+ basePath?: string;
9
+ }
10
+ export declare function useLink(params?: UseLinkParams): <L extends Partial<LinkProps & Clickable>>(props: L) => L & Clickable;
7
11
  export {};
@@ -3,12 +3,13 @@ import { adjustHref } from '../utils/adjustHref.js';
3
3
  import { isLocalURL } from '../utils/url.js';
4
4
  import { handlerDecorator } from './handlerDecorator.js';
5
5
  import { useRouter } from './useRouter.js';
6
- export function useLink(isRemote = false) {
6
+ export function useLink(params = {}) {
7
+ const { isRemote, basePath } = params;
7
8
  const router = useRouter();
8
9
  const { close } = useDialog();
9
10
  return (props) => ({
10
11
  ...props,
11
- href: isRemote ? props.href : adjustHref(router)(props.href),
12
+ href: isRemote ? props.href : adjustHref(router)(props.href, basePath),
12
13
  'aria-label': props.text,
13
14
  onClick: handlerDecorator(handleHref(props), props),
14
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useLink.js","sourceRoot":"","sources":["../../src/hooks/useLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,UAAU,OAAO,CAAC,QAAQ,GAAG,KAAK;IACtC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;IAE9B,OAAO,CAA2C,KAAQ,EAAiB,EAAE,CAAC,CAAC;QAC7E,GAAG,KAAK;QACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5D,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;KACpD,CAAC,CAAC;IAEH,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAkC;QAC3E,OAAO,CAAC,EAAqB,EAAE,EAAE;YAC/B,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;YAEvB,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBAClD,kBAAkB;gBAClB,OAAO;aACR;YAED,KAAK,EAAE,CAAC;YAER,iBAAiB;YACjB,EAAE,EAAE,cAAc,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"useLink.js","sourceRoot":"","sources":["../../src/hooks/useLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAWxC,MAAM,UAAU,OAAO,CAAC,SAAwB,EAAE;IAChD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEtC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;IAE9B,OAAO,CAA2C,KAAQ,EAAiB,EAAE,CAAC,CAAC;QAC7E,GAAG,KAAK;QACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;QACtE,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;KACpD,CAAC,CAAC;IAEH,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAkC;QAC3E,OAAO,CAAC,EAAqB,EAAE,EAAE;YAC/B,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;YAEvB,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBAClD,kBAAkB;gBAClB,OAAO;aACR;YAED,KAAK,EAAE,CAAC;YAER,iBAAiB;YACjB,EAAE,EAAE,cAAc,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -5,7 +5,7 @@ import type { IconProps, Picture } from '../../model/Picture';
5
5
  * @title Ссылка
6
6
  * @required ["text", "href"]
7
7
  */
8
- export interface TopMenuItem extends LinkProps {
8
+ export interface TopMenuItemProps extends LinkProps {
9
9
  /** @hidden */
10
10
  items?: LinkProps[];
11
11
  }
@@ -23,7 +23,7 @@ export interface DispositionItem extends LinkProps {
23
23
  */
24
24
  export declare type ForeignOffice = LinkProps & IconProps;
25
25
  export interface SitemapData {
26
- topItems?: TopMenuItem[];
26
+ topItems?: TopMenuItemProps[];
27
27
  dispositions?: DispositionItem[];
28
28
  logo?: LogoType;
29
29
  foreignOffices?: ForeignOffice[];
@@ -1,6 +1,6 @@
1
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
1
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
2
2
  export interface SearchDialogProps {
3
- topItems?: TopMenuItem[];
3
+ topItems?: TopMenuItemProps[];
4
4
  }
5
5
  export declare const SEARCH_DIALOG_ID = "search";
6
6
  export declare const SearchDialog: import("@redneckz/uni-jsx").UNIComponent<SearchDialogProps, any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchDialog.js","sourceRoot":"","sources":["../../../src/ui-kit/SearchDialog/SearchDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;QACjD,YAAY;QACZ,YAAY,EAAE,WAAW,CAAC,OAAO;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAC5D,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO;IAEtE,OAAO,CACL,KAAC,MAAM,OACD,WAAW,EACf,IAAI,EAAE,KAAC,WAAW,IAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAE,IAAI,KAAM,gBAAgB,GAAI,YAE7E,KAAC,OAAO,IAAC,QAAQ,EAAE,WAAW,GAAI,GAC3B,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAClC,CAAC,QAAmC,EAAE,EAAE,CACxC,CAAC,YAA6C,EAAiB,EAAE,CAC/D,QAAQ,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM;IACtC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC;QACJ,KAAK,EAAE,kBAAkB,EAAE,GAAG,CAC5B,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAC3E;KACF,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;AAEX,OAAO;AACP,SAAS,gBAAgB,CAAC,QAAuB;IAC/C,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAC7D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACpB;AACH,CAAC"}
1
+ {"version":3,"file":"SearchDialog.js","sourceRoot":"","sources":["../../../src/ui-kit/SearchDialog/SearchDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACzD,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;QACjD,YAAY;QACZ,YAAY,EAAE,WAAW,CAAC,OAAO;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAC5D,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO;IAEtE,OAAO,CACL,KAAC,MAAM,OACD,WAAW,EACf,IAAI,EAAE,KAAC,WAAW,IAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAE,IAAI,KAAM,gBAAgB,GAAI,YAE7E,KAAC,OAAO,IAAC,QAAQ,EAAE,WAAW,GAAI,GAC3B,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAClC,CAAC,QAAwC,EAAE,EAAE,CAC7C,CAAC,YAA6C,EAAsB,EAAE,CACpE,QAAQ,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM;IACtC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC;QACJ,KAAK,EAAE,kBAAkB,EAAE,GAAG,CAC5B,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAC3E;KACF,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;AAEX,OAAO;AACP,SAAS,gBAAgB,CAAC,QAA4B;IACpD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAC7D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACpB;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
1
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
2
2
  export interface SitemapProps {
3
3
  className?: string;
4
- topItems?: TopMenuItem[];
4
+ topItems?: TopMenuItemProps[];
5
5
  }
6
6
  export declare const Sitemap: import("@redneckz/uni-jsx").UNIComponent<SitemapProps, any, any>;
@@ -3,9 +3,8 @@ import { JSX } from '@redneckz/uni-jsx';
3
3
  import { useLink } from '../../hooks/useLink.js';
4
4
  import { projectSettings } from '../../ProjectSettings.js';
5
5
  import { style } from '../../utils/style.js';
6
- import { joinPath } from '../../utils/url.js';
7
6
  export const Sitemap = JSX(({ className, topItems }) => {
8
- const link = useLink(true);
7
+ const link = useLink({ isRemote: true });
9
8
  return (_jsx("div", { className: style('flex items-start justify-between', className), children: topItems?.map(link).map(renderColumn) }));
10
9
  });
11
10
  const renderColumn = (menuItem, index) => {
@@ -14,8 +13,8 @@ const renderColumn = (menuItem, index) => {
14
13
  };
15
14
  const ColumnItem = JSX(({ text, index, basePath, ...rest }) => {
16
15
  const isAnotherPortal = projectSettings.BASE_PATH && basePath ? !projectSettings.BASE_PATH.startsWith(basePath) : false;
17
- const link = useLink(isAnotherPortal);
16
+ const link = useLink({ isRemote: isAnotherPortal });
18
17
  const { href, target, onClick } = link(rest);
19
- return (_jsx("a", { className: style('text-l-light text-secondary-text hover:text-primary-main no-underline', 'overflow-x-hidden overflow-ellipsis whitespace-nowrap'), href: isAnotherPortal ? joinPath(basePath, href) : href, target: target || '_self', onClick: onClick, children: text || `Раздел ${index}` }));
18
+ return (_jsx("a", { className: style('text-l-light text-secondary-text hover:text-primary-main no-underline', 'overflow-x-hidden overflow-ellipsis whitespace-nowrap'), href: href, target: target || '_self', onClick: onClick, children: text || `Раздел ${index}` }));
20
19
  });
21
20
  //# sourceMappingURL=Sitemap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sitemap.js","sourceRoot":"","sources":["../../../src/ui-kit/Sitemap/Sitemap.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO3C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,CACL,cAAK,SAAS,EAAE,KAAK,CAAC,kCAAkC,EAAE,SAAS,CAAC,YACjE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAClC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,QAA+C,EAAE,KAAa,EAAE,EAAE;IACtF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAExD,OAAO,CACL,eAAyB,SAAS,EAAC,6BAA6B,aAC9D,YACE,SAAS,EAAC,yEAAyE,EACnF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,IAAI,OAAO,EACzB,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,UAAU,KAAK,EAAE,GACxB,EACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,UAAU,OAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAA1C,MAAM,CAAC,CAAC,CAAC,CAAqC,CAChE,CAAC,KAXM,MAAM,CAAC,KAAK,CAAC,CAYjB,CACP,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,UAAU,GAAG,GAAG,CAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC7E,MAAM,eAAe,GACnB,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElG,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CACd,uEAAuE,EACvE,uDAAuD,CACxD,EACD,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACvD,MAAM,EAAE,MAAM,IAAI,OAAO,EACzB,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,UAAU,KAAK,EAAE,GACxB,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Sitemap.js","sourceRoot":"","sources":["../../../src/ui-kit/Sitemap/Sitemap.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,OAAO,CACL,cAAK,SAAS,EAAE,KAAK,CAAC,kCAAkC,EAAE,SAAS,CAAC,YACjE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAClC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,QAAoD,EAAE,KAAa,EAAE,EAAE;IAC3F,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAExD,OAAO,CACL,eAAyB,SAAS,EAAC,6BAA6B,aAC9D,YACE,SAAS,EAAC,yEAAyE,EACnF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,IAAI,OAAO,EACzB,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,UAAU,KAAK,EAAE,GACxB,EACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,UAAU,OAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAA1C,MAAM,CAAC,CAAC,CAAC,CAAqC,CAChE,CAAC,KAXM,MAAM,CAAC,KAAK,CAAC,CAYjB,CACP,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,UAAU,GAAG,GAAG,CAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC7E,MAAM,eAAe,GACnB,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElG,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CACd,uEAAuE,EACvE,uDAAuD,CACxD,EACD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,IAAI,OAAO,EACzB,OAAO,EAAE,OAAO,YAEf,IAAI,IAAI,UAAU,KAAK,EAAE,GACxB,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import { JSX } from '@redneckz/uni-jsx';
3
3
  import { useLink } from '../../hooks/useLink.js';
4
4
  import { style } from '../../utils/style.js';
5
5
  export const TopItem = JSX(({ className = '', active, flat, children, ...rest }) => {
6
- const link = useLink(true);
6
+ const link = useLink({ isRemote: true });
7
7
  const { href, target, text, onClick } = link(rest);
8
8
  return (_jsx("a", { className: style(getLinkStyle(active, flat), className), href: href, target: target, onClick: onClick, rel: "noopener noreferrer", "aria-label": text, children: _jsx("span", { className: getTextStyle(active, flat), children: text || children }) }));
9
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../../src/ui-kit/TopItem/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAC,qBAAqB,gBACb,IAAI,YAEhB,eAAM,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAG,IAAI,IAAI,QAAQ,GAAQ,GACpE,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,0EAA0E,EAC1E,MAAM;IACJ,CAAC,CAAC,oEAAoE;IACtE,CAAC,CAAC,oBAAoB,EACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CACxB,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,wBAAwB,EACxB,MAAM;IACJ,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,EACxF,mFAAmF,CACpF,CAAC"}
1
+ {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../../src/ui-kit/TopItem/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAC,qBAAqB,gBACb,IAAI,YAEhB,eAAM,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAG,IAAI,IAAI,QAAQ,GAAQ,GACpE,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,0EAA0E,EAC1E,MAAM;IACJ,CAAC,CAAC,oEAAoE;IACtE,CAAC,CAAC,oBAAoB,EACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CACxB,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,wBAAwB,EACxB,MAAM;IACJ,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,EACxF,mFAAmF,CACpF,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare const adjustHref: (router: {
2
2
  pathname: string;
3
- }) => (href: string | undefined) => string | undefined;
3
+ }) => (href: string | undefined, basePath?: string | undefined) => string | undefined;
@@ -1,11 +1,12 @@
1
1
  import { projectSettings } from '../ProjectSettings.js';
2
2
  import { dirname } from './dirname.js';
3
3
  import { isURL, joinPath } from './url.js';
4
- export const adjustHref = (router) => (href) => {
5
- if (!href || isURL(href) || (projectSettings.CDN && href.startsWith(projectSettings.CDN))) {
4
+ export const adjustHref = (router) => (href, basePath = projectSettings.BASE_PATH) => {
5
+ if (!href || isURL(href) || hasPrefix(href, projectSettings.CDN)) {
6
6
  return href;
7
7
  }
8
8
  const isRelativeToBase = href.startsWith('/');
9
- return joinPath(projectSettings.BASE_PATH, isRelativeToBase ? '/' : dirname(router.pathname), href);
9
+ return joinPath(hasPrefix(href, basePath) ? '' : basePath, isRelativeToBase ? '/' : dirname(router.pathname), href);
10
10
  };
11
+ const hasPrefix = (href, prefix) => prefix && href && href.startsWith(prefix);
11
12
  //# sourceMappingURL=adjustHref.js.map
@@ -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,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA4B,EAAE,EAAE,CAAC,CAAC,IAAwB,EAAE,EAAE;IACvF,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;QACzF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,QAAQ,CACb,eAAe,CAAC,SAAS,EACzB,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,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,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,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,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;QAChE,OAAO,IAAI,CAAC;KACb;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,IAAY,EAAE,MAA0B,EAAE,EAAE,CAC7D,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
@@ -112,4 +112,4 @@ const checkRowByParam = ({ row, userInputParams, paramKey, isExclude }: CheckRow
112
112
  isExclude || userInputParams[paramKey] === row[paramKey];
113
113
 
114
114
  const getMiddleMonth = (minMonths: number, maxMonths: number): number =>
115
- Math.round((maxMonths - minMonths) / 2);
115
+ minMonths + Math.round((maxMonths - minMonths) / 2);
@@ -10,7 +10,7 @@ interface TextInformationLinkProps extends LinkProps {
10
10
 
11
11
  export const TextInformationLink = JSX<Partial<TextInformationLinkProps>>(
12
12
  ({ className = '', index, ...rest }) => {
13
- const link = useLink();
13
+ const link = useLink({ isRemote: true });
14
14
  const { href, target, text, onClick } = link(rest);
15
15
 
16
16
  return (
@@ -10,13 +10,20 @@ interface Clickable {
10
10
  onClick(ev?: PreventableEvent): void;
11
11
  }
12
12
 
13
- export function useLink(isRemote = false) {
13
+ interface UseLinkParams {
14
+ isRemote?: boolean;
15
+ basePath?: string;
16
+ }
17
+
18
+ export function useLink(params: UseLinkParams = {}) {
19
+ const { isRemote, basePath } = params;
20
+
14
21
  const router = useRouter();
15
22
  const { close } = useDialog();
16
23
 
17
24
  return <L extends Partial<LinkProps & Clickable>>(props: L): L & Clickable => ({
18
25
  ...props,
19
- href: isRemote ? props.href : adjustHref(router)(props.href),
26
+ href: isRemote ? props.href : adjustHref(router)(props.href, basePath),
20
27
  'aria-label': props.text,
21
28
  onClick: handlerDecorator(handleHref(props), props),
22
29
  });
@@ -6,7 +6,7 @@ import type { IconProps, Picture } from '../../model/Picture';
6
6
  * @title Ссылка
7
7
  * @required ["text", "href"]
8
8
  */
9
- export interface TopMenuItem extends LinkProps {
9
+ export interface TopMenuItemProps extends LinkProps {
10
10
  /** @hidden */
11
11
  items?: LinkProps[];
12
12
  }
@@ -27,7 +27,7 @@ export interface DispositionItem extends LinkProps {
27
27
  export type ForeignOffice = LinkProps & IconProps;
28
28
 
29
29
  export interface SitemapData {
30
- topItems?: TopMenuItem[];
30
+ topItems?: TopMenuItemProps[];
31
31
  dispositions?: DispositionItem[];
32
32
  logo?: LogoType;
33
33
  foreignOffices?: ForeignOffice[];
@@ -2,7 +2,7 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useEffect, useMemo } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import type { LinkProps } from '../../model/LinkProps';
4
4
  import { useSearch, type SearchResult } from '../../services/search/useSearch';
5
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
5
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
6
6
  import { joinPath } from '../../utils/url';
7
7
  import { zip } from '../../utils/zip';
8
8
  import { Dialog } from '../Dialog/Dialog';
@@ -11,7 +11,7 @@ import { Sitemap } from '../Sitemap/Sitemap';
11
11
  import { SearchInput } from './SearchInput';
12
12
 
13
13
  export interface SearchDialogProps {
14
- topItems?: TopMenuItem[];
14
+ topItems?: TopMenuItemProps[];
15
15
  }
16
16
 
17
17
  export const SEARCH_DIALOG_ID = 'search';
@@ -44,8 +44,8 @@ export const SearchDialog = JSX<SearchDialogProps>(({ topItems }) => {
44
44
  });
45
45
 
46
46
  const combineTopItemsAndSearchResult =
47
- (topItems: TopMenuItem[] | undefined) =>
48
- (searchResult: SearchResult | null | undefined): TopMenuItem[] =>
47
+ (topItems: TopMenuItemProps[] | undefined) =>
48
+ (searchResult: SearchResult | null | undefined): TopMenuItemProps[] =>
49
49
  topItems?.length && searchResult?.length
50
50
  ? zip(topItems, searchResult).map(([_, portalSearchResult]) => ({
51
51
  ..._,
@@ -56,7 +56,7 @@ const combineTopItemsAndSearchResult =
56
56
  : [];
57
57
 
58
58
  // Temp
59
- function printSearchItems(topItems: TopMenuItem[]) {
59
+ function printSearchItems(topItems: TopMenuItemProps[]) {
60
60
  for (const _ of topItems.filter(({ items }) => items?.length)) {
61
61
  console.group(_.text);
62
62
  console.table(_.items, ['text', 'href']);
@@ -2,17 +2,16 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useLink } from '../../hooks/useLink';
3
3
  import type { LinkProps } from '../../model/LinkProps';
4
4
  import { projectSettings } from '../../ProjectSettings';
5
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
5
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
6
6
  import { style } from '../../utils/style';
7
- import { joinPath } from '../../utils/url';
8
7
 
9
8
  export interface SitemapProps {
10
9
  className?: string;
11
- topItems?: TopMenuItem[];
10
+ topItems?: TopMenuItemProps[];
12
11
  }
13
12
 
14
13
  export const Sitemap = JSX<SitemapProps>(({ className, topItems }) => {
15
- const link = useLink(true);
14
+ const link = useLink({ isRemote: true });
16
15
 
17
16
  return (
18
17
  <div className={style('flex items-start justify-between', className)}>
@@ -21,7 +20,7 @@ export const Sitemap = JSX<SitemapProps>(({ className, topItems }) => {
21
20
  );
22
21
  });
23
22
 
24
- const renderColumn = (menuItem: TopMenuItem & { onClick: () => void }, index: number) => {
23
+ const renderColumn = (menuItem: TopMenuItemProps & { onClick: () => void }, index: number) => {
25
24
  const { text, items, href, target, onClick } = menuItem;
26
25
 
27
26
  return (
@@ -50,7 +49,7 @@ const ColumnItem = JSX<ColumnItemProps>(({ text, index, basePath, ...rest }) =>
50
49
  const isAnotherPortal =
51
50
  projectSettings.BASE_PATH && basePath ? !projectSettings.BASE_PATH.startsWith(basePath) : false;
52
51
 
53
- const link = useLink(isAnotherPortal);
52
+ const link = useLink({ isRemote: isAnotherPortal });
54
53
  const { href, target, onClick } = link(rest);
55
54
 
56
55
  return (
@@ -59,7 +58,7 @@ const ColumnItem = JSX<ColumnItemProps>(({ text, index, basePath, ...rest }) =>
59
58
  'text-l-light text-secondary-text hover:text-primary-main no-underline',
60
59
  'overflow-x-hidden overflow-ellipsis whitespace-nowrap',
61
60
  )}
62
- href={isAnotherPortal ? joinPath(basePath, href) : href}
61
+ href={href}
63
62
  target={target || '_self'}
64
63
  onClick={onClick}
65
64
  >
@@ -15,7 +15,7 @@ export interface TopItemProps extends TopItemContent {
15
15
  }
16
16
 
17
17
  export const TopItem = JSX<TopItemProps>(({ className = '', active, flat, children, ...rest }) => {
18
- const link = useLink(true);
18
+ const link = useLink({ isRemote: true });
19
19
  const { href, target, text, onClick } = link(rest);
20
20
 
21
21
  return (
@@ -2,16 +2,21 @@ import { projectSettings } from '../ProjectSettings';
2
2
  import { dirname } from './dirname';
3
3
  import { isURL, joinPath } from './url';
4
4
 
5
- export const adjustHref = (router: { pathname: string }) => (href: string | undefined) => {
6
- if (!href || isURL(href) || (projectSettings.CDN && href.startsWith(projectSettings.CDN))) {
7
- return href;
8
- }
5
+ export const adjustHref =
6
+ (router: { pathname: string }) =>
7
+ (href: string | undefined, basePath = projectSettings.BASE_PATH) => {
8
+ if (!href || isURL(href) || hasPrefix(href, projectSettings.CDN)) {
9
+ return href;
10
+ }
9
11
 
10
- const isRelativeToBase = href.startsWith('/');
12
+ const isRelativeToBase = href.startsWith('/');
11
13
 
12
- return joinPath(
13
- projectSettings.BASE_PATH,
14
- isRelativeToBase ? '/' : dirname(router.pathname),
15
- href,
16
- );
17
- };
14
+ return joinPath(
15
+ hasPrefix(href, basePath) ? '' : basePath,
16
+ isRelativeToBase ? '/' : dirname(router.pathname),
17
+ href,
18
+ );
19
+ };
20
+
21
+ const hasPrefix = (href: string, prefix: string | undefined) =>
22
+ prefix && href && href.startsWith(prefix);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.9.15",
3
+ "version": "0.9.16",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -112,4 +112,4 @@ const checkRowByParam = ({ row, userInputParams, paramKey, isExclude }: CheckRow
112
112
  isExclude || userInputParams[paramKey] === row[paramKey];
113
113
 
114
114
  const getMiddleMonth = (minMonths: number, maxMonths: number): number =>
115
- Math.round((maxMonths - minMonths) / 2);
115
+ minMonths + Math.round((maxMonths - minMonths) / 2);
@@ -10,7 +10,7 @@ interface TextInformationLinkProps extends LinkProps {
10
10
 
11
11
  export const TextInformationLink = JSX<Partial<TextInformationLinkProps>>(
12
12
  ({ className = '', index, ...rest }) => {
13
- const link = useLink();
13
+ const link = useLink({ isRemote: true });
14
14
  const { href, target, text, onClick } = link(rest);
15
15
 
16
16
  return (
@@ -10,13 +10,20 @@ interface Clickable {
10
10
  onClick(ev?: PreventableEvent): void;
11
11
  }
12
12
 
13
- export function useLink(isRemote = false) {
13
+ interface UseLinkParams {
14
+ isRemote?: boolean;
15
+ basePath?: string;
16
+ }
17
+
18
+ export function useLink(params: UseLinkParams = {}) {
19
+ const { isRemote, basePath } = params;
20
+
14
21
  const router = useRouter();
15
22
  const { close } = useDialog();
16
23
 
17
24
  return <L extends Partial<LinkProps & Clickable>>(props: L): L & Clickable => ({
18
25
  ...props,
19
- href: isRemote ? props.href : adjustHref(router)(props.href),
26
+ href: isRemote ? props.href : adjustHref(router)(props.href, basePath),
20
27
  'aria-label': props.text,
21
28
  onClick: handlerDecorator(handleHref(props), props),
22
29
  });
@@ -6,7 +6,7 @@ import type { IconProps, Picture } from '../../model/Picture';
6
6
  * @title Ссылка
7
7
  * @required ["text", "href"]
8
8
  */
9
- export interface TopMenuItem extends LinkProps {
9
+ export interface TopMenuItemProps extends LinkProps {
10
10
  /** @hidden */
11
11
  items?: LinkProps[];
12
12
  }
@@ -27,7 +27,7 @@ export interface DispositionItem extends LinkProps {
27
27
  export type ForeignOffice = LinkProps & IconProps;
28
28
 
29
29
  export interface SitemapData {
30
- topItems?: TopMenuItem[];
30
+ topItems?: TopMenuItemProps[];
31
31
  dispositions?: DispositionItem[];
32
32
  logo?: LogoType;
33
33
  foreignOffices?: ForeignOffice[];
@@ -2,7 +2,7 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useEffect, useMemo } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import type { LinkProps } from '../../model/LinkProps';
4
4
  import { useSearch, type SearchResult } from '../../services/search/useSearch';
5
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
5
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
6
6
  import { joinPath } from '../../utils/url';
7
7
  import { zip } from '../../utils/zip';
8
8
  import { Dialog } from '../Dialog/Dialog';
@@ -11,7 +11,7 @@ import { Sitemap } from '../Sitemap/Sitemap';
11
11
  import { SearchInput } from './SearchInput';
12
12
 
13
13
  export interface SearchDialogProps {
14
- topItems?: TopMenuItem[];
14
+ topItems?: TopMenuItemProps[];
15
15
  }
16
16
 
17
17
  export const SEARCH_DIALOG_ID = 'search';
@@ -44,8 +44,8 @@ export const SearchDialog = JSX<SearchDialogProps>(({ topItems }) => {
44
44
  });
45
45
 
46
46
  const combineTopItemsAndSearchResult =
47
- (topItems: TopMenuItem[] | undefined) =>
48
- (searchResult: SearchResult | null | undefined): TopMenuItem[] =>
47
+ (topItems: TopMenuItemProps[] | undefined) =>
48
+ (searchResult: SearchResult | null | undefined): TopMenuItemProps[] =>
49
49
  topItems?.length && searchResult?.length
50
50
  ? zip(topItems, searchResult).map(([_, portalSearchResult]) => ({
51
51
  ..._,
@@ -56,7 +56,7 @@ const combineTopItemsAndSearchResult =
56
56
  : [];
57
57
 
58
58
  // Temp
59
- function printSearchItems(topItems: TopMenuItem[]) {
59
+ function printSearchItems(topItems: TopMenuItemProps[]) {
60
60
  for (const _ of topItems.filter(({ items }) => items?.length)) {
61
61
  console.group(_.text);
62
62
  console.table(_.items, ['text', 'href']);
@@ -2,17 +2,16 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useLink } from '../../hooks/useLink';
3
3
  import type { LinkProps } from '../../model/LinkProps';
4
4
  import { projectSettings } from '../../ProjectSettings';
5
- import type { TopMenuItem } from '../../services/sitemap/SitemapData';
5
+ import type { TopMenuItemProps } from '../../services/sitemap/SitemapData';
6
6
  import { style } from '../../utils/style';
7
- import { joinPath } from '../../utils/url';
8
7
 
9
8
  export interface SitemapProps {
10
9
  className?: string;
11
- topItems?: TopMenuItem[];
10
+ topItems?: TopMenuItemProps[];
12
11
  }
13
12
 
14
13
  export const Sitemap = JSX<SitemapProps>(({ className, topItems }) => {
15
- const link = useLink(true);
14
+ const link = useLink({ isRemote: true });
16
15
 
17
16
  return (
18
17
  <div className={style('flex items-start justify-between', className)}>
@@ -21,7 +20,7 @@ export const Sitemap = JSX<SitemapProps>(({ className, topItems }) => {
21
20
  );
22
21
  });
23
22
 
24
- const renderColumn = (menuItem: TopMenuItem & { onClick: () => void }, index: number) => {
23
+ const renderColumn = (menuItem: TopMenuItemProps & { onClick: () => void }, index: number) => {
25
24
  const { text, items, href, target, onClick } = menuItem;
26
25
 
27
26
  return (
@@ -50,7 +49,7 @@ const ColumnItem = JSX<ColumnItemProps>(({ text, index, basePath, ...rest }) =>
50
49
  const isAnotherPortal =
51
50
  projectSettings.BASE_PATH && basePath ? !projectSettings.BASE_PATH.startsWith(basePath) : false;
52
51
 
53
- const link = useLink(isAnotherPortal);
52
+ const link = useLink({ isRemote: isAnotherPortal });
54
53
  const { href, target, onClick } = link(rest);
55
54
 
56
55
  return (
@@ -59,7 +58,7 @@ const ColumnItem = JSX<ColumnItemProps>(({ text, index, basePath, ...rest }) =>
59
58
  'text-l-light text-secondary-text hover:text-primary-main no-underline',
60
59
  'overflow-x-hidden overflow-ellipsis whitespace-nowrap',
61
60
  )}
62
- href={isAnotherPortal ? joinPath(basePath, href) : href}
61
+ href={href}
63
62
  target={target || '_self'}
64
63
  onClick={onClick}
65
64
  >
@@ -15,7 +15,7 @@ export interface TopItemProps extends TopItemContent {
15
15
  }
16
16
 
17
17
  export const TopItem = JSX<TopItemProps>(({ className = '', active, flat, children, ...rest }) => {
18
- const link = useLink(true);
18
+ const link = useLink({ isRemote: true });
19
19
  const { href, target, text, onClick } = link(rest);
20
20
 
21
21
  return (
@@ -2,16 +2,21 @@ import { projectSettings } from '../ProjectSettings';
2
2
  import { dirname } from './dirname';
3
3
  import { isURL, joinPath } from './url';
4
4
 
5
- export const adjustHref = (router: { pathname: string }) => (href: string | undefined) => {
6
- if (!href || isURL(href) || (projectSettings.CDN && href.startsWith(projectSettings.CDN))) {
7
- return href;
8
- }
5
+ export const adjustHref =
6
+ (router: { pathname: string }) =>
7
+ (href: string | undefined, basePath = projectSettings.BASE_PATH) => {
8
+ if (!href || isURL(href) || hasPrefix(href, projectSettings.CDN)) {
9
+ return href;
10
+ }
9
11
 
10
- const isRelativeToBase = href.startsWith('/');
12
+ const isRelativeToBase = href.startsWith('/');
11
13
 
12
- return joinPath(
13
- projectSettings.BASE_PATH,
14
- isRelativeToBase ? '/' : dirname(router.pathname),
15
- href,
16
- );
17
- };
14
+ return joinPath(
15
+ hasPrefix(href, basePath) ? '' : basePath,
16
+ isRelativeToBase ? '/' : dirname(router.pathname),
17
+ href,
18
+ );
19
+ };
20
+
21
+ const hasPrefix = (href: string, prefix: string | undefined) =>
22
+ prefix && href && href.startsWith(prefix);