@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,132 @@
1
+ {
2
+ "type": "array",
3
+ "id": 1,
4
+ "childs": [
5
+ {
6
+ "type": "property",
7
+ "id": 3,
8
+ "property_name": "title",
9
+ "property_type": "field_value",
10
+ "name_space": "title",
11
+ "interpretation": 1
12
+ },
13
+ {
14
+ "type": "property",
15
+ "id": 4,
16
+ "property_name": "h1",
17
+ "property_type": "field_value",
18
+ "name_space": "h1",
19
+ "interpretation": 1
20
+ },
21
+ {
22
+ "type": "property",
23
+ "id": 12,
24
+ "property_name": "id",
25
+ "property_type": "variable",
26
+ "variable_type": "current_item"
27
+ },
28
+ {
29
+ "type": "property",
30
+ "id": 19,
31
+ "property_name": "thumbnail_alt",
32
+ "property_type": "field_value",
33
+ "name_space": "thumbnail_alt",
34
+ "interpretation": 1
35
+ },
36
+ {
37
+ "type": "property",
38
+ "id": 16,
39
+ "property_name": "intro",
40
+ "property_type": "field_value",
41
+ "name_space": "intro",
42
+ "interpretation": 1
43
+ },
44
+ {
45
+ "type": "property",
46
+ "id": 18,
47
+ "property_name": "thumbnail_title",
48
+ "property_type": "field_value",
49
+ "name_space": "thumbnail_title",
50
+ "interpretation": 1
51
+ },
52
+ {
53
+ "type": "property",
54
+ "id": 13,
55
+ "property_name": "intro_id",
56
+ "property_type": "field_value",
57
+ "name_space": "intro"
58
+ },
59
+ {
60
+ "type": "property",
61
+ "id": 10,
62
+ "property_name": "description",
63
+ "property_type": "field_value",
64
+ "name_space": "description",
65
+ "interpretation": 1
66
+ },
67
+ {
68
+ "type": "property",
69
+ "id": 17,
70
+ "property_name": "thumbnail",
71
+ "property_type": "field_value",
72
+ "name_space": "thumbnail",
73
+ "interpretation": 1
74
+ },
75
+ {
76
+ "type": "property",
77
+ "id": 6,
78
+ "property_name": "facebook",
79
+ "property_type": "field_value",
80
+ "name_space": "facebook",
81
+ "interpretation": 1
82
+ },
83
+ {
84
+ "type": "property",
85
+ "id": 9,
86
+ "property_name": "thumbnail_src",
87
+ "property_type": "field_value",
88
+ "name_space": "thumbnail_src",
89
+ "interpretation": 1
90
+ },
91
+ {
92
+ "type": "property",
93
+ "id": 7,
94
+ "property_name": "slug",
95
+ "property_type": "field_value",
96
+ "name_space": "slug",
97
+ "interpretation": 1
98
+ },
99
+ {
100
+ "type": "property",
101
+ "id": 5,
102
+ "property_name": "linkedin",
103
+ "property_type": "field_value",
104
+ "name_space": "linkedin",
105
+ "interpretation": 1
106
+ }
107
+ ],
108
+ "property_name": "authors",
109
+ "app_id": "33453",
110
+ "filter": [
111
+ {
112
+ "field_id": 796213,
113
+ "data_type": "radio_button",
114
+ "valuesArray": [
115
+ "1"
116
+ ],
117
+ "search_type": "equal_or",
118
+ "$$hashKey": "object:3722",
119
+ "selected_search_option_variable": "Value"
120
+ },
121
+ {
122
+ "field_id": 796222,
123
+ "data_type": "radio_button",
124
+ "valuesArray": [
125
+ "1"
126
+ ],
127
+ "search_type": "equal_or",
128
+ "$$hashKey": "object:3764",
129
+ "selected_search_option_variable": "Value"
130
+ }
131
+ ]
132
+ }
@@ -0,0 +1,171 @@
1
+ authors-list {
2
+ breadcrumbs-component {
3
+ margin-top: 30px;
4
+ }
5
+ h1 {
6
+ text-align: center;
7
+ }
8
+ .authors-list {
9
+ display: flex;
10
+ .author {
11
+ padding: 20px 24px;
12
+ background: #FFFFFF;
13
+ border: 1px solid #DBE2E7;
14
+ a {
15
+ display: flex;
16
+ flex-direction: column;
17
+ justify-content: space-between;
18
+ height: 100%;
19
+ }
20
+ .image {
21
+ margin-bottom: 24px;
22
+ img{
23
+ display: block;
24
+ // height: 310px;
25
+ width: auto;
26
+ object-fit: cover;
27
+ margin: 0 auto;
28
+ }
29
+ }
30
+ h3 {
31
+ font-weight: 700;
32
+ font-size: 40px;
33
+ line-height: 48px;
34
+ color: #141616;
35
+ margin-bottom: 8px;
36
+ }
37
+ .description {
38
+ font-size: 18px;
39
+ line-height: 25px;
40
+ color: #4D555B;
41
+ margin-bottom: 8px;
42
+ }
43
+ .intro {
44
+ font-size: 18px;
45
+ line-height: 27px;
46
+ color: #4D555B;
47
+ margin-bottom: 24px;
48
+ }
49
+ .post_bottom {
50
+ display: flex;
51
+ .link {
52
+ display: flex;
53
+ align-items: center;
54
+ font-size: 18px;
55
+ line-height: 25px;
56
+ color: #141616;
57
+ padding: 10px 20px;
58
+ padding-left: 0;
59
+ position: relative;
60
+ transition: all 0.2s ease;
61
+ &::before {
62
+ content: "";
63
+ position: absolute;
64
+ width: 0;
65
+ height: 1px;
66
+ background-color: #00BFD6;
67
+ bottom: 0;
68
+ left: 0;
69
+ z-index: 2;
70
+ transition: all 0.2s ease;
71
+ }
72
+ &::after {
73
+ content: "";
74
+ position: absolute;
75
+ width: 100%;
76
+ height: 1px;
77
+ background-color: #141616;
78
+ bottom: 0;
79
+ left: 0;
80
+ }
81
+ svg {
82
+ margin-left: 10px;
83
+ path {
84
+ transition: all .2s ease;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ &:hover {
90
+ .post_bottom {
91
+ .link {
92
+ color: #00BFD6;
93
+ &::before {
94
+ width: 100%;
95
+ }
96
+ svg path {
97
+ stroke: #00BFD6;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ @media screen and (min-width: 1025px) {
106
+ authors-list {
107
+ .authors-list {
108
+ .author {
109
+ width: 32.27%;
110
+ margin-right: 1.5%;
111
+ max-width: 464px;
112
+ &:nth-child(3n) {
113
+ margin-right: 0;
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ @media screen and (max-width: 1025px) {
121
+ authors-list {
122
+ .authors-list {
123
+ flex-wrap: wrap;
124
+ }
125
+ }
126
+ }
127
+ @media screen and (max-width: 1025px) and (min-width: 750px) {
128
+ authors-list {
129
+ .authors-list {
130
+ .author {
131
+ width: 49%;
132
+ margin-right: 2%;
133
+ margin-bottom: 2%;
134
+ &:nth-child(2n) {
135
+ margin-right: 0;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ @media screen and (max-width: 750px) {
143
+ authors-list {
144
+ .authors-list {
145
+ .author {
146
+ width: 100%;
147
+ margin-bottom: 15px;
148
+ &:last-child {
149
+ margin-bottom: 0;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ @media screen and (max-width: 500px) {
156
+ authors-list .authors-list .author {
157
+ padding: 15px;
158
+ .image {
159
+ margin-bottom: 15px;
160
+ }
161
+ h3 {
162
+ font-size: 26px;
163
+ line-height: 36px;
164
+ }
165
+ .intro {
166
+ font-size: 16px;
167
+ line-height: 24px;
168
+ margin-bottom: 15px;
169
+ }
170
+ }
171
+ }
@@ -0,0 +1,21 @@
1
+ <div class="categories-component">
2
+ <div class="container">
3
+ <div class="button" onclick="openList()">Categories</div>
4
+ <div class="list_wrapper">
5
+ <ul class="categories_list">
6
+ <li ${url == '/blog/' ? 'class="active"' : ''}>
7
+ <a href="/blog/">View all</a>
8
+ </li>
9
+ ${
10
+ categories.reduce((acc, category, index) => {
11
+ return acc + `
12
+ <li ${url == category.slug ? 'class="active"' : ''}>
13
+ <a href="${category.slug}">${category.title}</a>
14
+ </li>
15
+ `
16
+ }, '')
17
+ }
18
+ </ul>
19
+ </div>
20
+ </div>
21
+ </div>
@@ -0,0 +1,26 @@
1
+ import html from './categories-list.html';
2
+ import './categories-list.scss';
3
+
4
+ import categoriesObject from './categories-list.json';
5
+
6
+ class CategoriesList extends GHComponent {
7
+
8
+ constructor() {
9
+ super();
10
+ }
11
+
12
+ async onServerRender() {
13
+ this.categories = await gudhub.jsonConstructor(categoriesObject);
14
+ this.categories = this.categories.categories;
15
+ this.url = new URL (window.location.href);
16
+ this.url = this.url.searchParams.get('path');
17
+ super.render(html);
18
+ }
19
+
20
+ openList(item) {
21
+ item.classList.toggle('active');
22
+ }
23
+
24
+ }
25
+
26
+ window.customElements.define('categories-list', CategoriesList);
@@ -0,0 +1,53 @@
1
+ {
2
+ "type": "array",
3
+ "id": 1,
4
+ "childs": [
5
+ {
6
+ "type": "property",
7
+ "id": 3,
8
+ "property_name": "title",
9
+ "property_type": "field_value",
10
+ "name_space": "title",
11
+ "interpretation": 1
12
+ },
13
+ {
14
+ "type": "property",
15
+ "id": 4,
16
+ "property_name": "slug",
17
+ "property_type": "field_value",
18
+ "name_space": "slug",
19
+ "interpretation": 1
20
+ },
21
+ {
22
+ "type": "property",
23
+ "id": 5,
24
+ "property_name": "id",
25
+ "property_type": "variable",
26
+ "variable_type": "current_item"
27
+ }
28
+ ],
29
+ "property_name": "categories",
30
+ "app_id": "33453",
31
+ "filter": [
32
+ {
33
+ "field_id": 796213,
34
+ "data_type": "radio_button",
35
+ "valuesArray": [
36
+ "2"
37
+ ],
38
+ "search_type": "equal_or",
39
+ "$$hashKey": "object:17515",
40
+ "selected_search_option_variable": "Value"
41
+ },
42
+ {
43
+ "field_id": 796222,
44
+ "data_type": "radio_button",
45
+ "valuesArray": [
46
+ "1"
47
+ ],
48
+ "search_type": "equal_or",
49
+ "$$hashKey": "object:17557",
50
+ "selected_search_option_variable": "Value"
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,125 @@
1
+ categories-list {
2
+ margin-bottom: 60px;
3
+ .list_wrapper {
4
+ display: flex;
5
+ justify-content: center;
6
+ }
7
+ .categories-component {
8
+ display: flex;
9
+ justify-content: center;
10
+ .button {
11
+ display: none;
12
+ }
13
+ }
14
+ .categories_list {
15
+ display: flex;
16
+ background: #FFFFFF;
17
+ border: 1px solid rgba(17, 17, 17, 0.08);
18
+ box-shadow: 0px 4px 10px rgba(17, 17, 17, 0.02);
19
+ padding: 8px;
20
+ list-style: none;
21
+ li {
22
+ margin-right: 5px;
23
+ &:last-child {
24
+ margin-right: 0;
25
+ }
26
+ }
27
+ a {
28
+ display: block;
29
+ padding: 8px 16px;
30
+ font-size: 16px;
31
+ line-height: 24px;
32
+ color: #111111;
33
+ transition: all .2s ease;
34
+ }
35
+ li.active, li:hover {
36
+ a {
37
+ background: #0C6980;
38
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05);
39
+ color: #fff;
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ @media screen and (max-width: 900px) {
46
+ categories-list {
47
+ position: relative;
48
+ .categories-component {
49
+ position: absolute;
50
+ .button {
51
+ cursor: pointer;
52
+ display: inline-block;
53
+ border: 1px solid rgba(17, 17, 17, 0.08);
54
+ width: 165px;
55
+ padding: 8px;
56
+ border-bottom-color: transparent;
57
+ position: relative;
58
+ &::after {
59
+ content: "";
60
+ position: absolute;
61
+ top: calc(50% - 2px);
62
+ right: 10px;
63
+ width: 10px;
64
+ height: 10px;
65
+ transition: all 0.2s ease;
66
+ background-repeat: no-repeat;
67
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M13 1.5L7 7.5L1 1.5' stroke='%2300BFD6' stroke-width='2'/%3E%3C/svg%3E");
68
+ background-size: contain;
69
+ }
70
+ &.active::after {
71
+ top: calc(50% - 6px);
72
+ transform: rotate(180deg);
73
+ }
74
+ }
75
+ }
76
+ .container {
77
+ position: relative;
78
+ }
79
+ .categories_list {
80
+ flex-direction: column;
81
+ align-items: flex-start;
82
+ height: 100%;
83
+ width: 165px;
84
+ max-height: 0;
85
+ overflow: hidden;
86
+ transition: all .2s ease;
87
+ padding: 0;
88
+ li {
89
+ display: block;
90
+ width: 100%;
91
+ }
92
+ }
93
+ .list_wrapper {
94
+ position: absolute;
95
+ top: 36px;
96
+ left: 40px;
97
+ }
98
+ .button.active + .list_wrapper .categories_list {
99
+ max-height: 500px;
100
+ }
101
+ }
102
+ }
103
+
104
+ @media screen and (max-width: 600px) {
105
+ categories-list .list_wrapper {
106
+ left: 15px;
107
+ }
108
+ }
109
+ @media screen and (max-width: 460px) {
110
+ categories-list {
111
+ margin-bottom: 20px !important;
112
+ .categories-component {
113
+ position: static;
114
+ .button {
115
+ width: 100%;
116
+ }
117
+ }
118
+ .list_wrapper {
119
+ width: calc(100% - 30px);
120
+ }
121
+ .categories_list {
122
+ width: 100%;
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,89 @@
1
+ <section class="comments">
2
+ <div class="container">
3
+ <div class="title">Share your thoughts in the comments below!</div>
4
+ <div class="like_subtitle">Have any ideas or suggestions about the article or website? Feel free to write it.</div>
5
+ <form class="comment__form" onsubmit="sendForm()">
6
+ <input type="text" name="name" placeholder="Name" required>
7
+ <input type="email" name="email" placeholder="Email address">
8
+ <textarea required name="text" cols="30" rows="10" placeholder="Comment"></textarea>
9
+ <div class="checkbox">
10
+ <input type="checkbox" name="save" id="save">
11
+ <label for="save">Save my name and email in this browser for the next time I comment.</label>
12
+ </div>
13
+ <button type="submit">Post Comment</button>
14
+ <span class="success"></span>
15
+ </form>
16
+ ${comments.length > 0 ? `
17
+ <h2>Comments</h2>
18
+ ` : ''}
19
+ <div class="comments__wrapper">
20
+ ${
21
+ comments.reduce((acc, comment, index) => {
22
+ return acc + `
23
+ <div itemprop="comment" itemscope="" itemtype="https://schema.org/Comment" data-id="${comment.id}" class="comments__item">
24
+ <div class="wrapper">
25
+ <div class="image">
26
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#00BFD6" d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm7.753 18.305c-.261-.586-.789-.991-1.871-1.241-2.293-.529-4.428-.993-3.393-2.945 3.145-5.942.833-9.119-2.489-9.119-3.388 0-5.644 3.299-2.489 9.119 1.066 1.964-1.148 2.427-3.393 2.945-1.084.25-1.608.658-1.867 1.246-1.405-1.723-2.251-3.919-2.251-6.31 0-5.514 4.486-10 10-10s10 4.486 10 10c0 2.389-.845 4.583-2.247 6.305z"></path></svg>
27
+ </div>
28
+ <div class="main">
29
+ <div class="top">
30
+ <div class="top_left">
31
+ <div class="name_email">
32
+ <span itemprop="creator" class="name">${comment.name}</span>
33
+ <span class="email">(${comment.email})</span>
34
+ </div>
35
+ <div class="bottom">
36
+ <span itemprop="datePublished" datetime="${new Date(Number(comment.date)).toLocaleDateString('uk')}" class="date">${new Date(Number(comment.date)).toLocaleDateString('uk')}</span>
37
+ </div>
38
+ </div>
39
+ <div class="top_right">
40
+ <span class="desktop reply" onclick="addCommentForm()">Reply</span>
41
+ </div>
42
+ </div>
43
+ <p itemprop="text" class="comment_content">
44
+ ${comment.text}
45
+ </p>
46
+ <div class="mobile_wrapper">
47
+ <span class="mobile reply" onclick="addCommentForm()">Reply</span>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ ${comment.replies.length ? `
53
+ ${
54
+ comment.replies.reduce((acc, reply, index) => {
55
+ return acc + `
56
+ <div itemprop="comment" itemscope="" itemtype="https://schema.org/Comment" data-id="${comment.id}" class="comments__item reply">
57
+ <div class="wrapper">
58
+ <div class="image">
59
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#00BFD6" d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm7.753 18.305c-.261-.586-.789-.991-1.871-1.241-2.293-.529-4.428-.993-3.393-2.945 3.145-5.942.833-9.119-2.489-9.119-3.388 0-5.644 3.299-2.489 9.119 1.066 1.964-1.148 2.427-3.393 2.945-1.084.25-1.608.658-1.867 1.246-1.405-1.723-2.251-3.919-2.251-6.31 0-5.514 4.486-10 10-10s10 4.486 10 10c0 2.389-.845 4.583-2.247 6.305z"></path></svg>
60
+ </div>
61
+ <div class="main">
62
+ <div class="top">
63
+ <div class="top_left">
64
+ <div class="name_email">
65
+ <span itemprop="creator" class="name">${reply.name}</span>
66
+ <span class="email">(${reply.email})</span>
67
+ </div>
68
+ <div class="bottom">
69
+ <span itemprop="datePublished" datetime="${new Date(Number(reply.date)).toLocaleDateString('uk')}" class="date">${new Date(Number(reply.date)).toLocaleDateString('uk')}</span>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <p itemprop="text" class="comment_content">
74
+ ${reply.text}
75
+ </p>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ `
80
+ }, '')
81
+ }
82
+ ` : ''}
83
+ `
84
+ },
85
+ '')
86
+ }
87
+ </div>
88
+ </div>
89
+ </section>