@gudhub/ssg-web-components-library 1.0.0

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 (230) hide show
  1. package/index.js +3 -0
  2. package/package.json +20 -0
  3. package/src/components/about-us-banner/about-us-banner-data.json +9 -0
  4. package/src/components/about-us-banner/about-us-banner.html +19 -0
  5. package/src/components/about-us-banner/about-us-banner.js +23 -0
  6. package/src/components/about-us-banner/about-us-banner.scss +59 -0
  7. package/src/components/about-us-banner/config.js +5 -0
  8. package/src/components/about-us-image-counter/about-us-image-counter-data.json +35 -0
  9. package/src/components/about-us-image-counter/about-us-image-counter.html +22 -0
  10. package/src/components/about-us-image-counter/about-us-image-counter.js +23 -0
  11. package/src/components/about-us-image-counter/about-us-image-counter.scss +44 -0
  12. package/src/components/about-us-image-counter/config.js +5 -0
  13. package/src/components/about-us-team-members/about-us-team-members-data.json +99 -0
  14. package/src/components/about-us-team-members/about-us-team-members.html +25 -0
  15. package/src/components/about-us-team-members/about-us-team-members.js +22 -0
  16. package/src/components/about-us-team-members/about-us-team-members.scss +71 -0
  17. package/src/components/about-us-team-members/config.js +5 -0
  18. package/src/components/animation-block/animation-block-data.json +40 -0
  19. package/src/components/animation-block/animation-block.html +37 -0
  20. package/src/components/animation-block/animation-block.js +23 -0
  21. package/src/components/animation-block/animation-block.scss +337 -0
  22. package/src/components/animation-block/config.js +5 -0
  23. package/src/components/banner-and-text/banner-and-text-data.json +24 -0
  24. package/src/components/banner-and-text/banner-and-text.html +30 -0
  25. package/src/components/banner-and-text/banner-and-text.js +25 -0
  26. package/src/components/banner-and-text/banner-and-text.scss +85 -0
  27. package/src/components/banner-and-text/config.js +5 -0
  28. package/src/components/blog/article/allArticles.json +96 -0
  29. package/src/components/blog/article/article-component.html +189 -0
  30. package/src/components/blog/article/article-component.js +340 -0
  31. package/src/components/blog/article/article-component.scss +776 -0
  32. package/src/components/blog/article/authors-object.json +125 -0
  33. package/src/components/blog/article/categories-object.json +47 -0
  34. package/src/components/blog/author-page/author-page.html +37 -0
  35. package/src/components/blog/author-page/author-page.js +113 -0
  36. package/src/components/blog/author-page/author-page.json +111 -0
  37. package/src/components/blog/author-page/author-page.scss +107 -0
  38. package/src/components/blog/authors-list/authors-list.html +40 -0
  39. package/src/components/blog/authors-list/authors-list.js +60 -0
  40. package/src/components/blog/authors-list/authors-list.json +132 -0
  41. package/src/components/blog/authors-list/authors-list.scss +171 -0
  42. package/src/components/blog/categories-list/categories-list.html +21 -0
  43. package/src/components/blog/categories-list/categories-list.js +26 -0
  44. package/src/components/blog/categories-list/categories-list.json +53 -0
  45. package/src/components/blog/categories-list/categories-list.scss +125 -0
  46. package/src/components/blog/comments/comments.html +89 -0
  47. package/src/components/blog/comments/comments.js +181 -0
  48. package/src/components/blog/comments/comments.json +130 -0
  49. package/src/components/blog/comments/comments.scss +324 -0
  50. package/src/components/blog/contents/contents.html +14 -0
  51. package/src/components/blog/contents/contents.js +63 -0
  52. package/src/components/blog/contents/contents.scss +157 -0
  53. package/src/components/blog/posts-template/articles.json +139 -0
  54. package/src/components/blog/posts-template/authors-object.json +61 -0
  55. package/src/components/blog/posts-template/categories.json +61 -0
  56. package/src/components/blog/posts-template/posts-template.html +239 -0
  57. package/src/components/blog/posts-template/posts-template.js +532 -0
  58. package/src/components/blog/posts-template/posts-template.scss +566 -0
  59. package/src/components/breadcrumbs/breadcrumbs-component.js +65 -0
  60. package/src/components/breadcrumbs/breadcrumbs.html +21 -0
  61. package/src/components/breadcrumbs/breadcrumbs.scss +118 -0
  62. package/src/components/breadcrumbs/config.js +5 -0
  63. package/src/components/button-component/button-component.html +3 -0
  64. package/src/components/button-component/button-component.js +39 -0
  65. package/src/components/button-component/button-component.readme.md +11 -0
  66. package/src/components/button-component/button-component.scss +34 -0
  67. package/src/components/button-component/config.js +5 -0
  68. package/src/components/category-banner/category-banner.html +7 -0
  69. package/src/components/category-banner/category-banner.js +44 -0
  70. package/src/components/category-banner/category-banner.scss +22 -0
  71. package/src/components/category-banner/config.js +5 -0
  72. package/src/components/contact-us-block/config.js +5 -0
  73. package/src/components/contact-us-block/contact-us-block.html +41 -0
  74. package/src/components/contact-us-block/contact-us-block.js +22 -0
  75. package/src/components/contact-us-block/contact-us-block.scss +59 -0
  76. package/src/components/cookies-popup/config.js +5 -0
  77. package/src/components/cookies-popup/cookies-popup.html +8 -0
  78. package/src/components/cookies-popup/cookies-popup.js +27 -0
  79. package/src/components/cookies-popup/cookies-popup.scss +68 -0
  80. package/src/components/counter-section/config.js +5 -0
  81. package/src/components/counter-section/counter-section-data.json +21 -0
  82. package/src/components/counter-section/counter-section.html +38 -0
  83. package/src/components/counter-section/counter-section.js +23 -0
  84. package/src/components/counter-section/counter-section.readme.md +19 -0
  85. package/src/components/counter-section/counter-section.scss +204 -0
  86. package/src/components/counter-section-with-text/config.js +5 -0
  87. package/src/components/counter-section-with-text/counter-section-with-text-data.json +21 -0
  88. package/src/components/counter-section-with-text/counter-section-with-text.html +46 -0
  89. package/src/components/counter-section-with-text/counter-section-with-text.js +23 -0
  90. package/src/components/counter-section-with-text/counter-section-with-text.readme.md +19 -0
  91. package/src/components/counter-section-with-text/counter-section-with-text.scss +164 -0
  92. package/src/components/crm-services-banner/config.js +5 -0
  93. package/src/components/crm-services-banner/crm-services-banner-data.json +20 -0
  94. package/src/components/crm-services-banner/crm-services-banner.html +28 -0
  95. package/src/components/crm-services-banner/crm-services-banner.js +25 -0
  96. package/src/components/crm-services-banner/crm-services-banner.scss +57 -0
  97. package/src/components/edit-mode/config.js +5 -0
  98. package/src/components/edit-mode/edit-mode.html +4 -0
  99. package/src/components/edit-mode/edit-mode.js +23 -0
  100. package/src/components/edit-mode/edit-mode.scss +69 -0
  101. package/src/components/faq/config.js +5 -0
  102. package/src/components/faq/faq.html +20 -0
  103. package/src/components/faq/faq.js +40 -0
  104. package/src/components/faq/faq.scss +80 -0
  105. package/src/components/footer/config.js +5 -0
  106. package/src/components/footer/footer.html +74 -0
  107. package/src/components/footer/footer.js +21 -0
  108. package/src/components/footer/footer.scss +356 -0
  109. package/src/components/footer/pages-object.json +58 -0
  110. package/src/components/fullscreen-image-and-text/config.js +5 -0
  111. package/src/components/fullscreen-image-and-text/fullscreen-image-and-text.html +42 -0
  112. package/src/components/fullscreen-image-and-text/fullscreen-image-and-text.js +29 -0
  113. package/src/components/fullscreen-image-and-text/fullscreen-image-and-text.scss +192 -0
  114. package/src/components/get-in-touch-block/config.js +5 -0
  115. package/src/components/get-in-touch-block/get-in-touch-block-data.json +4 -0
  116. package/src/components/get-in-touch-block/get-in-touch-block.html +11 -0
  117. package/src/components/get-in-touch-block/get-in-touch-block.js +22 -0
  118. package/src/components/get-in-touch-block/get-in-touch-block.scss +12 -0
  119. package/src/components/get-in-touch-form/config.js +5 -0
  120. package/src/components/get-in-touch-form/get-in-touch-form-data.json +114 -0
  121. package/src/components/get-in-touch-form/get-in-touch-form.html +35 -0
  122. package/src/components/get-in-touch-form/get-in-touch-form.js +115 -0
  123. package/src/components/get-in-touch-form/get-in-touch-form.readme.md +45 -0
  124. package/src/components/get-in-touch-form/get-in-touch-form.scss +334 -0
  125. package/src/components/get-in-touch-form/sendEmail.js +161 -0
  126. package/src/components/grid/config.js +5 -0
  127. package/src/components/grid/grid.html +51 -0
  128. package/src/components/grid/grid.js +115 -0
  129. package/src/components/grid/grid.scss +566 -0
  130. package/src/components/grid-component/config.js +5 -0
  131. package/src/components/grid-component/grid-component-data.json +115 -0
  132. package/src/components/grid-component/grid-component.html +52 -0
  133. package/src/components/grid-component/grid-component.js +40 -0
  134. package/src/components/grid-component/grid-component.readme.md +32 -0
  135. package/src/components/grid-component/grid-component.scss +199 -0
  136. package/src/components/header/config.js +5 -0
  137. package/src/components/header/header.html +60 -0
  138. package/src/components/header/header.js +55 -0
  139. package/src/components/header/header.scss +556 -0
  140. package/src/components/homepage-banner/config.js +5 -0
  141. package/src/components/homepage-banner/homepage-banner.html +1443 -0
  142. package/src/components/homepage-banner/homepage-banner.js +23 -0
  143. package/src/components/homepage-banner/homepage-banner.scss +147 -0
  144. package/src/components/image-component/config.js +5 -0
  145. package/src/components/image-component/image-component.html +25 -0
  146. package/src/components/image-component/image-component.js +107 -0
  147. package/src/components/list-text-and-media/config.js +5 -0
  148. package/src/components/list-text-and-media/list-text-and-media-data.json +70 -0
  149. package/src/components/list-text-and-media/list-text-and-media.html +38 -0
  150. package/src/components/list-text-and-media/list-text-and-media.js +22 -0
  151. package/src/components/list-text-and-media/list-text-and-media.readme.md +30 -0
  152. package/src/components/list-text-and-media/list-text-and-media.scss +156 -0
  153. package/src/components/media-and-accordion/config.js +5 -0
  154. package/src/components/media-and-accordion/media-and-accordion-data.json +84 -0
  155. package/src/components/media-and-accordion/media-and-accordion.html +37 -0
  156. package/src/components/media-and-accordion/media-and-accordion.js +55 -0
  157. package/src/components/media-and-accordion/media-and-accordion.scss +170 -0
  158. package/src/components/media-and-list-of-text/config.js +5 -0
  159. package/src/components/media-and-list-of-text/media-and-list-of-text-data.json +16 -0
  160. package/src/components/media-and-list-of-text/media-and-list-of-text.html +32 -0
  161. package/src/components/media-and-list-of-text/media-and-list-of-text.js +24 -0
  162. package/src/components/media-and-list-of-text/media-and-list-of-text.readme.md +26 -0
  163. package/src/components/media-and-list-of-text/media-and-list-of-text.scss +102 -0
  164. package/src/components/media-and-text/config.js +5 -0
  165. package/src/components/media-and-text/media-and-text-data.json +20 -0
  166. package/src/components/media-and-text/media-and-text.html +26 -0
  167. package/src/components/media-and-text/media-and-text.js +26 -0
  168. package/src/components/media-and-text/media-and-text.scss +51 -0
  169. package/src/components/meta/articles.json +95 -0
  170. package/src/components/meta/author-schema.js +71 -0
  171. package/src/components/meta/authors.json +108 -0
  172. package/src/components/meta/blog-schema.js +93 -0
  173. package/src/components/meta/canonical.js +74 -0
  174. package/src/components/meta/config.js +40 -0
  175. package/src/components/meta/meta-index.js +14 -0
  176. package/src/components/meta/meta-tag.js +168 -0
  177. package/src/components/meta/organization-schema.js +50 -0
  178. package/src/components/meta/service-schema.js +76 -0
  179. package/src/components/meta/title-tag.js +64 -0
  180. package/src/components/overflow-cards/config.js +5 -0
  181. package/src/components/overflow-cards/overflow-cards-data.json +33 -0
  182. package/src/components/overflow-cards/overflow-cards.html +33 -0
  183. package/src/components/overflow-cards/overflow-cards.js +28 -0
  184. package/src/components/overflow-cards/overflow-cards.scss +112 -0
  185. package/src/components/popup/config.js +5 -0
  186. package/src/components/popup/popup.html +10 -0
  187. package/src/components/popup/popup.js +66 -0
  188. package/src/components/popup/popup.readme.md +13 -0
  189. package/src/components/popup/popup.scss +76 -0
  190. package/src/components/prices-cards/config.js +5 -0
  191. package/src/components/prices-cards/prices-cards-data.json +90 -0
  192. package/src/components/prices-cards/prices-cards.html +35 -0
  193. package/src/components/prices-cards/prices-cards.js +23 -0
  194. package/src/components/prices-cards/prices-cards.readme.md +48 -0
  195. package/src/components/prices-cards/prices-cards.scss +206 -0
  196. package/src/components/recent-posts/author-object.json +53 -0
  197. package/src/components/recent-posts/config.js +5 -0
  198. package/src/components/recent-posts/recent-posts.html +85 -0
  199. package/src/components/recent-posts/recent-posts.js +89 -0
  200. package/src/components/recent-posts/recent-posts.json +258 -0
  201. package/src/components/recent-posts/recent-posts.scss +274 -0
  202. package/src/components/reviews-slider/config.js +5 -0
  203. package/src/components/reviews-slider/reviews-slider-data.json +30 -0
  204. package/src/components/reviews-slider/reviews-slider.html +48 -0
  205. package/src/components/reviews-slider/reviews-slider.js +86 -0
  206. package/src/components/reviews-slider/reviews-slider.scss +92 -0
  207. package/src/components/service-counter/config.js +5 -0
  208. package/src/components/service-counter/service-counter-data.json +24 -0
  209. package/src/components/service-counter/service-counter.html +19 -0
  210. package/src/components/service-counter/service-counter.js +23 -0
  211. package/src/components/service-counter/service-counter.scss +171 -0
  212. package/src/components/service-image-counter/config.js +5 -0
  213. package/src/components/service-image-counter/service-image-counter-data.json +52 -0
  214. package/src/components/service-image-counter/service-image-counter.html +30 -0
  215. package/src/components/service-image-counter/service-image-counter.js +23 -0
  216. package/src/components/service-image-counter/service-image-counter.scss +114 -0
  217. package/src/components/tabs/config.js +5 -0
  218. package/src/components/tabs/tabs-component.js +45 -0
  219. package/src/components/tabs/tabs.html +28 -0
  220. package/src/components/tabs/tabs.scss +399 -0
  221. package/src/components/text-only/config.js +5 -0
  222. package/src/components/text-only/text-only-data.json +4 -0
  223. package/src/components/text-only/text-only.html +8 -0
  224. package/src/components/text-only/text-only.js +20 -0
  225. package/src/components/text-only/text-only.scss +21 -0
  226. package/src/components/top-banner/config.js +5 -0
  227. package/src/components/top-banner/top-banner.html +22 -0
  228. package/src/components/top-banner/top-banner.js +50 -0
  229. package/src/components/top-banner/top-banner.scss +132 -0
  230. package/src/config.js +38 -0
@@ -0,0 +1,239 @@
1
+ <section class="posts-template" ${numberOfPage != 1 ? `data-page="${numberOfPage}"` : ''}>
2
+ ${empty ?
3
+ empty === 'category' ? `
4
+ <div class="container">
5
+ <div class="empty">
6
+ This category is empty &#128557;
7
+ </div>
8
+ </div>
9
+ ` : empty === 'author' ? `
10
+ <div class="container">
11
+ <div class="empty">
12
+ This author have no posts yet &#128557;
13
+ </div>
14
+ </div>
15
+ ` : ''
16
+ : `
17
+ <div class="container">
18
+ <div class="search">
19
+ <input type="text" placeholder="Search" onfocus="triggeringFetchArticles()" oninput="triggeringSearch()">
20
+ <div class="icon">
21
+ <svg class="loader_icon" width="111" height="111" viewBox="0 0 111 111" fill="none" xmlns="http://www.w3.org/2000/svg"> <ellipse cx="55.9604" cy="55.9604" rx="40.234" ry="40.234" stroke="#00BFD6" stroke-width="9"></ellipse> <path d="M55.6819 15.7275C66.3523 15.6536 76.6151 19.8216 84.2125 27.3145C91.8099 34.8074 96.1196 45.0115 96.1935 55.6819" stroke="url(#paint0_linear_4557_5035)" stroke-width="9" stroke-linecap="round"></path> <defs> <linearGradient id="paint0_linear_4557_5035" x1="90.6947" y1="76.2658" x2="16.332" y2="31.743" gradientUnits="userSpaceOnUse"> <stop stop-color="#C5DFFF"></stop> <stop offset="0.0001" stop-color="#C5DFFF"></stop> <stop offset="0.830038" stop-color="#1681FF" stop-opacity="0.01"></stop> <stop offset="1" stop-color="#1681FF" stop-opacity="0"></stop> </linearGradient> </defs> </svg>
22
+ <svg class="search_icon" xmlns="http://www.w3.org/2000/svg" width="24" height="23" viewBox="0 0 24 23" fill="none"><path d="M21.3438 19.8274L15.9158 14.3994C17.2202 12.8335 17.8706 10.825 17.7319 8.79169C17.5931 6.75839 16.6757 4.85688 15.1706 3.48272C13.6656 2.10856 11.6887 1.36755 9.65116 1.41385C7.61366 1.46015 5.67245 2.29018 4.23134 3.73128C2.79024 5.17239 1.96021 7.1136 1.91391 9.1511C1.86762 11.1886 2.60862 13.1655 3.98278 14.6706C5.35694 16.1757 7.25845 17.093 9.29175 17.2318C11.325 17.3706 13.3336 16.7201 14.8995 15.4158L20.3275 20.8438L21.3438 19.8274ZM3.37507 9.34376C3.37507 8.06436 3.75445 6.81369 4.46525 5.74991C5.17604 4.68613 6.18633 3.85702 7.36833 3.36741C8.55034 2.87781 9.85099 2.7497 11.1058 2.9993C12.3606 3.2489 13.5132 3.86499 14.4179 4.76966C15.3226 5.67433 15.9387 6.82695 16.1883 8.08177C16.4379 9.33658 16.3098 10.6372 15.8202 11.8192C15.3306 13.0012 14.5014 14.0115 13.4377 14.7223C12.3739 15.4331 11.1232 15.8125 9.84382 15.8125C8.12878 15.8106 6.48454 15.1285 5.27182 13.9158C4.05911 12.703 3.37697 11.0588 3.37507 9.34376Z" fill="#525252"></path></svg>
23
+ </div>
24
+ </div>
25
+ ${type === "blog" ? `
26
+ ` : ''}
27
+ ${mainPost ? `
28
+ <div class="post main">
29
+ <div class="post_left">
30
+ <a href="${mainArticle.slug}">
31
+ <image-component width="670" height="285" data-url="${mainArticle.thumbnail}" data-src="${mainArticle.thumbnail_src}" alt="${mainArticle.thumbnail_alt}" title="${mainArticle.thumbnail_title}"></image-component>
32
+ </a>
33
+ </div>
34
+ <div class="post_right">
35
+ <div class="top">
36
+ <div class="top_flex">
37
+ <div>
38
+ <div class="categories">
39
+ ${
40
+ mainArticle.categories.reduce((acc, category, index) => {
41
+ return acc + `
42
+ <div class="category">
43
+ <a href="${category.slug}">${category.name}</a>
44
+ </div>
45
+ `
46
+ },
47
+ '')
48
+ }
49
+ </div>
50
+ <div class="time_to_read">
51
+ <span>${mainArticle.time_to_read}</span>
52
+ <span>min read</span>
53
+ </div>
54
+ </div>
55
+ <div>
56
+ <div class="views">
57
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21" fill="none"> <g clip-path="url(#clip0_841_1707)"> <mask id="mask0_841_1707" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <path d="M20 0.5H0V20.5H20V0.5Z" fill="white"/> </mask> <g mask="url(#mask0_841_1707)"> <mask id="mask1_841_1707" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <path d="M0 0.500002H20V20.5H0V0.500002Z" fill="white"/> </mask> <g mask="url(#mask1_841_1707)"> <path d="M19.1719 10.5C19.1719 10.5 16.2031 16.75 9.95312 16.75C3.70312 16.75 0.734375 10.5 0.734375 10.5C0.734375 10.5 3.70312 4.25 9.95312 4.25C16.2031 4.25 19.1719 10.5 19.1719 10.5Z" stroke="#0C6980" stroke-width="1.5625" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.0781 10.5C13.0781 8.7741 11.679 7.375 9.95312 7.375C8.22723 7.375 6.82812 8.7741 6.82812 10.5C6.82812 12.2259 8.22723 13.625 9.95312 13.625C11.679 13.625 13.0781 12.2259 13.0781 10.5Z" stroke="#0C6980" stroke-width="1.5625" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </g> </g> </g> <defs> <clipPath id="clip0_841_1707"> <rect width="20" height="20" fill="white" transform="translate(0 0.5)"/> </clipPath> </defs> </svg>
58
+ <span>${mainArticle.views}</span>
59
+ </div>
60
+ <div class="rating">
61
+ <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <path d="M9.5 1.33912L12.1266 6.65893L18 7.51203L13.75 11.6529L14.7532 17.5L9.5 14.7394L4.24678 17.5L5.25004 11.6529L1 7.51203L6.87335 6.65893L9.5 1.33912Z" stroke="#0C6980" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </svg>
62
+ <span>${mainArticle.rating.avg}</span>
63
+ </div>
64
+ <div class="comments">
65
+ <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <g id="Group"> <g id="Group_2"> <g id="Group_3"> <path id="Vector" d="M12.8477 9.29297C13.3331 9.29297 13.7266 8.89947 13.7266 8.41406C13.7266 7.92866 13.3331 7.53516 12.8477 7.53516C12.3622 7.53516 11.9688 7.92866 11.9688 8.41406C11.9688 8.89947 12.3622 9.29297 12.8477 9.29297Z" fill="#0C6980"/> <path id="Vector_2" d="M9.33203 9.29297C9.81744 9.29297 10.2109 8.89947 10.2109 8.41406C10.2109 7.92866 9.81744 7.53516 9.33203 7.53516C8.84662 7.53516 8.45312 7.92866 8.45312 8.41406C8.45312 8.89947 8.84662 9.29297 9.33203 9.29297Z" fill="#0C6980"/> <path id="Vector_3" d="M5.81641 9.29297C6.30181 9.29297 6.69531 8.89947 6.69531 8.41406C6.69531 7.92866 6.30181 7.53516 5.81641 7.53516C5.331 7.53516 4.9375 7.92866 4.9375 8.41406C4.9375 8.89947 5.331 9.29297 5.81641 9.29297Z" fill="#0C6980"/> <path id="Vector_4" d="M17.6289 0.75H1.03516C0.64682 0.75 0.332031 1.06479 0.332031 1.45312V15.375C0.332031 15.7633 0.64682 16.0781 1.03516 16.0781H7.257L8.73754 18.4223C8.86639 18.6263 9.09079 18.75 9.33203 18.75C9.57327 18.75 9.79768 18.6263 9.92652 18.4223L11.4071 16.0781H17.6289C18.0172 16.0781 18.332 15.7633 18.332 15.375V1.45312C18.332 1.06479 18.0172 0.75 17.6289 0.75ZM16.9258 14.6719H11.0195C10.7783 14.6719 10.5539 14.7956 10.425 14.9995L9.33203 16.7301L8.23902 14.9995C8.11018 14.7956 7.88577 14.6719 7.64453 14.6719H1.73828V2.15625H16.9258V14.6719Z" fill="#0C6980"/> </g> </g> </g> </svg>
66
+ <span>${mainArticle.commentsQuantity}</span>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <a href="${mainArticle.slug}">
71
+ <h2 class="post_title main_post_title">
72
+ ${mainArticle.h1}
73
+ </h2>
74
+ </a>
75
+ </div>
76
+ <div class="author_date">
77
+ <div class="symbol">By</div>
78
+ <a class="author" href="${mainArticle.author_slug}">${mainArticle.author}</a>
79
+ <div class="symbol"> | </div>
80
+ <div class="posted_at">
81
+ ${new Date(Number(mainArticle.posted_at)).toLocaleDateString('uk')}
82
+ </div>
83
+ </div>
84
+ <div class="intro">
85
+ ${mainArticle.intro}
86
+ </div>
87
+ <div class="read_more">
88
+ <a href="${mainArticle.slug}">
89
+ <span>Read more</span>
90
+ <svg xmlns="http://www.w3.org/2000/svg" width="22" height="17" viewBox="0 0 22 17" fill="none">
91
+ <path d="M12.5 1L20 8.5M20 8.5L12.5 16M20 8.5L0 8.5" stroke="#141616" stroke-width="2"/>
92
+ </svg>
93
+ </a>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ ` : ''}
98
+
99
+ <div class="posts_list">
100
+ ${
101
+ postForPage ? postForPage.reduce((acc, article, index) => {
102
+ return acc + `
103
+ <div class="post">
104
+ <div class="post_left">
105
+ <a href="${article.slug}">
106
+ <image-component width="462" height="200" lazyload data-url="${article.thumbnail}" data-src="${article.thumbnail_src}" alt="${article.thumbnail_alt}" title="${article.thumbnail_title}"></image-component>
107
+ </a>
108
+ </div>
109
+ <div class="post_right">
110
+ <div class="top">
111
+ <div class="top_flex">
112
+ <div>
113
+ <div class="categories">
114
+ ${
115
+ article.categories.reduce((acc, category, index) => {
116
+ return acc + `
117
+ <div class="category">
118
+ <a href="${category.slug}">${category.name}</a>
119
+ </div>
120
+ `
121
+ },
122
+ '')
123
+ }
124
+ </div>
125
+ <div class="time_to_read">
126
+ <span>${article.time_to_read}</span>
127
+ <span>min read</span>
128
+ </div>
129
+ </div>
130
+ <div>
131
+ <div class="views">
132
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21" fill="none"> <g clip-path="url(#clip0_841_1707)"> <mask id="mask0_841_1707" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <path d="M20 0.5H0V20.5H20V0.5Z" fill="white"/> </mask> <g mask="url(#mask0_841_1707)"> <mask id="mask1_841_1707" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <path d="M0 0.500002H20V20.5H0V0.500002Z" fill="white"/> </mask> <g mask="url(#mask1_841_1707)"> <path d="M19.1719 10.5C19.1719 10.5 16.2031 16.75 9.95312 16.75C3.70312 16.75 0.734375 10.5 0.734375 10.5C0.734375 10.5 3.70312 4.25 9.95312 4.25C16.2031 4.25 19.1719 10.5 19.1719 10.5Z" stroke="#0C6980" stroke-width="1.5625" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M13.0781 10.5C13.0781 8.7741 11.679 7.375 9.95312 7.375C8.22723 7.375 6.82812 8.7741 6.82812 10.5C6.82812 12.2259 8.22723 13.625 9.95312 13.625C11.679 13.625 13.0781 12.2259 13.0781 10.5Z" stroke="#0C6980" stroke-width="1.5625" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </g> </g> </g> <defs> <clipPath id="clip0_841_1707"> <rect width="20" height="20" fill="white" transform="translate(0 0.5)"/> </clipPath> </defs> </svg>
133
+ <span>${article.views}</span>
134
+ </div>
135
+ <div class="rating">
136
+ <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <path d="M9.5 1.33912L12.1266 6.65893L18 7.51203L13.75 11.6529L14.7532 17.5L9.5 14.7394L4.24678 17.5L5.25004 11.6529L1 7.51203L6.87335 6.65893L9.5 1.33912Z" stroke="#0C6980" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </svg>
137
+ <span>${article.rating.avg}</span>
138
+ </div>
139
+ <div class="comments">
140
+ <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <g id="Group"> <g id="Group_2"> <g id="Group_3"> <path id="Vector" d="M12.8477 9.29297C13.3331 9.29297 13.7266 8.89947 13.7266 8.41406C13.7266 7.92866 13.3331 7.53516 12.8477 7.53516C12.3622 7.53516 11.9688 7.92866 11.9688 8.41406C11.9688 8.89947 12.3622 9.29297 12.8477 9.29297Z" fill="#0C6980"/> <path id="Vector_2" d="M9.33203 9.29297C9.81744 9.29297 10.2109 8.89947 10.2109 8.41406C10.2109 7.92866 9.81744 7.53516 9.33203 7.53516C8.84662 7.53516 8.45312 7.92866 8.45312 8.41406C8.45312 8.89947 8.84662 9.29297 9.33203 9.29297Z" fill="#0C6980"/> <path id="Vector_3" d="M5.81641 9.29297C6.30181 9.29297 6.69531 8.89947 6.69531 8.41406C6.69531 7.92866 6.30181 7.53516 5.81641 7.53516C5.331 7.53516 4.9375 7.92866 4.9375 8.41406C4.9375 8.89947 5.331 9.29297 5.81641 9.29297Z" fill="#0C6980"/> <path id="Vector_4" d="M17.6289 0.75H1.03516C0.64682 0.75 0.332031 1.06479 0.332031 1.45312V15.375C0.332031 15.7633 0.64682 16.0781 1.03516 16.0781H7.257L8.73754 18.4223C8.86639 18.6263 9.09079 18.75 9.33203 18.75C9.57327 18.75 9.79768 18.6263 9.92652 18.4223L11.4071 16.0781H17.6289C18.0172 16.0781 18.332 15.7633 18.332 15.375V1.45312C18.332 1.06479 18.0172 0.75 17.6289 0.75ZM16.9258 14.6719H11.0195C10.7783 14.6719 10.5539 14.7956 10.425 14.9995L9.33203 16.7301L8.23902 14.9995C8.11018 14.7956 7.88577 14.6719 7.64453 14.6719H1.73828V2.15625H16.9258V14.6719Z" fill="#0C6980"/> </g> </g> </g> </svg>
141
+ <span>${article.commentsQuantity}</span>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ <a href="${article.slug}">
146
+ <div class="post_title">
147
+ ${article.h1}
148
+ </div>
149
+ </a>
150
+ </div>
151
+ <div class="bottom">
152
+ <div class="author_date">
153
+ <div class="symbol">By</div>
154
+ <a class="author" href="${article.author_slug}">${article.author}</a>
155
+ <div class="symbol"> | </div>
156
+ <div class="posted_at">
157
+ ${new Date(Number(article.posted_at)).toLocaleDateString('uk')}
158
+ </div>
159
+ </div>
160
+ <div class="intro">
161
+ ${article.intro}
162
+ </div>
163
+ <div class="read_more">
164
+ <a href="${article.slug}">
165
+ <span>Read more</span>
166
+ <svg xmlns="http://www.w3.org/2000/svg" width="22" height="17" viewBox="0 0 22 17" fill="none">
167
+ <path d="M12.5 1L20 8.5M20 8.5L12.5 16M20 8.5L0 8.5" stroke="#141616" stroke-width="2"/>
168
+ </svg>
169
+ </a>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ `
175
+ }, '') : ''
176
+ }
177
+ </div>
178
+ ${ amountOfPages > 1 ? `
179
+ <div class="pagination">
180
+ <div class="pagination_wrapper">
181
+ <div class="prev ${numberOfPage == 1 ? 'disable' : ''}">
182
+ ${numberOfPage == 2 ? `
183
+ <a href="${currentCategory ? `${currentCategory.slug}` : '/blog/'}">
184
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M8 13L2 7M2 7L8 0.999999M2 7L18 7" stroke="#4D555B" stroke-width="2"/></svg>
185
+ </a>
186
+ ` : numberOfPage == 1 ? `
187
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M8 13L2 7M2 7L8 0.999999M2 7L18 7" stroke="#4D555B" stroke-width="2"/></svg>
188
+ ` : `
189
+ <a href="${currentCategory ? `${currentCategory.slug}` : '/blog/'}page/${numberOfPage -1}/">
190
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M8 13L2 7M2 7L8 0.999999M2 7L18 7" stroke="#4D555B" stroke-width="2"/></svg>
191
+ </a>
192
+ `}
193
+ </div>
194
+ <ul class="pages">
195
+
196
+ ${
197
+ countOfPages.reduce((acc, page, index) => {
198
+ return acc + `
199
+ ${index > 0 ? `
200
+ ${numberOfPage == index + 1 ? `
201
+ <li class="page active">
202
+ <span>${index + 1}</span>
203
+ </li>
204
+ ` : `
205
+ <li class="page ${numberOfPage == index + 1 ? 'active' : ''}">
206
+ <a href="${currentCategory ? `${currentCategory.slug}` : '/blog/'}page/${index + 1}/">${index + 1}</a>
207
+ </li>
208
+ `}
209
+ ` : `
210
+ ${numberOfPage == index + 1 ? `
211
+ <li class="page active">
212
+ <span>${index + 1}</span>
213
+ </li>
214
+
215
+ ` : `
216
+ <li class="page">
217
+ <a href="${currentCategory ? `${currentCategory.slug}` : '/blog/'}">1</a>
218
+ </li>
219
+ `}
220
+ `}
221
+ `
222
+ }, '')
223
+ }
224
+ </ul>
225
+ <div class="next ${countOfPages.length == numberOfPage ? 'disable' : ''}">
226
+ ${countOfPages.length == numberOfPage ? `
227
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M10 1L16 7M16 7L10 13M16 7L-1.04907e-06 7" stroke="#4D555B" stroke-width="2"/></svg>
228
+ ` : `
229
+ <a href="${currentCategory ? `${currentCategory.slug}` : '/blog/'}page/${numberOfPage + 1}/">
230
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M10 1L16 7M16 7L10 13M16 7L-1.04907e-06 7" stroke="#4D555B" stroke-width="2"/></svg>
231
+ </a>
232
+ `}
233
+ </div>
234
+ </div>
235
+ </div>
236
+ ` : ''}
237
+ </div>
238
+ `}
239
+ </section>