@redneckz/wildless-cms-uni-blocks 0.12.7 → 0.12.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/bin/migration-scripts/0.12.8.js +45 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +21 -11
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Header/HeaderContent.d.ts +1 -13
  6. package/bundle/components/Header/HeaderTop.d.ts +1 -3
  7. package/bundle/components/LinkDocs/LinkDocItem.d.ts +6 -0
  8. package/bundle/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  9. package/bundle/components/LinkDocs/linkIconStyle.d.ts +1 -0
  10. package/bundle/components/LinkDocs/linkIconStyle.mobile.d.ts +1 -0
  11. package/bundle/content-page-repository/transformDocument.d.ts +3 -0
  12. package/bundle/hooks/useRouter.d.ts +1 -0
  13. package/bundle/icons/IconName.d.ts +2 -2
  14. package/bundle/model/Attachment.d.ts +4 -0
  15. package/dist/components/Header/Header.mobile.js +2 -2
  16. package/dist/components/Header/Header.mobile.js.map +1 -1
  17. package/dist/components/Header/HeaderContent.d.ts +1 -13
  18. package/dist/components/Header/HeaderTop.d.ts +1 -3
  19. package/dist/components/Header/HeaderTop.js +10 -5
  20. package/dist/components/Header/HeaderTop.js.map +1 -1
  21. package/dist/components/LinkDocs/LinkDocItem.d.ts +6 -0
  22. package/dist/components/LinkDocs/LinkDocItem.js +20 -0
  23. package/dist/components/LinkDocs/LinkDocItem.js.map +1 -0
  24. package/dist/components/LinkDocs/LinkDocs.js +16 -4
  25. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  26. package/dist/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  27. package/dist/components/LinkDocs/linkDocsContentExample.js +20 -8
  28. package/dist/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  29. package/dist/components/LinkDocs/linkIconStyle.d.ts +1 -0
  30. package/dist/components/LinkDocs/linkIconStyle.js +4 -0
  31. package/dist/components/LinkDocs/linkIconStyle.js.map +1 -0
  32. package/dist/components/LinkDocs/linkIconStyle.mobile.d.ts +1 -0
  33. package/dist/components/LinkDocs/linkIconStyle.mobile.js +4 -0
  34. package/dist/components/LinkDocs/linkIconStyle.mobile.js.map +1 -0
  35. package/dist/content-page-repository/transformContentPage.js +15 -5
  36. package/dist/content-page-repository/transformContentPage.js.map +1 -1
  37. package/dist/content-page-repository/transformDocument.d.ts +3 -0
  38. package/{mobile/dist/content-page-repository/transformDocumentLink.js → dist/content-page-repository/transformDocument.js} +11 -11
  39. package/dist/content-page-repository/transformDocument.js.map +1 -0
  40. package/dist/hooks/useRouter.d.ts +1 -0
  41. package/dist/hooks/useRouter.js +3 -0
  42. package/dist/hooks/useRouter.js.map +1 -1
  43. package/dist/icons/IconName.d.ts +2 -2
  44. package/dist/icons/IconName.js +1 -1
  45. package/dist/icons/IconName.js.map +1 -1
  46. package/dist/model/Attachment.d.ts +4 -0
  47. package/dist/model/Attachment.js +2 -0
  48. package/dist/model/Attachment.js.map +1 -0
  49. package/dist/setup-fixture.js +4 -1
  50. package/dist/setup-fixture.js.map +1 -1
  51. package/dist/ui-kit/Logo/Logo.js +2 -3
  52. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  53. package/dist/ui-kit/TopItem/TopItem.js +1 -0
  54. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  55. package/lib/common.css +1 -1
  56. package/lib/components/Header/Header.fixture.mobile.d.ts +0 -2
  57. package/lib/components/Header/Header.mobile.js +2 -2
  58. package/lib/components/Header/Header.mobile.js.map +1 -1
  59. package/lib/components/Header/HeaderContent.d.ts +1 -13
  60. package/lib/components/Header/HeaderTop.d.ts +1 -3
  61. package/lib/components/Header/HeaderTop.js +10 -5
  62. package/lib/components/Header/HeaderTop.js.map +1 -1
  63. package/lib/components/LinkDocs/LinkDocItem.d.ts +6 -0
  64. package/{mobile/lib/components/LinkDocs/LinkDocsListItem.js → lib/components/LinkDocs/LinkDocItem.js} +2 -5
  65. package/lib/components/LinkDocs/LinkDocItem.js.map +1 -0
  66. package/lib/components/LinkDocs/LinkDocs.js +16 -4
  67. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  68. package/lib/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  69. package/lib/components/LinkDocs/linkDocsContentExample.js +20 -8
  70. package/lib/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  71. package/lib/components/LinkDocs/linkIconStyle.d.ts +1 -0
  72. package/lib/components/LinkDocs/linkIconStyle.js +2 -0
  73. package/lib/components/LinkDocs/linkIconStyle.js.map +1 -0
  74. package/lib/components/LinkDocs/linkIconStyle.mobile.d.ts +1 -0
  75. package/lib/components/LinkDocs/linkIconStyle.mobile.js +2 -0
  76. package/lib/components/LinkDocs/linkIconStyle.mobile.js.map +1 -0
  77. package/lib/content-page-repository/transformContentPage.js +15 -5
  78. package/lib/content-page-repository/transformContentPage.js.map +1 -1
  79. package/lib/content-page-repository/transformDocument.d.ts +3 -0
  80. package/{mobile/lib/content-page-repository/transformDocumentLink.js → lib/content-page-repository/transformDocument.js} +9 -9
  81. package/lib/content-page-repository/transformDocument.js.map +1 -0
  82. package/lib/hooks/useRouter.d.ts +1 -0
  83. package/lib/hooks/useRouter.js +3 -0
  84. package/lib/hooks/useRouter.js.map +1 -1
  85. package/lib/icons/IconName.d.ts +2 -2
  86. package/lib/icons/IconName.js +1 -1
  87. package/lib/icons/IconName.js.map +1 -1
  88. package/lib/model/Attachment.d.ts +4 -0
  89. package/lib/model/Attachment.js +2 -0
  90. package/lib/model/Attachment.js.map +1 -0
  91. package/lib/setup-fixture.js +4 -1
  92. package/lib/setup-fixture.js.map +1 -1
  93. package/lib/ui-kit/Logo/Logo.js +2 -3
  94. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  95. package/lib/ui-kit/TopItem/TopItem.js +1 -0
  96. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  97. package/mobile/bundle/bundle.umd.js +31 -13
  98. package/mobile/bundle/bundle.umd.min.js +1 -1
  99. package/mobile/bundle/components/Header/HeaderContent.d.ts +1 -13
  100. package/mobile/bundle/components/Header/HeaderTop.d.ts +1 -3
  101. package/mobile/bundle/components/LinkDocs/LinkDocItem.d.ts +6 -0
  102. package/mobile/bundle/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  103. package/mobile/bundle/components/LinkDocs/linkIconStyle.d.ts +1 -0
  104. package/mobile/bundle/content-page-repository/transformDocument.d.ts +3 -0
  105. package/mobile/bundle/hooks/useRouter.d.ts +1 -0
  106. package/mobile/bundle/icons/IconName.d.ts +2 -2
  107. package/mobile/bundle/model/Attachment.d.ts +4 -0
  108. package/mobile/dist/components/Header/Header.js +2 -2
  109. package/mobile/dist/components/Header/Header.js.map +1 -1
  110. package/mobile/dist/components/Header/HeaderContent.d.ts +1 -13
  111. package/mobile/dist/components/Header/HeaderTop.d.ts +1 -3
  112. package/mobile/dist/components/Header/HeaderTop.js +10 -5
  113. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  114. package/mobile/dist/components/LinkDocs/LinkDocItem.d.ts +6 -0
  115. package/mobile/dist/components/LinkDocs/LinkDocItem.js +20 -0
  116. package/mobile/dist/components/LinkDocs/LinkDocItem.js.map +1 -0
  117. package/mobile/dist/components/LinkDocs/LinkDocs.js +19 -2
  118. package/mobile/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  119. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  120. package/mobile/dist/components/LinkDocs/linkDocsContentExample.js +20 -8
  121. package/mobile/dist/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  122. package/mobile/dist/components/LinkDocs/linkIconStyle.d.ts +1 -0
  123. package/mobile/dist/components/LinkDocs/linkIconStyle.js +4 -0
  124. package/mobile/dist/components/LinkDocs/linkIconStyle.js.map +1 -0
  125. package/mobile/dist/content-page-repository/transformContentPage.js +15 -5
  126. package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -1
  127. package/mobile/dist/content-page-repository/transformDocument.d.ts +3 -0
  128. package/{dist/content-page-repository/transformDocumentLink.js → mobile/dist/content-page-repository/transformDocument.js} +11 -11
  129. package/mobile/dist/content-page-repository/transformDocument.js.map +1 -0
  130. package/mobile/dist/hooks/useRouter.d.ts +1 -0
  131. package/mobile/dist/hooks/useRouter.js +3 -0
  132. package/mobile/dist/hooks/useRouter.js.map +1 -1
  133. package/mobile/dist/icons/IconName.d.ts +2 -2
  134. package/mobile/dist/icons/IconName.js +1 -1
  135. package/mobile/dist/icons/IconName.js.map +1 -1
  136. package/mobile/dist/model/Attachment.d.ts +4 -0
  137. package/mobile/dist/model/Attachment.js +2 -0
  138. package/mobile/dist/model/Attachment.js.map +1 -0
  139. package/mobile/dist/setup-fixture.js +4 -1
  140. package/mobile/dist/setup-fixture.js.map +1 -1
  141. package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -0
  142. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  143. package/mobile/lib/common.css +1 -1
  144. package/mobile/lib/components/Header/Header.js +2 -2
  145. package/mobile/lib/components/Header/Header.js.map +1 -1
  146. package/mobile/lib/components/Header/HeaderContent.d.ts +1 -13
  147. package/mobile/lib/components/Header/HeaderTop.d.ts +1 -3
  148. package/mobile/lib/components/Header/HeaderTop.js +10 -5
  149. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  150. package/mobile/lib/components/LinkDocs/LinkDocItem.d.ts +6 -0
  151. package/{lib/components/LinkDocs/LinkDocsListItem.js → mobile/lib/components/LinkDocs/LinkDocItem.js} +2 -5
  152. package/mobile/lib/components/LinkDocs/LinkDocItem.js.map +1 -0
  153. package/mobile/lib/components/LinkDocs/LinkDocs.js +19 -2
  154. package/mobile/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  155. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +30 -6
  156. package/mobile/lib/components/LinkDocs/linkDocsContentExample.js +20 -8
  157. package/mobile/lib/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  158. package/mobile/lib/components/LinkDocs/linkIconStyle.d.ts +1 -0
  159. package/mobile/lib/components/LinkDocs/linkIconStyle.js +2 -0
  160. package/mobile/lib/components/LinkDocs/linkIconStyle.js.map +1 -0
  161. package/mobile/lib/content-page-repository/transformContentPage.js +15 -5
  162. package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -1
  163. package/mobile/lib/content-page-repository/transformDocument.d.ts +3 -0
  164. package/{lib/content-page-repository/transformDocumentLink.js → mobile/lib/content-page-repository/transformDocument.js} +9 -9
  165. package/mobile/lib/content-page-repository/transformDocument.js.map +1 -0
  166. package/mobile/lib/hooks/useRouter.d.ts +1 -0
  167. package/mobile/lib/hooks/useRouter.js +3 -0
  168. package/mobile/lib/hooks/useRouter.js.map +1 -1
  169. package/mobile/lib/icons/IconName.d.ts +2 -2
  170. package/mobile/lib/icons/IconName.js +1 -1
  171. package/mobile/lib/icons/IconName.js.map +1 -1
  172. package/mobile/lib/model/Attachment.d.ts +4 -0
  173. package/mobile/lib/model/Attachment.js +2 -0
  174. package/mobile/lib/model/Attachment.js.map +1 -0
  175. package/mobile/lib/setup-fixture.js +4 -1
  176. package/mobile/lib/setup-fixture.js.map +1 -1
  177. package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -0
  178. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  179. package/mobile/src/components/Header/Header.tsx +1 -7
  180. package/mobile/src/components/Header/HeaderContent.ts +1 -15
  181. package/mobile/src/components/Header/HeaderTop.tsx +41 -50
  182. package/mobile/src/components/LinkDocs/LinkDocItem.tsx +44 -0
  183. package/mobile/src/components/LinkDocs/LinkDocs.example.json +4 -0
  184. package/mobile/src/components/LinkDocs/LinkDocs.tsx +65 -36
  185. package/mobile/src/components/LinkDocs/LinkDocs.ui.json +8 -1
  186. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +34 -6
  187. package/mobile/src/components/LinkDocs/linkDocsContentExample.ts +20 -8
  188. package/mobile/src/components/LinkDocs/linkIconStyle.ts +1 -0
  189. package/mobile/src/content-page-repository/transformContentPage.ts +17 -7
  190. package/{src/content-page-repository/transformDocumentLink.ts → mobile/src/content-page-repository/transformDocument.ts} +11 -11
  191. package/mobile/src/hooks/useRouter.ts +4 -0
  192. package/mobile/src/icons/ChevronLeft.svg +1 -1
  193. package/mobile/src/icons/IconName.ts +2 -2
  194. package/mobile/src/model/Attachment.ts +4 -0
  195. package/mobile/src/setup-fixture.ts +4 -1
  196. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -0
  197. package/package.json +1 -1
  198. package/src/components/Header/Header.fixture.mobile.tsx +0 -5
  199. package/src/components/Header/Header.mobile.tsx +1 -7
  200. package/src/components/Header/HeaderContent.ts +1 -15
  201. package/src/components/Header/HeaderTop.tsx +41 -50
  202. package/src/components/HorizontalLayout/HorizontalLayout.fixture.tsx +3 -3
  203. package/src/components/LinkDocs/LinkDocItem.tsx +44 -0
  204. package/src/components/LinkDocs/LinkDocs.example.json +4 -0
  205. package/src/components/LinkDocs/LinkDocs.tsx +58 -36
  206. package/src/components/LinkDocs/LinkDocs.ui.json +8 -1
  207. package/src/components/LinkDocs/LinkDocsContent.ts +34 -6
  208. package/src/components/LinkDocs/linkDocsContentExample.ts +20 -8
  209. package/src/components/LinkDocs/linkIconStyle.mobile.ts +1 -0
  210. package/src/components/LinkDocs/linkIconStyle.ts +1 -0
  211. package/src/components/VerticalLayout/VerticalLayout.fixture.mobile.tsx +4 -4
  212. package/src/components/VerticalLayout/VerticalLayout.fixture.tsx +3 -3
  213. package/src/content-page-repository/transformContentPage.ts +17 -7
  214. package/{mobile/src/content-page-repository/transformDocumentLink.ts → src/content-page-repository/transformDocument.ts} +11 -11
  215. package/src/hooks/useRouter.ts +4 -0
  216. package/src/icons/ChevronLeft.svg +1 -1
  217. package/src/icons/IconName.ts +386 -6
  218. package/src/model/Attachment.ts +4 -0
  219. package/src/setup-fixture.ts +4 -1
  220. package/src/ui-kit/Logo/Logo.tsx +13 -14
  221. package/src/ui-kit/TopItem/TopItem.tsx +1 -0
  222. package/tailwind.config.cjs +1 -1
  223. package/bundle/components/LinkDocs/LinkDocs.mobile.d.ts +0 -5
  224. package/bundle/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  225. package/bundle/content-page-repository/transformDocumentLink.d.ts +0 -3
  226. package/dist/components/LinkDocs/LinkDocs.mobile.d.ts +0 -5
  227. package/dist/components/LinkDocs/LinkDocs.mobile.js +0 -10
  228. package/dist/components/LinkDocs/LinkDocs.mobile.js.map +0 -1
  229. package/dist/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  230. package/dist/components/LinkDocs/LinkDocsListItem.js +0 -23
  231. package/dist/components/LinkDocs/LinkDocsListItem.js.map +0 -1
  232. package/dist/content-page-repository/transformDocumentLink.d.ts +0 -3
  233. package/dist/content-page-repository/transformDocumentLink.js.map +0 -1
  234. package/lib/components/LinkDocs/LinkDocs.mobile.d.ts +0 -5
  235. package/lib/components/LinkDocs/LinkDocs.mobile.js +0 -8
  236. package/lib/components/LinkDocs/LinkDocs.mobile.js.map +0 -1
  237. package/lib/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  238. package/lib/components/LinkDocs/LinkDocsListItem.js.map +0 -1
  239. package/lib/content-page-repository/transformDocumentLink.d.ts +0 -3
  240. package/lib/content-page-repository/transformDocumentLink.js.map +0 -1
  241. package/mobile/bundle/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  242. package/mobile/bundle/content-page-repository/transformDocumentLink.d.ts +0 -3
  243. package/mobile/dist/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  244. package/mobile/dist/components/LinkDocs/LinkDocsListItem.js +0 -23
  245. package/mobile/dist/components/LinkDocs/LinkDocsListItem.js.map +0 -1
  246. package/mobile/dist/content-page-repository/transformDocumentLink.d.ts +0 -3
  247. package/mobile/dist/content-page-repository/transformDocumentLink.js.map +0 -1
  248. package/mobile/lib/components/LinkDocs/LinkDocsListItem.d.ts +0 -7
  249. package/mobile/lib/components/LinkDocs/LinkDocsListItem.js.map +0 -1
  250. package/mobile/lib/content-page-repository/transformDocumentLink.d.ts +0 -3
  251. package/mobile/lib/content-page-repository/transformDocumentLink.js.map +0 -1
  252. package/mobile/src/components/LinkDocs/LinkDocsListItem.tsx +0 -49
  253. package/src/components/LinkDocs/LinkDocs.mobile.tsx +0 -52
  254. package/src/components/LinkDocs/LinkDocsListItem.tsx +0 -49
@@ -1,12 +1,12 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import util from 'util';
4
+ import { Attachment } from '../model/Attachment';
4
5
  import type { ContentPageDef } from '../model/ContentPageDef';
5
- import { LinkProps } from '../model/LinkProps';
6
6
  import type { Picture } from '../model/Picture';
7
7
  import { mapJSON } from './mapJSON';
8
8
  import type { TransformationOptions } from './TransformationOptions';
9
- import { transformDocumentLink } from './transformDocumentLink';
9
+ import { transformDocument } from './transformDocument';
10
10
  import { transformHTML } from './transformHTML';
11
11
  import { transformMarkdown } from './transformMarkdown';
12
12
  import { transformPicture } from './transformPicture';
@@ -16,7 +16,17 @@ const writeFile = util.promisify(fs.writeFile);
16
16
 
17
17
  const OUTPUT_SUFFIX = '.static';
18
18
 
19
- const DOCUMENT_EXT_LIST = ['.txt', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf'];
19
+ const DOCUMENT_EXT_LIST = [
20
+ '.txt',
21
+ '.doc',
22
+ '.docx',
23
+ '.xls',
24
+ '.xlsx',
25
+ '.xlsb',
26
+ '.ppt',
27
+ '.pptx',
28
+ '.pdf',
29
+ ];
20
30
 
21
31
  export async function transformContentPage(
22
32
  pagePath: string,
@@ -31,8 +41,8 @@ export async function transformContentPage(
31
41
  return await transformMarkdown(value as string);
32
42
  } else if (isHTML(key, value)) {
33
43
  return await transformHTML(value as string);
34
- } else if (isDocumentLink(value)) {
35
- return await transformDocumentLink(value, pagePath, options);
44
+ } else if (isDocument(value)) {
45
+ return await transformDocument(value, pagePath, options);
36
46
  } else if (isPicture(value)) {
37
47
  return await transformPicture(value, pagePath, options);
38
48
  }
@@ -55,8 +65,8 @@ const isMarkdown = (key: string, value: any): value is string =>
55
65
  isString(value) && key?.endsWith('__md');
56
66
  const isHTML = (key: string, value: any): value is string =>
57
67
  isString(value) && key?.endsWith('__html');
58
- const isDocumentLink = (_: any): _ is LinkProps =>
59
- Boolean(_ && isLocalPath(_?.href) && isDocumentExt(path.extname(_?.href as string)));
68
+ const isDocument = (_: any): _ is Attachment =>
69
+ Boolean(_ && isLocalPath(_?.src) && isDocumentExt(path.extname(_?.src as string)));
60
70
  const isDocumentExt = (input: string) =>
61
71
  DOCUMENT_EXT_LIST.some((ext) => input.toLowerCase().endsWith(ext));
62
72
  const isPicture = (_: any): _ is Picture => Boolean(_ && isLocalPath(_?.src));
@@ -1,22 +1,22 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import util from 'util';
4
- import type { LinkProps } from '../model/LinkProps';
4
+ import { Attachment } from '../model/Attachment';
5
5
  import type { TransformationOptions } from './TransformationOptions';
6
6
 
7
7
  const copyFile = util.promisify(fs.copyFile);
8
8
 
9
- export async function transformDocumentLink(
10
- link: LinkProps,
9
+ export async function transformDocument(
10
+ attachment: Attachment,
11
11
  pagePath: string,
12
12
  options: TransformationOptions,
13
- ): Promise<LinkProps> {
14
- if (!link?.href) {
15
- return link;
13
+ ): Promise<Attachment> {
14
+ if (!attachment?.src) {
15
+ return attachment;
16
16
  }
17
17
 
18
18
  const { contentDir, publicDir } = options;
19
- const input = path.join(path.dirname(pagePath), link.href);
19
+ const input = path.join(path.dirname(pagePath), attachment.src);
20
20
  const docRelativePath = path.relative(contentDir, input);
21
21
  const output = path.join(publicDir, docRelativePath);
22
22
 
@@ -25,13 +25,13 @@ export async function transformDocumentLink(
25
25
  } catch (e) {
26
26
  console.info(`No "${input}" attachment found on page: "${pagePath}"`);
27
27
 
28
- return link;
28
+ return attachment;
29
29
  }
30
30
 
31
- const href = path.join('/', docRelativePath);
31
+ const src = path.join('/', docRelativePath);
32
32
 
33
33
  return {
34
- ...link,
35
- href,
34
+ ...attachment,
35
+ src,
36
36
  };
37
37
  }
@@ -9,6 +9,7 @@ export interface Router {
9
9
  basePath?: string;
10
10
  push: (url: string, as?: string, options?: RouterOptions) => void;
11
11
  replace: (url: string, as?: string, options?: RouterOptions) => void;
12
+ back: () => void;
12
13
  }
13
14
 
14
15
  export function useRouter(): Router {
@@ -25,6 +26,9 @@ useRouter._impl = (): Router => ({
25
26
  replace: () => {
26
27
  // Do nothing
27
28
  },
29
+ back: () => {
30
+ // Do nothing
31
+ },
28
32
  });
29
33
 
30
34
  useRouter.setup = (impl: () => Router) => {
@@ -1,3 +1,3 @@
1
- <svg title="Стрелка 'Вправо'" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1
+ <svg title="Стрелка 'Влево'" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
2
  <path d="M14.7071 6.29289C15.0976 6.68342 15.0976 7.31658 14.7071 7.70711L10.4142 12L14.7071 16.2929C15.0976 16.6834 15.0976 17.3166 14.7071 17.7071C14.3166 18.0976 13.6834 18.0976 13.2929 17.7071L8.29289 12.7071C7.90237 12.3166 7.90237 11.6834 8.29289 11.2929L13.2929 6.29289C13.6834 5.90237 14.3166 5.90237 14.7071 6.29289Z" fill="currentColor"/>
3
3
  </svg>
@@ -11,7 +11,7 @@ export enum IconMap {
11
11
  }
12
12
 
13
13
  export enum IconTitleMap {
14
- ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', AtmIcon = 'Банкомат', BagIcon = 'Сумка', BankIcon = 'Банк', BelarusianFlag = 'Белорусский флаг', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', ChevronLeft = 'Стрелка \'Вправо\'', CinemaIcon = 'Кинотеатр', ClientIcon = 'Клиент', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MailIcon = 'E-mail', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PhoneIcon = 'Телефон', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', ResponceFailIcon = 'Ошибка', ResponceOKIcon = 'Ок', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
14
+ ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', AtmIcon = 'Банкомат', BagIcon = 'Сумка', BankIcon = 'Банк', BelarusianFlag = 'Белорусский флаг', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', ChevronLeft = 'Стрелка \'Влево\'', CinemaIcon = 'Кинотеатр', ClientIcon = 'Клиент', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MailIcon = 'E-mail', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PhoneIcon = 'Телефон', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', ResponceFailIcon = 'Ошибка', ResponceOKIcon = 'Ок', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
15
15
  }
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ export enum IconTitleMap {
19
19
  * @title Иконка
20
20
  * @enumNames [
21
21
  * "",
22
- * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Сумка', 'Банк', 'Белорусский флаг', 'BriefcaseIcon', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Стрелка \'Вправо\'', 'Кинотеатр', 'Клиент', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Телефон', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
22
+ * 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Сумка', 'Банк', 'Белорусский флаг', 'BriefcaseIcon', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Стрелка \'Влево\'', 'Кинотеатр', 'Клиент', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Телефон', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
23
23
  * ]
24
24
  */
25
25
  export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BagIcon' | 'BankIcon' | 'BelarusianFlag' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'ChevronLeft' | 'CinemaIcon' | 'ClientIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'ResponceFailIcon' | 'ResponceOKIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
@@ -0,0 +1,4 @@
1
+ export interface Attachment {
2
+ /** @title */
3
+ src?: string;
4
+ }
@@ -10,7 +10,7 @@ projectSettings.setup(wlc);
10
10
 
11
11
  useRouter.setup(() => {
12
12
  const [href, setHref] = useState<string>(
13
- joinPath(globalThis.location.origin, projectSettings.BASE_PATH, 'cards-credit'),
13
+ joinPath(globalThis.location.origin, projectSettings.BASE_PATH, ''),
14
14
  );
15
15
 
16
16
  useEffect(() => {
@@ -37,6 +37,9 @@ useRouter.setup(() => {
37
37
  replace: (url: string) => {
38
38
  globalThis.history.replaceState(null, '', url);
39
39
  },
40
+ back: () => {
41
+ globalThis.history.back();
42
+ },
40
43
  };
41
44
  });
42
45
 
@@ -16,6 +16,7 @@ export interface TopItemProps extends TopItemContent {
16
16
 
17
17
  export const TopItem = JSX<TopItemProps>(({ className = '', active, flat, children, ...rest }) => {
18
18
  const link = useLink({ isRemote: true });
19
+ console.log('link', link);
19
20
  const { href, target, text, onClick } = link(rest);
20
21
 
21
22
  return (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.12.7",
3
+ "version": "0.12.8",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -1,12 +1,7 @@
1
1
  import '../../setup-fixture';
2
-
3
2
  import { Header } from './Header.mobile';
4
3
 
5
4
  export default {
6
5
  default: <Header />,
7
6
  transparent: <Header bgColor="transparent" />,
8
- withTitle: <Header mobileHeaderType="withTitle" mobileTitle="Все кредитные карты" />,
9
- backButton: (
10
- <Header mobileHeaderType="backwardButton" mobileBackwardButtonTitle="Кредитные карты" />
11
- ),
12
7
  };
@@ -18,12 +18,7 @@ const BG_COLOR_TO_BLOCK_VERSION: Record<BgColorVersion, BlockVersion> = {
18
18
  };
19
19
 
20
20
  export const Header = JSX<HeaderMobileProps>(
21
- ({
22
- bgColor = 'bg-white',
23
- version = BG_COLOR_TO_BLOCK_VERSION[bgColor],
24
- mobileHeaderType = 'none',
25
- ...rest
26
- }) => {
21
+ ({ bgColor = 'bg-white', version = BG_COLOR_TO_BLOCK_VERSION[bgColor], ...rest }) => {
27
22
  const fallback: Fallback | undefined = rest.options?.page?.fallback;
28
23
  const { logo, internetBankUrl } = useSWRResource<SitemapData>(
29
24
  projectSettings.SITEMAP || 'sitemap',
@@ -38,7 +33,6 @@ export const Header = JSX<HeaderMobileProps>(
38
33
  logo={logo}
39
34
  internetBankUrl={internetBankUrl}
40
35
  version={version}
41
- mobileHeaderType={mobileHeaderType}
42
36
  {...rest}
43
37
  />
44
38
  </div>
@@ -25,24 +25,10 @@ export type Logo = ImageContent & {
25
25
  title?: string;
26
26
  };
27
27
 
28
- /**
29
- * @title Мобильный тип шапки
30
- * @enumNames ["Не выбрано", "Название", "Кнопка возврата"]
31
- */
32
- export type MobileHeaderType = 'none' | 'withTitle' | 'backwardButton';
33
-
34
- export interface MobileHeaderProps {
35
- mobileHeaderType?: MobileHeaderType;
36
- /** @title Название (мобильная версия) */
37
- mobileTitle?: string;
38
- /** @title Кнопка возврата (мобильная версия) */
39
- mobileBackwardButtonTitle?: string;
40
- }
41
-
42
28
  /**
43
29
  * @title Шапка (для мобильных горизонтальная прокрутка shift+mouseScroll)
44
30
  */
45
- export interface HeaderContent extends MobileHeaderProps {
31
+ export interface HeaderContent {
46
32
  /** @hidden */
47
33
  showSubMenu?: boolean;
48
34
  /** @hidden */
@@ -5,15 +5,15 @@ import { Logo } from '../../ui-kit/Logo/Logo';
5
5
  import { Button } from '../../ui-kit/Button/Button';
6
6
  import { style } from '../../utils/style';
7
7
  import type { BlockVersion } from '../../model/BlockVersion';
8
- import type { MobileHeaderProps, MobileHeaderType } from './HeaderContent';
9
8
  import { Img } from '../../ui-kit/Img/Img';
9
+ import { useRouter } from '../../hooks/useRouter';
10
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
10
11
 
11
- export interface HeaderTopProps extends MobileHeaderProps {
12
+ export interface HeaderTopProps {
12
13
  bgColor?: BgColorVersion;
13
14
  logo?: LogoType;
14
15
  internetBankUrl?: string;
15
16
  version?: BlockVersion;
16
- mobileHeaderType?: MobileHeaderType;
17
17
  }
18
18
 
19
19
  const BUTTON_STYLE = {
@@ -21,51 +21,42 @@ const BUTTON_STYLE = {
21
21
  transparent: 'text-white hover:text-primary-hover',
22
22
  };
23
23
 
24
- export const HeaderTop = JSX<HeaderTopProps>(
25
- ({
26
- bgColor,
27
- logo,
28
- internetBankUrl,
29
- version,
30
- mobileHeaderType,
31
- mobileTitle,
32
- mobileBackwardButtonTitle,
33
- }) => {
34
- const isTypeNone = mobileHeaderType === 'none';
35
- const isTypeWithTitle = mobileHeaderType === 'withTitle';
24
+ export const HeaderTop = JSX<HeaderTopProps>(({ bgColor, logo, internetBankUrl, version }) => {
25
+ const router = useRouter();
26
+ const isRootLocation = router.pathname === '/';
27
+ const onClick = useCallback(() => {
28
+ router.back();
29
+ }, []);
36
30
 
37
- return (
38
- <div className="flex items-center justify-between w-full">
39
- {isTypeNone || isTypeWithTitle ? (
40
- <Logo bgColor={bgColor} logo={logo} showTitle={isTypeNone} />
41
- ) : null}
42
- {isTypeWithTitle ? mobileTitle : null}
43
- {mobileHeaderType === 'backwardButton' ? (
44
- <Button className="flex items-center text-l">
45
- <Img
46
- className="w-6 h-6"
47
- image={{
48
- icon: 'ChevronLeft',
49
- iconVersion: 'black',
50
- }}
51
- />
52
- {mobileBackwardButtonTitle}
53
- </Button>
54
- ) : null}
55
- {internetBankUrl ? (
56
- <Button
57
- href={internetBankUrl}
58
- ariaLabel="Войти"
59
- target="_blank"
60
- className={style(
61
- 'p-3 my-1 text-s whitespace-nowrap text-primary-main hover:text-primary-hover',
62
- BUTTON_STYLE[version === 'transparent' ? 'transparent' : 'default'],
63
- )}
64
- >
65
- Войти
66
- </Button>
67
- ) : null}
68
- </div>
69
- );
70
- },
71
- );
31
+ return (
32
+ <div className="flex items-center justify-between w-full">
33
+ {isRootLocation ? (
34
+ <Logo bgColor={bgColor} logo={logo} />
35
+ ) : (
36
+ <Button className="flex items-center text-l" ariaLabel="Вернуться назад" onClick={onClick}>
37
+ <Img
38
+ className="w-6 h-6"
39
+ image={{
40
+ icon: 'ChevronLeft',
41
+ iconVersion: 'black',
42
+ }}
43
+ />
44
+ Вернуться назад
45
+ </Button>
46
+ )}
47
+ {internetBankUrl ? (
48
+ <Button
49
+ href={internetBankUrl}
50
+ ariaLabel="Войти"
51
+ target="_blank"
52
+ className={style(
53
+ 'p-3 my-1 text-s whitespace-nowrap text-primary-main hover:text-primary-hover',
54
+ BUTTON_STYLE[version === 'transparent' ? 'transparent' : 'default'],
55
+ )}
56
+ >
57
+ Войти
58
+ </Button>
59
+ ) : null}
60
+ </div>
61
+ );
62
+ });
@@ -9,9 +9,9 @@ import { HorizontalLayout } from './HorizontalLayout';
9
9
  export const linkDocsExample: LinkDocsContent = {
10
10
  description: 'Ответы на часто задаваемые вопросы',
11
11
  documents: [
12
- { text: 'target self', href: '/abc1/cooldoc.doc', target: '_self' },
13
- { text: 'target blank', href: '/abc2/wtf.rtf', target: '_blank' },
14
- { text: 'GlassIcon', href: '/abc3/map.jpeg' },
12
+ { docType: 'Link', text: 'target self', href: '/abc1/cooldoc.doc', target: '_self' },
13
+ { docType: 'Link', text: 'target blank', href: '/abc2/wtf.rtf', target: '_blank' },
14
+ { docType: 'Link', text: 'GlassIcon', href: '/abc3/map.jpeg' },
15
15
  ],
16
16
  };
17
17
 
@@ -0,0 +1,44 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { VNode } from '../../model/VNode';
3
+ import { Text } from '../../ui-kit/Text/Text';
4
+ import type { LinkDoc } from './LinkDocsContent';
5
+
6
+ export interface LinkDocItemProps extends LinkDoc {
7
+ icon?: VNode;
8
+ }
9
+
10
+ export const LinkDocItem = JSX<LinkDocItemProps>(({ icon, text, fileSize, ...linkProps }) => (
11
+ <a
12
+ className="flex box-border gap-3 group/item h-fit w-fit text-primary-text no-underline hover:text-primary-main"
13
+ role="link"
14
+ {...linkProps}
15
+ >
16
+ {icon}
17
+ {text ? (
18
+ <Text size="text-l" font="font-light">
19
+ {text}
20
+ <Text color="text-secondary-text">
21
+ {linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize)}
22
+ </Text>
23
+ </Text>
24
+ ) : null}
25
+ </a>
26
+ ));
27
+
28
+ const formatSuffix = (ext?: string, fileSize?: string) => {
29
+ const prefix = ext || fileSize ? ',' : '';
30
+ const extension = ext ? ` ${ext}` : '';
31
+ const size = fileSize ? ` (${fileSize})` : '';
32
+
33
+ return prefix + extension + size;
34
+ };
35
+
36
+ const getExtFromHref = (href: string) => {
37
+ if (!href) {
38
+ return '';
39
+ }
40
+
41
+ const index = href.lastIndexOf('.');
42
+
43
+ return index !== -1 ? href.substring(index + 1) : '';
44
+ };
@@ -14,21 +14,25 @@
14
14
  },
15
15
  "documents": [
16
16
  {
17
+ "docType": "Link",
17
18
  "text": "Документ №1",
18
19
  "href": "/documents/document1.doc",
19
20
  "fileSize": "123КБ"
20
21
  },
21
22
  {
23
+ "docType": "Link",
22
24
  "text": "Документ №2",
23
25
  "href": "/documents/document2.rtf",
24
26
  "target": "_blank"
25
27
  },
26
28
  {
29
+ "docType": "Link",
27
30
  "text": "Документ №3",
28
31
  "href": "/abc3/map.jpeg",
29
32
  "fileSize": "2МБ"
30
33
  },
31
34
  {
35
+ "docType": "Link",
32
36
  "text": "Документ №4",
33
37
  "href": "/abc/map.rar"
34
38
  }
@@ -1,15 +1,19 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { Router, useRouter } from '../../hooks/useRouter';
2
3
  import type { UniBlockProps } from '../../model/JSXBlock';
4
+ import type { Picture } from '../../model/Picture';
3
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
6
  import { Img } from '../../ui-kit/Img/Img';
7
+ import { adjustHref } from '../../utils/adjustHref';
5
8
  import { style } from '../../utils/style';
6
9
  import { Headline } from '../Headline/Headline';
7
- import type { LinkColumnsMode, LinkDocsContent } from './LinkDocsContent';
8
- import { LinkDocsListItem } from './LinkDocsListItem';
10
+ import { LinkDocItem } from './LinkDocItem';
11
+ import type { DocBlockDef, LinkColumnsMode, LinkDocsContent } from './LinkDocsContent';
12
+ import { linkIconStyle } from './linkIconStyle';
9
13
 
10
14
  const linkColumnsModeStyleMap: Record<LinkColumnsMode, string> = {
11
- double: 'flex-wrap',
12
- single: 'flex-col',
15
+ double: 'sm:flex-wrap sm:flex-row',
16
+ single: 'sm:flex-col',
13
17
  };
14
18
 
15
19
  export interface LinkDocsProps extends LinkDocsContent, UniBlockProps {}
@@ -24,36 +28,54 @@ export const LinkDocs = JSX<LinkDocsProps>(
24
28
  icon = { icon: 'DocIcon' },
25
29
  columnsMode = 'double',
26
30
  ...rest
27
- }) => (
28
- <BlockWrapper className={className} defaultPadding="p-default" {...rest}>
29
- <Headline
30
- className="!p-0"
31
- title={title}
32
- description={description}
33
- align={align}
34
- headlineVersion="M"
35
- as="h2"
36
- />
37
- {documents?.length ? (
38
- <div className={style('mt-8 flex gap-6', linkColumnsModeStyleMap[columnsMode])} role="list">
39
- {documents.map((doc, i) => (
40
- <div
41
- key={String(i)}
42
- className={columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}
43
- role="listitem"
44
- >
45
- <LinkDocsListItem
46
- doc={doc}
47
- icon={
48
- icon ? (
49
- <Img className="min-w-6 min-h-6" image={icon} width="24" height="24" />
50
- ) : null
51
- }
52
- ></LinkDocsListItem>
53
- </div>
54
- ))}
55
- </div>
56
- ) : null}
57
- </BlockWrapper>
58
- ),
31
+ }) => {
32
+ const router = useRouter();
33
+
34
+ return (
35
+ <BlockWrapper className={className} defaultPadding="p-default" {...rest}>
36
+ <Headline
37
+ className="!p-0"
38
+ title={title}
39
+ description={description}
40
+ align={align}
41
+ headlineVersion="M"
42
+ as="h2"
43
+ />
44
+ {documents?.length ? (
45
+ <div
46
+ className={style(
47
+ 'mt-5 sm:mt-8 flex flex-col gap-6',
48
+ linkColumnsModeStyleMap[columnsMode],
49
+ )}
50
+ role="list"
51
+ >
52
+ {documents.map(renderLinkDocItem(router, columnsMode, icon))}
53
+ </div>
54
+ ) : null}
55
+ </BlockWrapper>
56
+ );
57
+ },
59
58
  );
59
+
60
+ const renderLinkDocItem =
61
+ (router: Router, columnsMode: LinkColumnsMode, icon: Picture) =>
62
+ (docBlockDef: DocBlockDef, i: number) => {
63
+ const href =
64
+ docBlockDef?.docType === 'Attachment'
65
+ ? adjustHref(router)(docBlockDef?.attachment?.src)
66
+ : docBlockDef?.href;
67
+
68
+ return (
69
+ <div
70
+ key={String(i)}
71
+ className={columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : ''}
72
+ role="listitem"
73
+ >
74
+ <LinkDocItem
75
+ {...docBlockDef}
76
+ href={href}
77
+ icon={icon ? <Img className={linkIconStyle} image={icon} width="24" height="24" /> : null}
78
+ />
79
+ </div>
80
+ );
81
+ };
@@ -2,7 +2,14 @@
2
2
  "content": {
3
3
  "documents": {
4
4
  "items": {
5
- "ui:field": "document"
5
+ "docType": {
6
+ "ui:widget": "hidden"
7
+ },
8
+ "attachment": {
9
+ "src": {
10
+ "ui:widget": "FileWidget"
11
+ }
12
+ }
6
13
  }
7
14
  }
8
15
  }