@wizishop/wizi-block 4.2.36-beta → 4.2.39-beta

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 (820) hide show
  1. package/bundles/wizishop-wizi-block.umd.js +6276 -5575
  2. package/bundles/wizishop-wizi-block.umd.js.map +1 -1
  3. package/esm2015/lib/components/blocks/blocks.component.js +29 -20
  4. package/esm2015/lib/components/components.module.js +14 -8
  5. package/esm2015/lib/components/configs/configs.component.js +26 -18
  6. package/esm2015/lib/components/container-block/container-block.component.js +19 -18
  7. package/esm2015/lib/components/previews/previews.component.js +23 -18
  8. package/esm2015/lib/dtos/apis/amplify/amplify-category.dto.js +1 -1
  9. package/esm2015/lib/dtos/apis/amplify/amplify-guide.dto.js +1 -1
  10. package/esm2015/lib/dtos/apis/amplify/amplify-media.dto.js +1 -1
  11. package/esm2015/lib/dtos/apis/amplify/amplify-paginated.dto.js +1 -1
  12. package/esm2015/lib/dtos/apis/amplify/amplify-product.dto.js +1 -1
  13. package/esm2015/lib/dtos/apis/catalogs/catalog-badges.dto.js +2 -1
  14. package/esm2015/lib/dtos/apis/catalogs/catalog-brand.dto.js +2 -1
  15. package/esm2015/lib/dtos/apis/catalogs/catalog-category.dto.js +2 -1
  16. package/esm2015/lib/dtos/apis/catalogs/catalog-facet-value.dto.js +2 -1
  17. package/esm2015/lib/dtos/apis/catalogs/catalog-facet.dto.js +2 -1
  18. package/esm2015/lib/dtos/apis/catalogs/catalog-image.dto.js +2 -1
  19. package/esm2015/lib/dtos/apis/catalogs/catalog-list.dto.js +2 -1
  20. package/esm2015/lib/dtos/apis/catalogs/catalog-price.dto.js +2 -1
  21. package/esm2015/lib/dtos/apis/catalogs/catalog-variant-option.dto.js +2 -1
  22. package/esm2015/lib/dtos/apis/catalogs/catalog-variant.dto.js +2 -1
  23. package/esm2015/lib/dtos/apis/catalogs/catalog.dto.js +2 -1
  24. package/esm2015/lib/dtos/apis/comments/comment-list.dto.js +2 -1
  25. package/esm2015/lib/dtos/apis/comments/comment.dto.js +2 -1
  26. package/esm2015/lib/dtos/apis/forms/form-detail.dto.js +1 -1
  27. package/esm2015/lib/dtos/apis/forms/form-list.dto.js +2 -1
  28. package/esm2015/lib/dtos/apis/maps/open-map.dto.js +1 -1
  29. package/esm2015/lib/dtos/blocks/amplify-product/amplify-product-zoom-more.dto.js +1 -1
  30. package/esm2015/lib/dtos/blocks/amplify-product/amplify-product-zoom-selected.dto.js +1 -1
  31. package/esm2015/lib/dtos/blocks/amplify-product/amplify-product-zoom-triple-column.dto.js +1 -1
  32. package/esm2015/lib/dtos/blocks/amplify-product/amplify-product-zoom.dto.js +1 -1
  33. package/esm2015/lib/dtos/blocks/amplify-products-list/amplify-products-list-classic.dto.js +1 -1
  34. package/esm2015/lib/dtos/blocks/amplify-products-list/amplify-products-list-selected.dto.js +1 -1
  35. package/esm2015/lib/dtos/blocks/amplify-products-list/amplify-products-list-simple.dto.js +1 -1
  36. package/esm2015/lib/dtos/blocks/code/code-html.dto.js +1 -1
  37. package/esm2015/lib/dtos/blocks/code/code-javascript.dto.js +1 -1
  38. package/esm2015/lib/dtos/blocks/code/code-stylesheet.dto.js +1 -1
  39. package/esm2015/lib/dtos/blocks/faq/faq-accordion.dto.js +1 -1
  40. package/esm2015/lib/dtos/blocks/faq/faq-frame.dto.js +1 -1
  41. package/esm2015/lib/dtos/blocks/faq/faq-list-icon.dto.js +1 -1
  42. package/esm2015/lib/dtos/blocks/faq/faq-simple-background.dto.js +1 -1
  43. package/esm2015/lib/dtos/blocks/faq/faq-simple.dto.js +1 -1
  44. package/esm2015/lib/dtos/blocks/faq/faq.dto.js +1 -1
  45. package/esm2015/lib/dtos/blocks/forms/forms-background.dto.js +1 -1
  46. package/esm2015/lib/dtos/blocks/forms/forms-imageleft.dto.js +1 -1
  47. package/esm2015/lib/dtos/blocks/forms/forms-imageright.dto.js +1 -1
  48. package/esm2015/lib/dtos/blocks/forms/forms-simple.dto.js +1 -1
  49. package/esm2015/lib/dtos/blocks/images/four-images-title.dto.js +1 -1
  50. package/esm2015/lib/dtos/blocks/images/images-banner.dto.js +1 -1
  51. package/esm2015/lib/dtos/blocks/images/images-big-and-double.dto.js +1 -1
  52. package/esm2015/lib/dtos/blocks/images/images-bigs-and-double-middle.dto.js +1 -1
  53. package/esm2015/lib/dtos/blocks/images/images-double.dto.js +1 -1
  54. package/esm2015/lib/dtos/blocks/images/images-quadruple-left-one-right.dto.js +1 -1
  55. package/esm2015/lib/dtos/blocks/images/images-quadruple.dto.js +1 -1
  56. package/esm2015/lib/dtos/blocks/images/images-simple.dto.js +1 -1
  57. package/esm2015/lib/dtos/blocks/images/images-triple.dto.js +1 -1
  58. package/esm2015/lib/dtos/blocks/images/two-images-title-text.dto.js +1 -1
  59. package/esm2015/lib/dtos/blocks/images-texts/images-texts-big-left-text-right.dto.js +1 -1
  60. package/esm2015/lib/dtos/blocks/images-texts/images-texts-big-right-text-left.dto.js +1 -1
  61. package/esm2015/lib/dtos/blocks/images-texts/images-texts-left-text-right.dto.js +1 -1
  62. package/esm2015/lib/dtos/blocks/images-texts/images-texts-one-text-one.dto.js +1 -1
  63. package/esm2015/lib/dtos/blocks/images-texts/images-texts-right-text-left.dto.js +1 -1
  64. package/esm2015/lib/dtos/blocks/images-texts/images-texts-small-left-text-right.dto.js +1 -1
  65. package/esm2015/lib/dtos/blocks/images-texts/images-texts-small-right-text-left.dto.js +1 -1
  66. package/esm2015/lib/dtos/blocks/images-texts/images-texts-text-one-text.dto.js +1 -1
  67. package/esm2015/lib/dtos/blocks/launch-videos/launch-videos-button.dto.js +1 -1
  68. package/esm2015/lib/dtos/blocks/launch-videos/launch-videos-buttontxt.dto.js +1 -1
  69. package/esm2015/lib/dtos/blocks/map/map-background-form-left.dto.js +1 -1
  70. package/esm2015/lib/dtos/blocks/map/map-background-form-right.dto.js +1 -1
  71. package/esm2015/lib/dtos/blocks/map/map-fullpage.dto.js +1 -1
  72. package/esm2015/lib/dtos/blocks/map/map-left-text.dto.js +1 -1
  73. package/esm2015/lib/dtos/blocks/map/map-right-text.dto.js +1 -1
  74. package/esm2015/lib/dtos/blocks/map/map-text-form.dto.js +1 -1
  75. package/esm2015/lib/dtos/blocks/newsletter/newsletter-aligned-center-background.dto.js +1 -1
  76. package/esm2015/lib/dtos/blocks/newsletter/newsletter-aligned-center-image.dto.js +1 -1
  77. package/esm2015/lib/dtos/blocks/newsletter/newsletter-center-image.dto.js +1 -1
  78. package/esm2015/lib/dtos/blocks/onboarding/forms-onboarding.do.js +1 -1
  79. package/esm2015/lib/dtos/blocks/parent-block.dto.js +1 -1
  80. package/esm2015/lib/dtos/blocks/product/product-zoom-complete-background.dto.js +1 -1
  81. package/esm2015/lib/dtos/blocks/product/product-zoom-complete-slider.dto.js +1 -1
  82. package/esm2015/lib/dtos/blocks/product/product-zoom-complete.dto.js +1 -1
  83. package/esm2015/lib/dtos/blocks/product/product-zoom-more.dto.js +1 -1
  84. package/esm2015/lib/dtos/blocks/product/product-zoom-selected.dto.js +1 -1
  85. package/esm2015/lib/dtos/blocks/product/product-zoom-simple.dto.js +1 -1
  86. package/esm2015/lib/dtos/blocks/product/product-zoom-triple-column.dto.js +1 -1
  87. package/esm2015/lib/dtos/blocks/product/product-zoom.dto.js +1 -1
  88. package/esm2015/lib/dtos/blocks/products-list/products-list-classic.dto.js +1 -1
  89. package/esm2015/lib/dtos/blocks/products-list/products-list-selected.dto.js +1 -1
  90. package/esm2015/lib/dtos/blocks/products-list/products-list-simple.dto.js +1 -1
  91. package/esm2015/lib/dtos/blocks/quotes/quotes-author.dto.js +1 -1
  92. package/esm2015/lib/dtos/blocks/quotes/quotes-simple-background.dto.js +1 -1
  93. package/esm2015/lib/dtos/blocks/quotes/quotes-simple.dto.js +1 -1
  94. package/esm2015/lib/dtos/blocks/rassurances/rassurances-quadruple-aligned.dto.js +1 -1
  95. package/esm2015/lib/dtos/blocks/rassurances/rassurances-quadruple-background.dto.js +1 -1
  96. package/esm2015/lib/dtos/blocks/rassurances/rassurances-triple-background.dto.js +1 -1
  97. package/esm2015/lib/dtos/blocks/reviews/reviews-simple.dto.js +1 -1
  98. package/esm2015/lib/dtos/blocks/reviews/reviews-waterfall.dto.js +1 -1
  99. package/esm2015/lib/dtos/blocks/separators/separator-simple.dto.js +1 -1
  100. package/esm2015/lib/dtos/blocks/sliders/sliders-double-imageright.dto.js +1 -1
  101. package/esm2015/lib/dtos/blocks/sliders/sliders-fullpage.dto.js +1 -1
  102. package/esm2015/lib/dtos/blocks/sliders/sliders-imageright.dto.js +1 -1
  103. package/esm2015/lib/dtos/blocks/sliders/sliders-leftnav.dto.js +1 -1
  104. package/esm2015/lib/dtos/blocks/sliders/sliders-with-banner.dto.js +1 -1
  105. package/esm2015/lib/dtos/blocks/socials/socials-like.dto.js +1 -1
  106. package/esm2015/lib/dtos/blocks/socials/socials-network.dto.js +1 -1
  107. package/esm2015/lib/dtos/blocks/socials/socials-page-complex.dto.js +1 -1
  108. package/esm2015/lib/dtos/blocks/socials/socials-page-simple.dto.js +1 -1
  109. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.dto.js +1 -1
  110. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-link.dto.js +1 -1
  111. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-rows-icon-text.dto.js +1 -1
  112. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-simple.dto.js +1 -1
  113. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.dto.js +1 -1
  114. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.dto.js +1 -1
  115. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-with-banner.dto.js +1 -1
  116. package/esm2015/lib/dtos/blocks/text-backgrounds/text-backgrounds-with-txt.dto.js +1 -1
  117. package/esm2015/lib/dtos/blocks/texts/texts-double-background.dto.js +1 -1
  118. package/esm2015/lib/dtos/blocks/texts/texts-double.dto.js +1 -1
  119. package/esm2015/lib/dtos/blocks/texts/texts-one-background.dto.js +1 -1
  120. package/esm2015/lib/dtos/blocks/texts/texts-one.dto.js +1 -1
  121. package/esm2015/lib/dtos/blocks/texts/texts-quadruple-background.dto.js +1 -1
  122. package/esm2015/lib/dtos/blocks/texts/texts-quadruple-numbers.dto.js +1 -1
  123. package/esm2015/lib/dtos/blocks/texts/texts-quadruple.dto.js +1 -1
  124. package/esm2015/lib/dtos/blocks/texts/texts-triple-background.dto.js +1 -1
  125. package/esm2015/lib/dtos/blocks/texts/texts-triple.dto.js +1 -1
  126. package/esm2015/lib/dtos/blocks/timer/timer-airport.dto.js +1 -1
  127. package/esm2015/lib/dtos/blocks/timer/timer-background.dto.js +1 -1
  128. package/esm2015/lib/dtos/blocks/timer/timer-clock.dto.js +1 -1
  129. package/esm2015/lib/dtos/blocks/timer/timer-multiple-img.dto.js +1 -1
  130. package/esm2015/lib/dtos/blocks/timer/timer-simple.dto.js +1 -1
  131. package/esm2015/lib/dtos/blocks/videos/videos-simple.dto.js +1 -1
  132. package/esm2015/lib/dtos/blocks/videos/videos-txt-content.dto.js +1 -1
  133. package/esm2015/lib/dtos/blocks/videos/videos-txt.dto.js +1 -1
  134. package/esm2015/lib/dtos/blocks/witness/about-block.dto.js +1 -1
  135. package/esm2015/lib/dtos/blocks/witness/witness-background-double.dto.js +1 -1
  136. package/esm2015/lib/dtos/blocks/witness/witness-background-one.dto.js +1 -1
  137. package/esm2015/lib/dtos/blocks/witness/witness-quadruple.dto.js +1 -1
  138. package/esm2015/lib/dtos/blocks/witness/witness-triple.dto.js +1 -1
  139. package/esm2015/lib/dtos/blocks/witness/witness-twice.dto.js +1 -1
  140. package/esm2015/lib/dtos/configs/apis/api.dto.js +1 -1
  141. package/esm2015/lib/dtos/configs/blocks/block-config.dto.js +1 -1
  142. package/esm2015/lib/dtos/configs/blocks/blocks-list.dto.js +2 -1
  143. package/esm2015/lib/dtos/configs/buttons/button.dto.js +1 -1
  144. package/esm2015/lib/dtos/configs/external/external-config.dto.js +1 -1
  145. package/esm2015/lib/dtos/configs/fonts/font-awesome.dto.js +1 -1
  146. package/esm2015/lib/dtos/configs/images/four-images-title-element.dto.js +1 -1
  147. package/esm2015/lib/dtos/configs/medias/image/font-or-media.dto.js +1 -1
  148. package/esm2015/lib/dtos/configs/medias/image/image-media-and-text.dto.js +1 -1
  149. package/esm2015/lib/dtos/configs/medias/image/image-media.dto.js +1 -1
  150. package/esm2015/lib/dtos/configs/medias/image/payment-or-media.dto.js +1 -1
  151. package/esm2015/lib/dtos/configs/medias/media-width-height.dto.js +1 -1
  152. package/esm2015/lib/dtos/configs/medias/media.dto.js +1 -1
  153. package/esm2015/lib/dtos/configs/medias/text/text-media.dto.js +1 -1
  154. package/esm2015/lib/dtos/configs/structures/structure-config.dto.js +1 -1
  155. package/esm2015/lib/dtos/configs/structures/structures-list.dto.js +1 -1
  156. package/esm2015/lib/dtos/configs/translations/translations.dto.js +1 -1
  157. package/esm2015/lib/dtos/configs/types/types.dto.js +1 -1
  158. package/esm2015/lib/dtos/configs/witness/about-element.dto.js +1 -1
  159. package/esm2015/lib/dtos/forms/forms.dto.js +1 -1
  160. package/esm2015/lib/dtos/utils/quill/crypted-link.dto.js +1 -1
  161. package/esm2015/lib/dtos/utils/quill/custom-link.dto.js +1 -1
  162. package/esm2015/lib/dtos/utils/quill/delta.dto.js +1 -1
  163. package/esm2015/lib/dtos/utils/quill/icon.dto.js +1 -1
  164. package/esm2015/lib/dtos/utils/quill/line-break.dto.js +1 -1
  165. package/esm2015/lib/dtos/utils/quill-html-editor/html-formatter.js +1 -1
  166. package/esm2015/lib/dtos/utils/quill-html-editor/logger.js +1 -1
  167. package/esm2015/lib/dtos/utils/quill-html-editor/options.js +2 -1
  168. package/esm2015/lib/dtos/utils/quill-html-editor/quill.htmlEditButton.js +1 -1
  169. package/esm2015/lib/services/blocks/amplify-product/amplify-product-zoom-more.service.js +9 -7
  170. package/esm2015/lib/services/blocks/amplify-product/amplify-product-zoom-selected.service.js +9 -7
  171. package/esm2015/lib/services/blocks/amplify-product/amplify-product-zoom-triple-column.service.js +9 -7
  172. package/esm2015/lib/services/blocks/amplify-product/amplify-product-zoom.service.js +9 -7
  173. package/esm2015/lib/services/blocks/amplify-products-list/amplify-products-list-classic.service.js +9 -7
  174. package/esm2015/lib/services/blocks/amplify-products-list/amplify-products-list-selected.service.js +9 -7
  175. package/esm2015/lib/services/blocks/amplify-products-list/amplify-products-list-simple.service.js +9 -7
  176. package/esm2015/lib/services/blocks/code/code-html.service.js +9 -7
  177. package/esm2015/lib/services/blocks/code/code-javascript.service.js +9 -7
  178. package/esm2015/lib/services/blocks/code/code-stylesheet.service.js +9 -7
  179. package/esm2015/lib/services/blocks/faq/faq-accordion.service.js +9 -7
  180. package/esm2015/lib/services/blocks/faq/faq-frame.service.js +9 -7
  181. package/esm2015/lib/services/blocks/faq/faq-list-icon.service.js +9 -7
  182. package/esm2015/lib/services/blocks/faq/faq-simple-background.service.js +9 -7
  183. package/esm2015/lib/services/blocks/faq/faq-simple.service.js +9 -7
  184. package/esm2015/lib/services/blocks/forms/forms-background.service.js +9 -7
  185. package/esm2015/lib/services/blocks/forms/forms-imageleft.service.js +9 -7
  186. package/esm2015/lib/services/blocks/forms/forms-imageright.service.js +9 -7
  187. package/esm2015/lib/services/blocks/forms/forms-simple.service.js +9 -7
  188. package/esm2015/lib/services/blocks/images/four-images-title.service.js +9 -7
  189. package/esm2015/lib/services/blocks/images/images-banner.service.js +9 -7
  190. package/esm2015/lib/services/blocks/images/images-big-and-double.service.js +9 -7
  191. package/esm2015/lib/services/blocks/images/images-bigs-and-double-middle.service.js +9 -7
  192. package/esm2015/lib/services/blocks/images/images-double.service.js +9 -7
  193. package/esm2015/lib/services/blocks/images/images-quadruple-left-one-right.service.js +9 -7
  194. package/esm2015/lib/services/blocks/images/images-quadruple.service.js +9 -7
  195. package/esm2015/lib/services/blocks/images/images-simple.service.js +9 -7
  196. package/esm2015/lib/services/blocks/images/images-triple.service.js +9 -7
  197. package/esm2015/lib/services/blocks/images/two-images-title-text.service.js +9 -7
  198. package/esm2015/lib/services/blocks/images-texts/images-texts-big-left-text-right.service.js +9 -7
  199. package/esm2015/lib/services/blocks/images-texts/images-texts-big-right-text-left.service.js +9 -7
  200. package/esm2015/lib/services/blocks/images-texts/images-texts-left-text-right.service.js +9 -7
  201. package/esm2015/lib/services/blocks/images-texts/images-texts-one-text-one.service.js +9 -7
  202. package/esm2015/lib/services/blocks/images-texts/images-texts-right-text-left.service.js +9 -7
  203. package/esm2015/lib/services/blocks/images-texts/images-texts-small-left-text-right.service.js +9 -7
  204. package/esm2015/lib/services/blocks/images-texts/images-texts-small-right-text-left.service.js +9 -7
  205. package/esm2015/lib/services/blocks/images-texts/images-texts-text-one-text.service.js +9 -7
  206. package/esm2015/lib/services/blocks/launch-videos/launch-videos-button.service.js +9 -7
  207. package/esm2015/lib/services/blocks/launch-videos/launch-videos-buttontxt.service.js +9 -7
  208. package/esm2015/lib/services/blocks/map/map-background-form-left.service.js +9 -7
  209. package/esm2015/lib/services/blocks/map/map-background-form-right.service.js +9 -7
  210. package/esm2015/lib/services/blocks/map/map-fullpage.service.js +9 -7
  211. package/esm2015/lib/services/blocks/map/map-left-text.service.js +9 -7
  212. package/esm2015/lib/services/blocks/map/map-right-text.service.js +9 -7
  213. package/esm2015/lib/services/blocks/map/map-text-form.service.js +9 -7
  214. package/esm2015/lib/services/blocks/newsletter/newsletter-aligned-center-background.service.js +9 -7
  215. package/esm2015/lib/services/blocks/newsletter/newsletter-aligned-center-image.service.js +9 -7
  216. package/esm2015/lib/services/blocks/newsletter/newsletter-center-image.service.js +9 -7
  217. package/esm2015/lib/services/blocks/onboarding/forms-onboarding.service.js +9 -7
  218. package/esm2015/lib/services/blocks/product/product-zoom-complete-background.service.js +9 -7
  219. package/esm2015/lib/services/blocks/product/product-zoom-complete-slider.service.js +9 -7
  220. package/esm2015/lib/services/blocks/product/product-zoom-complete.service.js +9 -7
  221. package/esm2015/lib/services/blocks/product/product-zoom-more.service.js +9 -7
  222. package/esm2015/lib/services/blocks/product/product-zoom-selected.service.js +9 -7
  223. package/esm2015/lib/services/blocks/product/product-zoom-simple.service.js +9 -7
  224. package/esm2015/lib/services/blocks/product/product-zoom-triple-column.service.js +9 -7
  225. package/esm2015/lib/services/blocks/product/product-zoom.service.js +9 -7
  226. package/esm2015/lib/services/blocks/products-list/products-list-classic.service.js +9 -7
  227. package/esm2015/lib/services/blocks/products-list/products-list-selected.service.js +9 -7
  228. package/esm2015/lib/services/blocks/products-list/products-list-simple.service.js +9 -7
  229. package/esm2015/lib/services/blocks/quotes/quotes-author.service.js +9 -7
  230. package/esm2015/lib/services/blocks/quotes/quotes-simple-background.service.js +9 -7
  231. package/esm2015/lib/services/blocks/quotes/quotes-simple.service.js +9 -7
  232. package/esm2015/lib/services/blocks/rassurances/rassurances-quadruple-aligned.service.js +9 -7
  233. package/esm2015/lib/services/blocks/rassurances/rassurances-quadruple-background.service.js +9 -7
  234. package/esm2015/lib/services/blocks/rassurances/rassurances-triple-background.service.js +9 -7
  235. package/esm2015/lib/services/blocks/reviews/reviews-simple.service.js +9 -7
  236. package/esm2015/lib/services/blocks/reviews/reviews-waterfall.service.js +9 -7
  237. package/esm2015/lib/services/blocks/separator/separator-simple.service.js +9 -7
  238. package/esm2015/lib/services/blocks/sliders/sliders-double-imageright.service.js +9 -7
  239. package/esm2015/lib/services/blocks/sliders/sliders-fullpage.service.js +9 -7
  240. package/esm2015/lib/services/blocks/sliders/sliders-imageright.service.js +9 -7
  241. package/esm2015/lib/services/blocks/sliders/sliders-leftnav.service.js +9 -7
  242. package/esm2015/lib/services/blocks/sliders/sliders-with-banner.service.js +9 -7
  243. package/esm2015/lib/services/blocks/socials/socials-like.service.js +9 -7
  244. package/esm2015/lib/services/blocks/socials/socials-network.service.js +9 -7
  245. package/esm2015/lib/services/blocks/socials/socials-page-complex.service.js +9 -7
  246. package/esm2015/lib/services/blocks/socials/socials-page-simple.service.js +9 -7
  247. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.service.js +9 -7
  248. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-link.service.js +9 -7
  249. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-simple.service.js +9 -7
  250. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.service.js +9 -7
  251. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.service.js +9 -7
  252. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-with-banner.service.js +9 -7
  253. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-with-txt.service.js +9 -7
  254. package/esm2015/lib/services/blocks/texts/texts-double-background.service.js +9 -7
  255. package/esm2015/lib/services/blocks/texts/texts-double.service.js +9 -7
  256. package/esm2015/lib/services/blocks/texts/texts-one-background.service.js +9 -7
  257. package/esm2015/lib/services/blocks/texts/texts-one.service.js +9 -7
  258. package/esm2015/lib/services/blocks/texts/texts-quadruple-background.service.js +9 -7
  259. package/esm2015/lib/services/blocks/texts/texts-quadruple-numbers.service.js +9 -7
  260. package/esm2015/lib/services/blocks/texts/texts-quadruple.service.js +9 -7
  261. package/esm2015/lib/services/blocks/texts/texts-triple-background.service.js +9 -7
  262. package/esm2015/lib/services/blocks/texts/texts-triple.service.js +9 -7
  263. package/esm2015/lib/services/blocks/timer/timer-airport.service.js +9 -7
  264. package/esm2015/lib/services/blocks/timer/timer-background.service.js +9 -7
  265. package/esm2015/lib/services/blocks/timer/timer-clock.service.js +9 -7
  266. package/esm2015/lib/services/blocks/timer/timer-multiple-img.service.js +9 -7
  267. package/esm2015/lib/services/blocks/timer/timer-simple.service.js +9 -7
  268. package/esm2015/lib/services/blocks/videos/videos-simple.service.js +9 -7
  269. package/esm2015/lib/services/blocks/videos/videos-txt-content.service.js +9 -7
  270. package/esm2015/lib/services/blocks/videos/videos-txt-left.service.js +9 -7
  271. package/esm2015/lib/services/blocks/videos/videos-txt.service.js +9 -7
  272. package/esm2015/lib/services/blocks/witness/about-block.service.js +9 -7
  273. package/esm2015/lib/services/blocks/witness/witness-background-double.service.js +9 -7
  274. package/esm2015/lib/services/blocks/witness/witness-background-one.service.js +9 -7
  275. package/esm2015/lib/services/blocks/witness/witness-quadruple.service.js +9 -7
  276. package/esm2015/lib/services/blocks/witness/witness-triple.service.js +9 -7
  277. package/esm2015/lib/services/blocks/witness/witness-twice.service.js +9 -7
  278. package/esm2015/lib/services/structures/amplify-product/amplify-product.service.js +9 -7
  279. package/esm2015/lib/services/structures/amplify-products-list/amplify-products-list.service.js +9 -7
  280. package/esm2015/lib/services/structures/code/code.service.js +9 -7
  281. package/esm2015/lib/services/structures/faq/faq.service.js +9 -7
  282. package/esm2015/lib/services/structures/forms/forms.service.js +9 -7
  283. package/esm2015/lib/services/structures/images/images.service.js +9 -7
  284. package/esm2015/lib/services/structures/images-texts/images-texts.service.js +9 -7
  285. package/esm2015/lib/services/structures/launch-videos/launch-videos.service.js +9 -7
  286. package/esm2015/lib/services/structures/map/map.service.js +9 -7
  287. package/esm2015/lib/services/structures/newsletter/newsletter.service.js +9 -7
  288. package/esm2015/lib/services/structures/onboarding/onboarding.service.js +9 -7
  289. package/esm2015/lib/services/structures/parent-structures.service.js +1 -1
  290. package/esm2015/lib/services/structures/product/product.service.js +9 -7
  291. package/esm2015/lib/services/structures/products-list/products-list.service.js +9 -7
  292. package/esm2015/lib/services/structures/quotes/quotes.service.js +9 -7
  293. package/esm2015/lib/services/structures/rassurances/rassurances.service.js +9 -7
  294. package/esm2015/lib/services/structures/reviews/reviews.service.js +9 -7
  295. package/esm2015/lib/services/structures/separator/separator.service.js +9 -7
  296. package/esm2015/lib/services/structures/sliders/sliders.service.js +9 -7
  297. package/esm2015/lib/services/structures/socials/socials.service.js +9 -7
  298. package/esm2015/lib/services/structures/text-backgrounds/text-backgrounds.service.js +9 -7
  299. package/esm2015/lib/services/structures/texts/texts.service.js +9 -7
  300. package/esm2015/lib/services/structures/timer/timer.service.js +9 -7
  301. package/esm2015/lib/services/structures/videos/videos.service.js +9 -7
  302. package/esm2015/lib/services/structures/witness/witness.service.js +9 -7
  303. package/esm2015/lib/services/utils/api.service.js +9 -10
  304. package/esm2015/lib/services/utils/config.service.js +9 -7
  305. package/esm2015/lib/services/utils/content.service.js +9 -7
  306. package/esm2015/lib/services/utils/currency.service.js +9 -10
  307. package/esm2015/lib/services/utils/expected-images.service.js +9 -8
  308. package/esm2015/lib/services/utils/external-config.service.js +9 -10
  309. package/esm2015/lib/services/utils/font-awesome.service.js +9 -8
  310. package/esm2015/lib/services/utils/injector.service.js +9 -7
  311. package/esm2015/lib/services/utils/media-connector.service.js +9 -7
  312. package/esm2015/lib/services/utils/quill.service.js +9 -7
  313. package/esm2015/lib/services/utils/structure-config.service.js +9 -7
  314. package/esm2015/lib/services/utils/translate-block.service.js +9 -10
  315. package/esm2015/lib/services/utils/vimeo.service.js +9 -7
  316. package/esm2015/lib/services/utils/youtube.service.js +9 -7
  317. package/esm2015/lib/services/wizi-block.service.js +9 -10
  318. package/esm2015/lib/shared/animations/list/animate-list-from-left.animation.js +1 -1
  319. package/esm2015/lib/shared/animations/list/animate-list-from-right.animation.js +1 -1
  320. package/esm2015/lib/shared/components/editorjs/editorjs.component.js +23 -18
  321. package/esm2015/lib/shared/components/editorjs/tools/inline/bold-tool.component.js +1 -1
  322. package/esm2015/lib/shared/components/editorjs/tools/inline/capitalize-tool.component.js +1 -1
  323. package/esm2015/lib/shared/components/editorjs/tools/inline/italic-tool.component.js +1 -1
  324. package/esm2015/lib/shared/components/editorjs/tools/inline/link-tool.component.js +1 -1
  325. package/esm2015/lib/shared/components/editorjs/tools/inline/strike-tool.component.js +1 -1
  326. package/esm2015/lib/shared/components/editorjs/tools/inline/subscript-tool.component.js +1 -1
  327. package/esm2015/lib/shared/components/editorjs/tools/inline/superscript-tool.component.js +1 -1
  328. package/esm2015/lib/shared/components/editorjs/tools/inline/text-background-color-tool.component.js +1 -1
  329. package/esm2015/lib/shared/components/editorjs/tools/inline/text-color-tool.component.js +1 -1
  330. package/esm2015/lib/shared/components/editorjs/tools/inline/text-size-tool.component.js +1 -1
  331. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/color-tool.component.js +1 -1
  332. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.js +8 -10
  333. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/text-tool.component.js +1 -1
  334. package/esm2015/lib/shared/components/editorjs/tools/inline/underline-tool.component.js +1 -1
  335. package/esm2015/lib/shared/components/editorjs/tools/paragraph/code-edit-tool.component.js +1 -1
  336. package/esm2015/lib/shared/components/editorjs/tools/paragraph/indent-tool.component.js +1 -1
  337. package/esm2015/lib/shared/components/editorjs/tools/paragraph/ordered-list-tool.component.js +1 -1
  338. package/esm2015/lib/shared/components/editorjs/tools/paragraph/outdent-tool.component.js +1 -1
  339. package/esm2015/lib/shared/components/editorjs/tools/paragraph/quote-tool.component.js +1 -1
  340. package/esm2015/lib/shared/components/editorjs/tools/paragraph/redo-tool.component.js +1 -1
  341. package/esm2015/lib/shared/components/editorjs/tools/paragraph/text-align-tool.component.js +1 -1
  342. package/esm2015/lib/shared/components/editorjs/tools/paragraph/text-type-tool.component.js +1 -1
  343. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.js +1 -1
  344. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/text-edition.component.js +13 -13
  345. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/text-tool.component.js +1 -1
  346. package/esm2015/lib/shared/components/editorjs/tools/paragraph/undo-tool.component.js +1 -1
  347. package/esm2015/lib/shared/components/editorjs/tools/paragraph/unordered-list-tool.component.js +1 -1
  348. package/esm2015/lib/shared/components/editorjs/tools/utils/colors.component.js +1 -1
  349. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-conversion.service.js +9 -8
  350. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.js +3 -2
  351. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-translation.service.js +9 -8
  352. package/esm2015/lib/shared/components/editorjs/tools/utils/i18n/en-i18n.component.js +1 -1
  353. package/esm2015/lib/shared/components/editorjs/tools/utils/i18n/fr-i18n.component.js +1 -1
  354. package/esm2015/lib/shared/components/editorjs/tools/utils/texts.component.js +1 -1
  355. package/esm2015/lib/shared/components/faq/faq.component.js +36 -20
  356. package/esm2015/lib/shared/components/loader/loader.component.js +11 -7
  357. package/esm2015/lib/shared/components/quill/quill.component.js +34 -22
  358. package/esm2015/lib/shared/components/shared-components.module.js +71 -18
  359. package/esm2015/lib/shared/components/small-loader/small-loader.component.js +11 -7
  360. package/esm2015/lib/shared/components/star/star.component.js +21 -14
  361. package/esm2015/lib/shared/components/structure-amplify-search-category/structure-amplify-search-category.component.js +29 -17
  362. package/esm2015/lib/shared/components/structure-amplify-search-product/structure-amplify-search-product.component.js +35 -19
  363. package/esm2015/lib/shared/components/structure-config/structure-config.component.js +28 -18
  364. package/esm2015/lib/shared/components/structure-config-checkbox/structure-config-checkbox.component.js +30 -19
  365. package/esm2015/lib/shared/components/structure-config-extend-input/structure-config-extended-input.component.js +47 -26
  366. package/esm2015/lib/shared/components/structure-config-font/structure-config-font.component.js +36 -22
  367. package/esm2015/lib/shared/components/structure-config-input/structure-config-input.component.js +36 -21
  368. package/esm2015/lib/shared/components/structure-config-payment/structure-config-payment.component.js +23 -16
  369. package/esm2015/lib/shared/components/structure-search-product/structure-search-product.component.js +29 -17
  370. package/esm2015/lib/shared/components/structure-select/structure-select.component.js +28 -16
  371. package/esm2015/lib/shared/components/structure-tools/structure-tools.component.js +31 -20
  372. package/esm2015/lib/shared/directives/auto-focus/auto-focus.directive.js +10 -9
  373. package/esm2015/lib/shared/directives/auto-hide/auto-hide.directive.js +18 -15
  374. package/esm2015/lib/shared/directives/get-size-image/get-size-image.directive.js +20 -16
  375. package/esm2015/lib/shared/directives/holdable/holdable.directive.js +21 -12
  376. package/esm2015/lib/shared/directives/pictures-template/pictures-template.directive.js +19 -16
  377. package/esm2015/lib/shared/directives/shared-directives.module.js +25 -9
  378. package/esm2015/lib/shared/directives/show-delete-button/show-delete-button.directive.js +16 -14
  379. package/esm2015/lib/shared/pipes/add-zero-for-timer/add-zero-for-timer.pipe.js +10 -6
  380. package/esm2015/lib/shared/pipes/answer-type/answer-type.pipe.js +10 -6
  381. package/esm2015/lib/shared/pipes/array-number/array-number.pipe.js +10 -6
  382. package/esm2015/lib/shared/pipes/check-payment-value/check-payment-value.pipe.js +10 -6
  383. package/esm2015/lib/shared/pipes/even-odd/even-odd.pipe.js +8 -4
  384. package/esm2015/lib/shared/pipes/img-path/img-path.pipe.js +11 -9
  385. package/esm2015/lib/shared/pipes/safe-style/safe-style.pipe.js +12 -10
  386. package/esm2015/lib/shared/pipes/safe-url/safe-url.pipe.js +11 -9
  387. package/esm2015/lib/shared/pipes/shared-pipes.module.js +33 -9
  388. package/esm2015/lib/shared/pipes/strip-tags/strip-tags.pipe.js +8 -4
  389. package/esm2015/lib/shared/pipes/tiny-color/tiny-color.pipe.js +10 -6
  390. package/esm2015/lib/shared/shared.module.js +61 -26
  391. package/esm2015/lib/structures/amplify-product/zoom/amplify-product-zoom.component.js +19 -11
  392. package/esm2015/lib/structures/amplify-product/zoom-more/amplify-product-zoom-more.component.js +19 -11
  393. package/esm2015/lib/structures/amplify-product/zoom-selected/amplify-product-zoom-selected.component.js +19 -11
  394. package/esm2015/lib/structures/amplify-product/zoom-triple-column/amplify-product-zoom-triple-column.component.js +19 -11
  395. package/esm2015/lib/structures/amplify-products-list/classic/amplify-products-list-classic.component.js +25 -14
  396. package/esm2015/lib/structures/amplify-products-list/selected/amplify-products-list-selected.component.js +25 -14
  397. package/esm2015/lib/structures/amplify-products-list/simple/amplify-products-list-simple.component.js +25 -14
  398. package/esm2015/lib/structures/code/code-html/code-html.component.js +14 -8
  399. package/esm2015/lib/structures/code/code-javascript/code-javascript.component.js +14 -8
  400. package/esm2015/lib/structures/code/code-stylesheet/code-stylesheet.component.js +14 -8
  401. package/esm2015/lib/structures/faq/accordion/faq-accordion.component.js +12 -8
  402. package/esm2015/lib/structures/faq/frame/faq-frame.component.js +12 -8
  403. package/esm2015/lib/structures/faq/list-icon/faq-list-icon.component.js +15 -8
  404. package/esm2015/lib/structures/faq/simple/faq-simple.component.js +12 -8
  405. package/esm2015/lib/structures/faq/simple-background/faq-simple-background.component.js +12 -8
  406. package/esm2015/lib/structures/forms/background/forms-background.component.js +18 -10
  407. package/esm2015/lib/structures/forms/imageleft/forms-imageleft.component.js +22 -10
  408. package/esm2015/lib/structures/forms/imageright/forms-imageright.component.js +22 -10
  409. package/esm2015/lib/structures/forms/simple/forms-simple.component.js +18 -10
  410. package/esm2015/lib/structures/images/banner/images-banner.component.js +19 -8
  411. package/esm2015/lib/structures/images/big-and-double/images-big-and-double.component.js +19 -8
  412. package/esm2015/lib/structures/images/bigs-and-double-middle/images-bigs-and-double-middle.component.js +19 -8
  413. package/esm2015/lib/structures/images/double/images-double.component.js +19 -8
  414. package/esm2015/lib/structures/images/four-images-title/four-images-title.component.js +21 -10
  415. package/esm2015/lib/structures/images/quadruple/images-quadruple.component.js +19 -8
  416. package/esm2015/lib/structures/images/quadruple-left-one-right/images-quadruple-left-one-right.component.js +19 -8
  417. package/esm2015/lib/structures/images/simple/images-simple.component.js +19 -8
  418. package/esm2015/lib/structures/images/triple/images-triple.component.js +19 -8
  419. package/esm2015/lib/structures/images/two-images-title-text/two-images-title-text.component.js +20 -8
  420. package/esm2015/lib/structures/images-texts/big-left-text-right/images-texts-big-left-text-right.component.js +20 -8
  421. package/esm2015/lib/structures/images-texts/big-right-text-left/images-texts-big-right-text-left.component.js +20 -8
  422. package/esm2015/lib/structures/images-texts/left-text-right/images-texts-left-text-right.component.js +20 -8
  423. package/esm2015/lib/structures/images-texts/one-text-one/images-texts-one-text-one.component.js +20 -8
  424. package/esm2015/lib/structures/images-texts/right-text-left/images-texts-right-text-left.component.js +20 -8
  425. package/esm2015/lib/structures/images-texts/small-left-text-right/images-texts-small-left-text-right.component.js +20 -8
  426. package/esm2015/lib/structures/images-texts/small-right-text-left/images-texts-small-right-text-left.component.js +20 -8
  427. package/esm2015/lib/structures/images-texts/text-one-text/images-texts-text-one-text.component.js +20 -8
  428. package/esm2015/lib/structures/launch-videos/button/launch-videos-button.component.js +17 -11
  429. package/esm2015/lib/structures/launch-videos/buttontxt/launch-videos-buttontxt.component.js +18 -11
  430. package/esm2015/lib/structures/loader-component.module.js +12 -7
  431. package/esm2015/lib/structures/map/background-form-left/map-background-form-left.component.js +63 -43
  432. package/esm2015/lib/structures/map/background-form-right/map-background-form-right.component.js +63 -43
  433. package/esm2015/lib/structures/map/fullpage/map-fullpage.component.js +61 -43
  434. package/esm2015/lib/structures/map/left-text/map-left-text.component.js +61 -41
  435. package/esm2015/lib/structures/map/right-text/map-right-text.component.js +61 -41
  436. package/esm2015/lib/structures/map/text-form/map-text-form.component.js +67 -44
  437. package/esm2015/lib/structures/newsletter/aligned-center-background/newsletter-aligned-center-background.component.js +13 -8
  438. package/esm2015/lib/structures/newsletter/aligned-center-image/newsletter-aligned-center-image.component.js +14 -8
  439. package/esm2015/lib/structures/newsletter/center-image/newsletter-center-image.component.js +15 -8
  440. package/esm2015/lib/structures/onboarding/onboarding/forms-onboarding.component.js +14 -8
  441. package/esm2015/lib/structures/product/zoom/product-zoom.component.js +20 -12
  442. package/esm2015/lib/structures/product/zoom-complete/product-zoom-complete.component.js +22 -12
  443. package/esm2015/lib/structures/product/zoom-complete-background/product-zoom-complete-background.component.js +23 -12
  444. package/esm2015/lib/structures/product/zoom-complete-slider/product-zoom-complete-slider.component.js +22 -12
  445. package/esm2015/lib/structures/product/zoom-more/product-zoom-more.component.js +20 -12
  446. package/esm2015/lib/structures/product/zoom-selected/product-zoom-selected.component.js +20 -12
  447. package/esm2015/lib/structures/product/zoom-simple/product-zoom-simple.component.js +21 -12
  448. package/esm2015/lib/structures/product/zoom-triple-column/product-zoom-triple-column.component.js +20 -12
  449. package/esm2015/lib/structures/products-list/classic/products-list-classic.component.js +26 -17
  450. package/esm2015/lib/structures/products-list/selected/products-list-selected.component.js +26 -16
  451. package/esm2015/lib/structures/products-list/simple/products-list-simple.component.js +26 -16
  452. package/esm2015/lib/structures/quotes/author/quotes-author.component.js +13 -8
  453. package/esm2015/lib/structures/quotes/simple/quotes-simple.component.js +12 -8
  454. package/esm2015/lib/structures/quotes/simple-background/quotes-simple-background.component.js +13 -8
  455. package/esm2015/lib/structures/rassurances/quadruple-aligned/rassurances-quadruple-aligned.component.js +14 -8
  456. package/esm2015/lib/structures/rassurances/quadruple-background/rassurances-quadruple-background.component.js +15 -8
  457. package/esm2015/lib/structures/rassurances/triple-background/rassurances-triple-background.component.js +15 -8
  458. package/esm2015/lib/structures/reviews/simple/reviews-simple.component.js +17 -10
  459. package/esm2015/lib/structures/reviews/waterfall/reviews-waterfall.component.js +19 -10
  460. package/esm2015/lib/structures/separator/separator-simple/separator-simple.component.js +12 -8
  461. package/esm2015/lib/structures/sliders/double-imageright/slider-double-imageright.component.js +20 -8
  462. package/esm2015/lib/structures/sliders/fullpage/slider-fullpage.component.js +20 -8
  463. package/esm2015/lib/structures/sliders/imageright/slider-imageright.component.js +20 -8
  464. package/esm2015/lib/structures/sliders/leftnav/slider-leftnav.component.js +20 -8
  465. package/esm2015/lib/structures/sliders/with-banner/slider-with-banner.component.js +21 -8
  466. package/esm2015/lib/structures/socials/like/socials-like.component.js +15 -8
  467. package/esm2015/lib/structures/socials/network/socials-network.component.js +14 -8
  468. package/esm2015/lib/structures/socials/page-complex/socials-page-complex.component.js +15 -8
  469. package/esm2015/lib/structures/socials/page-simple/socials-page-simple.component.js +15 -8
  470. package/esm2015/lib/structures/structures.component.js +9 -8
  471. package/esm2015/lib/structures/structures.module.js +256 -19
  472. package/esm2015/lib/structures/text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component.js +23 -10
  473. package/esm2015/lib/structures/text-backgrounds/link/text-backgrounds-link.component.js +22 -8
  474. package/esm2015/lib/structures/text-backgrounds/simple/text-backgrounds-simple.component.js +20 -8
  475. package/esm2015/lib/structures/text-backgrounds/three-rows-icon-text/text-backgrounds-three-rows-icon-text.component.js +23 -10
  476. package/esm2015/lib/structures/text-backgrounds/two-rows-icon-text/text-backgrounds-two-rows-icon-text.component.js +23 -10
  477. package/esm2015/lib/structures/text-backgrounds/with-banner/text-backgrounds-with-banner.component.js +20 -8
  478. package/esm2015/lib/structures/text-backgrounds/with-txt/text-backgrounds-with-txt.component.js +20 -8
  479. package/esm2015/lib/structures/texts/double/texts-double.component.js +18 -8
  480. package/esm2015/lib/structures/texts/double-background/texts-double-background.component.js +18 -8
  481. package/esm2015/lib/structures/texts/one/texts-one.component.js +18 -8
  482. package/esm2015/lib/structures/texts/one-background/texts-one-background.component.js +18 -8
  483. package/esm2015/lib/structures/texts/quadruple/texts-quadruple.component.js +18 -8
  484. package/esm2015/lib/structures/texts/quadruple-background/texts-quadruple-background.component.js +18 -8
  485. package/esm2015/lib/structures/texts/quadruple-numbers/texts-quadruple-numbers.component.js +14 -8
  486. package/esm2015/lib/structures/texts/triple/texts-triple.component.js +18 -8
  487. package/esm2015/lib/structures/texts/triple-background/texts-triple-background.component.js +18 -8
  488. package/esm2015/lib/structures/timer/airport/timer-airport.component.js +17 -10
  489. package/esm2015/lib/structures/timer/background/timer-background.component.js +19 -10
  490. package/esm2015/lib/structures/timer/clock/timer-clock.component.js +21 -13
  491. package/esm2015/lib/structures/timer/multiple-img/timer-multiple-img.component.js +22 -10
  492. package/esm2015/lib/structures/timer/simple/timer-simple.component.js +18 -10
  493. package/esm2015/lib/structures/videos/simple/videos-simple.component.js +17 -11
  494. package/esm2015/lib/structures/videos/txt/videos-txt.component.js +18 -11
  495. package/esm2015/lib/structures/videos/txt-content/videos-txt-content.component.js +18 -11
  496. package/esm2015/lib/structures/videos/txt-left/videos-txt-left.component.js +18 -11
  497. package/esm2015/lib/structures/witness/about-block/about-block.component.js +24 -11
  498. package/esm2015/lib/structures/witness/background-double/witness-background-double.component.js +20 -8
  499. package/esm2015/lib/structures/witness/background-one/witness-background-one.component.js +20 -8
  500. package/esm2015/lib/structures/witness/quadruple/witness-quadruple.component.js +20 -8
  501. package/esm2015/lib/structures/witness/triple/witness-triple.component.js +20 -8
  502. package/esm2015/lib/structures/witness/twice/witness-twice.component.js +20 -8
  503. package/esm2015/lib/wizi-block.component.js +48 -27
  504. package/esm2015/lib/wizi-block.module.js +47 -21
  505. package/esm2015/public_api.js +1 -1
  506. package/esm2015/wizishop-wizi-block.js +1 -282
  507. package/fesm2015/wizishop-wizi-block.js +5855 -4907
  508. package/fesm2015/wizishop-wizi-block.js.map +1 -1
  509. package/lib/components/blocks/blocks.component.d.ts +3 -0
  510. package/lib/components/components.module.d.ts +13 -0
  511. package/lib/components/configs/configs.component.d.ts +3 -0
  512. package/lib/components/container-block/container-block.component.d.ts +3 -0
  513. package/lib/components/previews/previews.component.d.ts +3 -0
  514. package/lib/services/blocks/amplify-product/amplify-product-zoom-more.service.d.ts +3 -0
  515. package/lib/services/blocks/amplify-product/amplify-product-zoom-selected.service.d.ts +3 -0
  516. package/lib/services/blocks/amplify-product/amplify-product-zoom-triple-column.service.d.ts +3 -0
  517. package/lib/services/blocks/amplify-product/amplify-product-zoom.service.d.ts +3 -0
  518. package/lib/services/blocks/amplify-products-list/amplify-products-list-classic.service.d.ts +3 -0
  519. package/lib/services/blocks/amplify-products-list/amplify-products-list-selected.service.d.ts +3 -0
  520. package/lib/services/blocks/amplify-products-list/amplify-products-list-simple.service.d.ts +3 -0
  521. package/lib/services/blocks/code/code-html.service.d.ts +3 -0
  522. package/lib/services/blocks/code/code-javascript.service.d.ts +3 -0
  523. package/lib/services/blocks/code/code-stylesheet.service.d.ts +3 -0
  524. package/lib/services/blocks/faq/faq-accordion.service.d.ts +3 -0
  525. package/lib/services/blocks/faq/faq-frame.service.d.ts +3 -0
  526. package/lib/services/blocks/faq/faq-list-icon.service.d.ts +3 -0
  527. package/lib/services/blocks/faq/faq-simple-background.service.d.ts +3 -0
  528. package/lib/services/blocks/faq/faq-simple.service.d.ts +3 -0
  529. package/lib/services/blocks/forms/forms-background.service.d.ts +3 -0
  530. package/lib/services/blocks/forms/forms-imageleft.service.d.ts +3 -0
  531. package/lib/services/blocks/forms/forms-imageright.service.d.ts +3 -0
  532. package/lib/services/blocks/forms/forms-simple.service.d.ts +3 -0
  533. package/lib/services/blocks/images/four-images-title.service.d.ts +3 -0
  534. package/lib/services/blocks/images/images-banner.service.d.ts +3 -0
  535. package/lib/services/blocks/images/images-big-and-double.service.d.ts +3 -0
  536. package/lib/services/blocks/images/images-bigs-and-double-middle.service.d.ts +3 -0
  537. package/lib/services/blocks/images/images-double.service.d.ts +3 -0
  538. package/lib/services/blocks/images/images-quadruple-left-one-right.service.d.ts +3 -0
  539. package/lib/services/blocks/images/images-quadruple.service.d.ts +3 -0
  540. package/lib/services/blocks/images/images-simple.service.d.ts +3 -0
  541. package/lib/services/blocks/images/images-triple.service.d.ts +3 -0
  542. package/lib/services/blocks/images/two-images-title-text.service.d.ts +3 -0
  543. package/lib/services/blocks/images-texts/images-texts-big-left-text-right.service.d.ts +3 -0
  544. package/lib/services/blocks/images-texts/images-texts-big-right-text-left.service.d.ts +3 -0
  545. package/lib/services/blocks/images-texts/images-texts-left-text-right.service.d.ts +3 -0
  546. package/lib/services/blocks/images-texts/images-texts-one-text-one.service.d.ts +3 -0
  547. package/lib/services/blocks/images-texts/images-texts-right-text-left.service.d.ts +3 -0
  548. package/lib/services/blocks/images-texts/images-texts-small-left-text-right.service.d.ts +3 -0
  549. package/lib/services/blocks/images-texts/images-texts-small-right-text-left.service.d.ts +3 -0
  550. package/lib/services/blocks/images-texts/images-texts-text-one-text.service.d.ts +3 -0
  551. package/lib/services/blocks/launch-videos/launch-videos-button.service.d.ts +3 -0
  552. package/lib/services/blocks/launch-videos/launch-videos-buttontxt.service.d.ts +3 -0
  553. package/lib/services/blocks/map/map-background-form-left.service.d.ts +3 -0
  554. package/lib/services/blocks/map/map-background-form-right.service.d.ts +3 -0
  555. package/lib/services/blocks/map/map-fullpage.service.d.ts +3 -0
  556. package/lib/services/blocks/map/map-left-text.service.d.ts +3 -0
  557. package/lib/services/blocks/map/map-right-text.service.d.ts +3 -0
  558. package/lib/services/blocks/map/map-text-form.service.d.ts +3 -0
  559. package/lib/services/blocks/newsletter/newsletter-aligned-center-background.service.d.ts +3 -0
  560. package/lib/services/blocks/newsletter/newsletter-aligned-center-image.service.d.ts +3 -0
  561. package/lib/services/blocks/newsletter/newsletter-center-image.service.d.ts +3 -0
  562. package/lib/services/blocks/onboarding/forms-onboarding.service.d.ts +3 -0
  563. package/lib/services/blocks/product/product-zoom-complete-background.service.d.ts +3 -0
  564. package/lib/services/blocks/product/product-zoom-complete-slider.service.d.ts +3 -0
  565. package/lib/services/blocks/product/product-zoom-complete.service.d.ts +3 -0
  566. package/lib/services/blocks/product/product-zoom-more.service.d.ts +3 -0
  567. package/lib/services/blocks/product/product-zoom-selected.service.d.ts +3 -0
  568. package/lib/services/blocks/product/product-zoom-simple.service.d.ts +3 -0
  569. package/lib/services/blocks/product/product-zoom-triple-column.service.d.ts +3 -0
  570. package/lib/services/blocks/product/product-zoom.service.d.ts +3 -0
  571. package/lib/services/blocks/products-list/products-list-classic.service.d.ts +3 -0
  572. package/lib/services/blocks/products-list/products-list-selected.service.d.ts +3 -0
  573. package/lib/services/blocks/products-list/products-list-simple.service.d.ts +3 -0
  574. package/lib/services/blocks/quotes/quotes-author.service.d.ts +3 -0
  575. package/lib/services/blocks/quotes/quotes-simple-background.service.d.ts +3 -0
  576. package/lib/services/blocks/quotes/quotes-simple.service.d.ts +3 -0
  577. package/lib/services/blocks/rassurances/rassurances-quadruple-aligned.service.d.ts +3 -0
  578. package/lib/services/blocks/rassurances/rassurances-quadruple-background.service.d.ts +3 -0
  579. package/lib/services/blocks/rassurances/rassurances-triple-background.service.d.ts +3 -0
  580. package/lib/services/blocks/reviews/reviews-simple.service.d.ts +3 -0
  581. package/lib/services/blocks/reviews/reviews-waterfall.service.d.ts +3 -0
  582. package/lib/services/blocks/separator/separator-simple.service.d.ts +3 -0
  583. package/lib/services/blocks/sliders/sliders-double-imageright.service.d.ts +3 -0
  584. package/lib/services/blocks/sliders/sliders-fullpage.service.d.ts +3 -0
  585. package/lib/services/blocks/sliders/sliders-imageright.service.d.ts +3 -0
  586. package/lib/services/blocks/sliders/sliders-leftnav.service.d.ts +3 -0
  587. package/lib/services/blocks/sliders/sliders-with-banner.service.d.ts +3 -0
  588. package/lib/services/blocks/socials/socials-like.service.d.ts +3 -0
  589. package/lib/services/blocks/socials/socials-network.service.d.ts +3 -0
  590. package/lib/services/blocks/socials/socials-page-complex.service.d.ts +3 -0
  591. package/lib/services/blocks/socials/socials-page-simple.service.d.ts +3 -0
  592. package/lib/services/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.service.d.ts +3 -0
  593. package/lib/services/blocks/text-backgrounds/text-backgrounds-link.service.d.ts +3 -0
  594. package/lib/services/blocks/text-backgrounds/text-backgrounds-simple.service.d.ts +3 -0
  595. package/lib/services/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.service.d.ts +3 -0
  596. package/lib/services/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.service.d.ts +3 -0
  597. package/lib/services/blocks/text-backgrounds/text-backgrounds-with-banner.service.d.ts +3 -0
  598. package/lib/services/blocks/text-backgrounds/text-backgrounds-with-txt.service.d.ts +3 -0
  599. package/lib/services/blocks/texts/texts-double-background.service.d.ts +3 -0
  600. package/lib/services/blocks/texts/texts-double.service.d.ts +3 -0
  601. package/lib/services/blocks/texts/texts-one-background.service.d.ts +3 -0
  602. package/lib/services/blocks/texts/texts-one.service.d.ts +3 -0
  603. package/lib/services/blocks/texts/texts-quadruple-background.service.d.ts +3 -0
  604. package/lib/services/blocks/texts/texts-quadruple-numbers.service.d.ts +3 -0
  605. package/lib/services/blocks/texts/texts-quadruple.service.d.ts +3 -0
  606. package/lib/services/blocks/texts/texts-triple-background.service.d.ts +3 -0
  607. package/lib/services/blocks/texts/texts-triple.service.d.ts +3 -0
  608. package/lib/services/blocks/timer/timer-airport.service.d.ts +3 -0
  609. package/lib/services/blocks/timer/timer-background.service.d.ts +3 -0
  610. package/lib/services/blocks/timer/timer-clock.service.d.ts +3 -0
  611. package/lib/services/blocks/timer/timer-multiple-img.service.d.ts +3 -0
  612. package/lib/services/blocks/timer/timer-simple.service.d.ts +3 -0
  613. package/lib/services/blocks/videos/videos-simple.service.d.ts +3 -0
  614. package/lib/services/blocks/videos/videos-txt-content.service.d.ts +3 -0
  615. package/lib/services/blocks/videos/videos-txt-left.service.d.ts +3 -0
  616. package/lib/services/blocks/videos/videos-txt.service.d.ts +3 -0
  617. package/lib/services/blocks/witness/about-block.service.d.ts +3 -0
  618. package/lib/services/blocks/witness/witness-background-double.service.d.ts +3 -0
  619. package/lib/services/blocks/witness/witness-background-one.service.d.ts +3 -0
  620. package/lib/services/blocks/witness/witness-quadruple.service.d.ts +3 -0
  621. package/lib/services/blocks/witness/witness-triple.service.d.ts +3 -0
  622. package/lib/services/blocks/witness/witness-twice.service.d.ts +3 -0
  623. package/lib/services/structures/amplify-product/amplify-product.service.d.ts +3 -0
  624. package/lib/services/structures/amplify-products-list/amplify-products-list.service.d.ts +3 -0
  625. package/lib/services/structures/code/code.service.d.ts +3 -0
  626. package/lib/services/structures/faq/faq.service.d.ts +3 -0
  627. package/lib/services/structures/forms/forms.service.d.ts +3 -0
  628. package/lib/services/structures/images/images.service.d.ts +3 -0
  629. package/lib/services/structures/images-texts/images-texts.service.d.ts +3 -0
  630. package/lib/services/structures/launch-videos/launch-videos.service.d.ts +3 -0
  631. package/lib/services/structures/map/map.service.d.ts +3 -0
  632. package/lib/services/structures/newsletter/newsletter.service.d.ts +3 -0
  633. package/lib/services/structures/onboarding/onboarding.service.d.ts +3 -0
  634. package/lib/services/structures/product/product.service.d.ts +3 -0
  635. package/lib/services/structures/products-list/products-list.service.d.ts +3 -0
  636. package/lib/services/structures/quotes/quotes.service.d.ts +3 -0
  637. package/lib/services/structures/rassurances/rassurances.service.d.ts +3 -0
  638. package/lib/services/structures/reviews/reviews.service.d.ts +3 -0
  639. package/lib/services/structures/separator/separator.service.d.ts +3 -0
  640. package/lib/services/structures/sliders/sliders.service.d.ts +3 -0
  641. package/lib/services/structures/socials/socials.service.d.ts +3 -0
  642. package/lib/services/structures/text-backgrounds/text-backgrounds.service.d.ts +3 -0
  643. package/lib/services/structures/texts/texts.service.d.ts +3 -0
  644. package/lib/services/structures/timer/timer.service.d.ts +3 -0
  645. package/lib/services/structures/videos/videos.service.d.ts +3 -0
  646. package/lib/services/structures/witness/witness.service.d.ts +3 -0
  647. package/lib/services/utils/api.service.d.ts +3 -0
  648. package/lib/services/utils/config.service.d.ts +3 -0
  649. package/lib/services/utils/content.service.d.ts +3 -0
  650. package/lib/services/utils/currency.service.d.ts +3 -0
  651. package/lib/services/utils/expected-images.service.d.ts +3 -0
  652. package/lib/services/utils/external-config.service.d.ts +3 -0
  653. package/lib/services/utils/font-awesome.service.d.ts +3 -0
  654. package/lib/services/utils/injector.service.d.ts +3 -0
  655. package/lib/services/utils/media-connector.service.d.ts +3 -0
  656. package/lib/services/utils/quill.service.d.ts +3 -0
  657. package/lib/services/utils/structure-config.service.d.ts +3 -0
  658. package/lib/services/utils/translate-block.service.d.ts +3 -0
  659. package/lib/services/utils/vimeo.service.d.ts +3 -0
  660. package/lib/services/utils/youtube.service.d.ts +3 -0
  661. package/lib/services/wizi-block.service.d.ts +3 -0
  662. package/lib/shared/components/editorjs/editorjs.component.d.ts +3 -0
  663. package/lib/shared/components/editorjs/tools/utils/editorjs-conversion.service.d.ts +3 -0
  664. package/lib/shared/components/editorjs/tools/utils/editorjs-translation.service.d.ts +3 -0
  665. package/lib/shared/components/faq/faq.component.d.ts +3 -0
  666. package/lib/shared/components/loader/loader.component.d.ts +3 -0
  667. package/lib/shared/components/quill/quill.component.d.ts +3 -0
  668. package/lib/shared/components/shared-components.module.d.ts +29 -0
  669. package/lib/shared/components/small-loader/small-loader.component.d.ts +3 -0
  670. package/lib/shared/components/star/star.component.d.ts +3 -0
  671. package/lib/shared/components/structure-amplify-search-category/structure-amplify-search-category.component.d.ts +3 -0
  672. package/lib/shared/components/structure-amplify-search-product/structure-amplify-search-product.component.d.ts +3 -0
  673. package/lib/shared/components/structure-config/structure-config.component.d.ts +3 -0
  674. package/lib/shared/components/structure-config-checkbox/structure-config-checkbox.component.d.ts +3 -0
  675. package/lib/shared/components/structure-config-extend-input/structure-config-extended-input.component.d.ts +3 -0
  676. package/lib/shared/components/structure-config-font/structure-config-font.component.d.ts +3 -0
  677. package/lib/shared/components/structure-config-input/structure-config-input.component.d.ts +3 -0
  678. package/lib/shared/components/structure-config-payment/structure-config-payment.component.d.ts +3 -0
  679. package/lib/shared/components/structure-search-product/structure-search-product.component.d.ts +3 -0
  680. package/lib/shared/components/structure-select/structure-select.component.d.ts +3 -0
  681. package/lib/shared/components/structure-tools/structure-tools.component.d.ts +3 -0
  682. package/lib/shared/directives/auto-focus/auto-focus.directive.d.ts +3 -0
  683. package/lib/shared/directives/auto-hide/auto-hide.directive.d.ts +3 -0
  684. package/lib/shared/directives/get-size-image/get-size-image.directive.d.ts +3 -0
  685. package/lib/shared/directives/holdable/holdable.directive.d.ts +3 -0
  686. package/lib/shared/directives/pictures-template/pictures-template.directive.d.ts +3 -0
  687. package/lib/shared/directives/shared-directives.module.d.ts +13 -0
  688. package/lib/shared/directives/show-delete-button/show-delete-button.directive.d.ts +3 -0
  689. package/lib/shared/pipes/add-zero-for-timer/add-zero-for-timer.pipe.d.ts +3 -0
  690. package/lib/shared/pipes/answer-type/answer-type.pipe.d.ts +3 -0
  691. package/lib/shared/pipes/array-number/array-number.pipe.d.ts +3 -0
  692. package/lib/shared/pipes/check-payment-value/check-payment-value.pipe.d.ts +3 -0
  693. package/lib/shared/pipes/even-odd/even-odd.pipe.d.ts +3 -0
  694. package/lib/shared/pipes/img-path/img-path.pipe.d.ts +3 -0
  695. package/lib/shared/pipes/safe-style/safe-style.pipe.d.ts +3 -0
  696. package/lib/shared/pipes/safe-url/safe-url.pipe.d.ts +3 -0
  697. package/lib/shared/pipes/shared-pipes.module.d.ts +17 -0
  698. package/lib/shared/pipes/strip-tags/strip-tags.pipe.d.ts +3 -0
  699. package/lib/shared/pipes/tiny-color/tiny-color.pipe.d.ts +3 -0
  700. package/lib/shared/shared.module.d.ts +13 -0
  701. package/lib/structures/amplify-product/zoom/amplify-product-zoom.component.d.ts +3 -0
  702. package/lib/structures/amplify-product/zoom-more/amplify-product-zoom-more.component.d.ts +3 -0
  703. package/lib/structures/amplify-product/zoom-selected/amplify-product-zoom-selected.component.d.ts +3 -0
  704. package/lib/structures/amplify-product/zoom-triple-column/amplify-product-zoom-triple-column.component.d.ts +3 -0
  705. package/lib/structures/amplify-products-list/classic/amplify-products-list-classic.component.d.ts +3 -0
  706. package/lib/structures/amplify-products-list/selected/amplify-products-list-selected.component.d.ts +3 -0
  707. package/lib/structures/amplify-products-list/simple/amplify-products-list-simple.component.d.ts +3 -0
  708. package/lib/structures/code/code-html/code-html.component.d.ts +3 -0
  709. package/lib/structures/code/code-javascript/code-javascript.component.d.ts +3 -0
  710. package/lib/structures/code/code-stylesheet/code-stylesheet.component.d.ts +3 -0
  711. package/lib/structures/faq/accordion/faq-accordion.component.d.ts +3 -0
  712. package/lib/structures/faq/frame/faq-frame.component.d.ts +3 -0
  713. package/lib/structures/faq/list-icon/faq-list-icon.component.d.ts +3 -0
  714. package/lib/structures/faq/simple/faq-simple.component.d.ts +3 -0
  715. package/lib/structures/faq/simple-background/faq-simple-background.component.d.ts +3 -0
  716. package/lib/structures/forms/background/forms-background.component.d.ts +3 -0
  717. package/lib/structures/forms/imageleft/forms-imageleft.component.d.ts +3 -0
  718. package/lib/structures/forms/imageright/forms-imageright.component.d.ts +3 -0
  719. package/lib/structures/forms/simple/forms-simple.component.d.ts +3 -0
  720. package/lib/structures/images/banner/images-banner.component.d.ts +3 -0
  721. package/lib/structures/images/big-and-double/images-big-and-double.component.d.ts +3 -0
  722. package/lib/structures/images/bigs-and-double-middle/images-bigs-and-double-middle.component.d.ts +3 -0
  723. package/lib/structures/images/double/images-double.component.d.ts +3 -0
  724. package/lib/structures/images/four-images-title/four-images-title.component.d.ts +3 -0
  725. package/lib/structures/images/quadruple/images-quadruple.component.d.ts +3 -0
  726. package/lib/structures/images/quadruple-left-one-right/images-quadruple-left-one-right.component.d.ts +3 -0
  727. package/lib/structures/images/simple/images-simple.component.d.ts +3 -0
  728. package/lib/structures/images/triple/images-triple.component.d.ts +3 -0
  729. package/lib/structures/images/two-images-title-text/two-images-title-text.component.d.ts +3 -0
  730. package/lib/structures/images-texts/big-left-text-right/images-texts-big-left-text-right.component.d.ts +3 -0
  731. package/lib/structures/images-texts/big-right-text-left/images-texts-big-right-text-left.component.d.ts +3 -0
  732. package/lib/structures/images-texts/left-text-right/images-texts-left-text-right.component.d.ts +3 -0
  733. package/lib/structures/images-texts/one-text-one/images-texts-one-text-one.component.d.ts +3 -0
  734. package/lib/structures/images-texts/right-text-left/images-texts-right-text-left.component.d.ts +3 -0
  735. package/lib/structures/images-texts/small-left-text-right/images-texts-small-left-text-right.component.d.ts +3 -0
  736. package/lib/structures/images-texts/small-right-text-left/images-texts-small-right-text-left.component.d.ts +3 -0
  737. package/lib/structures/images-texts/text-one-text/images-texts-text-one-text.component.d.ts +3 -0
  738. package/lib/structures/launch-videos/button/launch-videos-button.component.d.ts +3 -0
  739. package/lib/structures/launch-videos/buttontxt/launch-videos-buttontxt.component.d.ts +3 -0
  740. package/lib/structures/loader-component.module.d.ts +4 -0
  741. package/lib/structures/map/background-form-left/map-background-form-left.component.d.ts +9 -8
  742. package/lib/structures/map/background-form-right/map-background-form-right.component.d.ts +9 -8
  743. package/lib/structures/map/fullpage/map-fullpage.component.d.ts +8 -7
  744. package/lib/structures/map/left-text/map-left-text.component.d.ts +8 -7
  745. package/lib/structures/map/right-text/map-right-text.component.d.ts +8 -7
  746. package/lib/structures/map/text-form/map-text-form.component.d.ts +9 -8
  747. package/lib/structures/newsletter/aligned-center-background/newsletter-aligned-center-background.component.d.ts +3 -0
  748. package/lib/structures/newsletter/aligned-center-image/newsletter-aligned-center-image.component.d.ts +3 -0
  749. package/lib/structures/newsletter/center-image/newsletter-center-image.component.d.ts +3 -0
  750. package/lib/structures/onboarding/onboarding/forms-onboarding.component.d.ts +3 -0
  751. package/lib/structures/product/zoom/product-zoom.component.d.ts +3 -0
  752. package/lib/structures/product/zoom-complete/product-zoom-complete.component.d.ts +3 -0
  753. package/lib/structures/product/zoom-complete-background/product-zoom-complete-background.component.d.ts +3 -0
  754. package/lib/structures/product/zoom-complete-slider/product-zoom-complete-slider.component.d.ts +3 -0
  755. package/lib/structures/product/zoom-more/product-zoom-more.component.d.ts +3 -0
  756. package/lib/structures/product/zoom-selected/product-zoom-selected.component.d.ts +3 -0
  757. package/lib/structures/product/zoom-simple/product-zoom-simple.component.d.ts +3 -0
  758. package/lib/structures/product/zoom-triple-column/product-zoom-triple-column.component.d.ts +3 -0
  759. package/lib/structures/products-list/classic/products-list-classic.component.d.ts +3 -0
  760. package/lib/structures/products-list/selected/products-list-selected.component.d.ts +3 -0
  761. package/lib/structures/products-list/simple/products-list-simple.component.d.ts +3 -0
  762. package/lib/structures/quotes/author/quotes-author.component.d.ts +3 -0
  763. package/lib/structures/quotes/simple/quotes-simple.component.d.ts +3 -0
  764. package/lib/structures/quotes/simple-background/quotes-simple-background.component.d.ts +3 -0
  765. package/lib/structures/rassurances/quadruple-aligned/rassurances-quadruple-aligned.component.d.ts +3 -0
  766. package/lib/structures/rassurances/quadruple-background/rassurances-quadruple-background.component.d.ts +3 -0
  767. package/lib/structures/rassurances/triple-background/rassurances-triple-background.component.d.ts +3 -0
  768. package/lib/structures/reviews/simple/reviews-simple.component.d.ts +3 -0
  769. package/lib/structures/reviews/waterfall/reviews-waterfall.component.d.ts +3 -0
  770. package/lib/structures/separator/separator-simple/separator-simple.component.d.ts +3 -0
  771. package/lib/structures/sliders/double-imageright/slider-double-imageright.component.d.ts +3 -0
  772. package/lib/structures/sliders/fullpage/slider-fullpage.component.d.ts +3 -0
  773. package/lib/structures/sliders/imageright/slider-imageright.component.d.ts +3 -0
  774. package/lib/structures/sliders/leftnav/slider-leftnav.component.d.ts +3 -0
  775. package/lib/structures/sliders/with-banner/slider-with-banner.component.d.ts +3 -0
  776. package/lib/structures/socials/like/socials-like.component.d.ts +3 -0
  777. package/lib/structures/socials/network/socials-network.component.d.ts +3 -0
  778. package/lib/structures/socials/page-complex/socials-page-complex.component.d.ts +3 -0
  779. package/lib/structures/socials/page-simple/socials-page-simple.component.d.ts +3 -0
  780. package/lib/structures/structures.component.d.ts +3 -0
  781. package/lib/structures/structures.module.d.ts +122 -2
  782. package/lib/structures/text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component.d.ts +3 -0
  783. package/lib/structures/text-backgrounds/link/text-backgrounds-link.component.d.ts +3 -0
  784. package/lib/structures/text-backgrounds/simple/text-backgrounds-simple.component.d.ts +3 -0
  785. package/lib/structures/text-backgrounds/three-rows-icon-text/text-backgrounds-three-rows-icon-text.component.d.ts +3 -0
  786. package/lib/structures/text-backgrounds/two-rows-icon-text/text-backgrounds-two-rows-icon-text.component.d.ts +3 -0
  787. package/lib/structures/text-backgrounds/with-banner/text-backgrounds-with-banner.component.d.ts +3 -0
  788. package/lib/structures/text-backgrounds/with-txt/text-backgrounds-with-txt.component.d.ts +3 -0
  789. package/lib/structures/texts/double/texts-double.component.d.ts +3 -0
  790. package/lib/structures/texts/double-background/texts-double-background.component.d.ts +3 -0
  791. package/lib/structures/texts/one/texts-one.component.d.ts +3 -0
  792. package/lib/structures/texts/one-background/texts-one-background.component.d.ts +3 -0
  793. package/lib/structures/texts/quadruple/texts-quadruple.component.d.ts +3 -0
  794. package/lib/structures/texts/quadruple-background/texts-quadruple-background.component.d.ts +3 -0
  795. package/lib/structures/texts/quadruple-numbers/texts-quadruple-numbers.component.d.ts +3 -0
  796. package/lib/structures/texts/triple/texts-triple.component.d.ts +3 -0
  797. package/lib/structures/texts/triple-background/texts-triple-background.component.d.ts +3 -0
  798. package/lib/structures/timer/airport/timer-airport.component.d.ts +3 -0
  799. package/lib/structures/timer/background/timer-background.component.d.ts +3 -0
  800. package/lib/structures/timer/clock/timer-clock.component.d.ts +3 -0
  801. package/lib/structures/timer/multiple-img/timer-multiple-img.component.d.ts +3 -0
  802. package/lib/structures/timer/simple/timer-simple.component.d.ts +3 -0
  803. package/lib/structures/videos/simple/videos-simple.component.d.ts +3 -0
  804. package/lib/structures/videos/txt/videos-txt.component.d.ts +3 -0
  805. package/lib/structures/videos/txt-content/videos-txt-content.component.d.ts +3 -0
  806. package/lib/structures/videos/txt-left/videos-txt-left.component.d.ts +3 -0
  807. package/lib/structures/witness/about-block/about-block.component.d.ts +3 -0
  808. package/lib/structures/witness/background-double/witness-background-double.component.d.ts +3 -0
  809. package/lib/structures/witness/background-one/witness-background-one.component.d.ts +3 -0
  810. package/lib/structures/witness/quadruple/witness-quadruple.component.d.ts +3 -0
  811. package/lib/structures/witness/triple/witness-triple.component.d.ts +3 -0
  812. package/lib/structures/witness/twice/witness-twice.component.d.ts +3 -0
  813. package/lib/wizi-block.component.d.ts +3 -0
  814. package/lib/wizi-block.module.d.ts +14 -0
  815. package/package.json +8 -5
  816. package/wizi-block.scss +22307 -22315
  817. package/wizishop-wizi-block.d.ts +1 -281
  818. package/bundles/wizishop-wizi-block.umd.min.js +0 -2
  819. package/bundles/wizishop-wizi-block.umd.min.js.map +0 -1
  820. package/wizishop-wizi-block.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../projects/wizi-block/src/lib/services/utils/media-connector.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/translations/translations.dto.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/wizi-block/src/lib/dtos/configs/blocks/block-config.dto.ts","../../../../projects/wizi-block/src/lib/services/utils/injector.service.ts","../../../../projects/wizi-block/src/lib/services/structures/parent-structures.service.ts","../../../../projects/wizi-block/src/lib/services/utils/translate-block.service.ts","../../../../projects/wizi-block/src/lib/dtos/forms/forms.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/parent-block.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/sliders/sliders-fullpage.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/sliders/sliders-fullpage.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/sliders/sliders-leftnav.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/sliders/sliders-leftnav.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/sliders/sliders-imageright.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/sliders/sliders-imageright.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/sliders/sliders-double-imageright.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/sliders/sliders-double-imageright.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/separators/separator-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/separator/separator-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/code/code-html.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/code/code-html.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-fullpage.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-fullpage.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/media.dto.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/image/font-or-media.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-left-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-left-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-right-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-right-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-text-form.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-text-form.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-background-form-left.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-background-form-left.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/map/map-background-form-right.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/map/map-background-form-right.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/timer/timer-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/timer/timer-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/timer/timer-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/timer/timer-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/timer/timer-airport.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/timer/timer-airport.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/timer/timer-clock.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/timer/timer-clock.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/timer/timer-multiple-img.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/timer/timer-multiple-img.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/quotes/quotes-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/quotes/quotes-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/quotes/quotes-author.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/quotes/quotes-author.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/quotes/quotes-simple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/quotes/quotes-simple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/reviews/reviews-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/reviews/reviews-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/reviews/reviews-waterfall.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/reviews/reviews-waterfall.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/buttons/button.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/witness-twice.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/witness-twice.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/witness-triple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/witness-triple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/witness-quadruple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/witness-quadruple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/witness-background-one.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/witness-background-one.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/witness-background-double.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/witness-background-double.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/newsletter/newsletter-aligned-center-image.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/newsletter/newsletter-aligned-center-image.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/newsletter/newsletter-aligned-center-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/newsletter/newsletter-aligned-center-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/newsletter/newsletter-center-image.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/newsletter/newsletter-center-image.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/rassurances/rassurances-triple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/rassurances/rassurances-triple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/rassurances/rassurances-quadruple-aligned.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/rassurances/rassurances-quadruple-aligned.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/rassurances/rassurances-quadruple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/rassurances/rassurances-quadruple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/socials/socials-like.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/socials/socials-like.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/socials/socials-network.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/socials/socials-network.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/products-list/products-list-classic.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/products-list/products-list-classic.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/products-list/products-list-selected.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/products-list/products-list-selected.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/products-list/products-list-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/products-list/products-list-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-big-left-text-right.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-big-left-text-right.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-big-right-text-left.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-big-right-text-left.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-left-text-right.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-left-text-right.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-one-text-one.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-one-text-one.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-right-text-left.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-right-text-left.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-small-left-text-right.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-small-left-text-right.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-small-right-text-left.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-small-right-text-left.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images-texts/images-texts-text-one-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images-texts/images-texts-text-one-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/four-images-title.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/four-images-title.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-double.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-double.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-triple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-triple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-quadruple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-quadruple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-quadruple-left-one-right.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-quadruple-left-one-right.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-big-and-double.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-big-and-double.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/images-bigs-and-double-middle.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-bigs-and-double-middle.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-one.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-one.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-one-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-one-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-double.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-double.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-double-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-double-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-triple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-triple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-triple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-triple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-quadruple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-quadruple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-quadruple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-quadruple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/forms/forms-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/forms/forms-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/forms/forms-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/forms/forms-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/forms/forms-imageleft.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/forms/forms-imageleft.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/forms/forms-imageright.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/forms/forms-imageright.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-with-txt.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-with-txt.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-with-banner.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-with-banner.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/videos/videos-simple.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/launch-videos/launch-videos-button.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/launch-videos/launch-videos-button.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/launch-videos/launch-videos-buttontxt.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/launch-videos/launch-videos-buttontxt.service.ts","../../../../projects/wizi-block/src/lib/services/blocks/videos/videos-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/videos/videos-txt.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/videos/videos-txt.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/videos/videos-txt-content.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/videos/videos-txt-content.service.ts","../../../../projects/wizi-block/src/lib/services/blocks/videos/videos-txt-left.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/code/code-javascript.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/code/code-javascript.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/code/code-stylesheet.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/code/code-stylesheet.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/socials/socials-page-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/socials/socials-page-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/socials/socials-page-complex.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/socials/socials-page-complex.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-selected.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-selected.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-more.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-more.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/image/payment-or-media.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-complete.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-complete.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-complete-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-complete-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-complete-slider.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-complete-slider.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-product/amplify-product-zoom.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-product/amplify-product-zoom.service.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-product/amplify-product-zoom-more.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-product/amplify-product-zoom-selected.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-product/amplify-product-zoom-selected.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-products-list/amplify-products-list-classic.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-products-list/amplify-products-list-classic.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-products-list/amplify-products-list-selected.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-products-list/amplify-products-list-selected.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-products-list/amplify-products-list-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-products-list/amplify-products-list-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/product/product-zoom-triple-column.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/product/product-zoom-triple-column.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/amplify-product/amplify-product-zoom-triple-column.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/amplify-product/amplify-product-zoom-triple-column.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/texts/texts-quadruple-numbers.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/texts/texts-quadruple-numbers.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/witness/about-block.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/witness/about-block.service.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/images-banner.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq-simple.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/faq/faq-simple.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq-simple-background.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/faq/faq-simple-background.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-link.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-link.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq-frame.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/faq/faq-frame.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq-accordion.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/faq/faq-accordion.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/faq/faq-list-icon.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/faq/faq-list-icon.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/image/image-media.dto.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/images/two-images-title-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/images/two-images-title-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/onboarding/forms-onboarding.do.ts","../../../../projects/wizi-block/src/lib/services/blocks/onboarding/forms-onboarding.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.service.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/sliders/sliders-with-banner.dto.ts","../../../../projects/wizi-block/src/lib/services/blocks/sliders/sliders-with-banner.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/blocks/blocks-list.dto.ts","../../../../projects/wizi-block/src/lib/services/structures/sliders/sliders.service.ts","../../../../projects/wizi-block/src/lib/services/structures/separator/separator.service.ts","../../../../projects/wizi-block/src/lib/services/structures/code/code.service.ts","../../../../projects/wizi-block/src/lib/services/structures/map/map.service.ts","../../../../projects/wizi-block/src/lib/services/structures/timer/timer.service.ts","../../../../projects/wizi-block/src/lib/services/structures/quotes/quotes.service.ts","../../../../projects/wizi-block/src/lib/services/structures/reviews/reviews.service.ts","../../../../projects/wizi-block/src/lib/services/structures/witness/witness.service.ts","../../../../projects/wizi-block/src/lib/services/structures/newsletter/newsletter.service.ts","../../../../projects/wizi-block/src/lib/services/structures/rassurances/rassurances.service.ts","../../../../projects/wizi-block/src/lib/services/structures/socials/socials.service.ts","../../../../projects/wizi-block/src/lib/services/structures/products-list/products-list.service.ts","../../../../projects/wizi-block/src/lib/services/structures/images-texts/images-texts.service.ts","../../../../projects/wizi-block/src/lib/services/structures/images/images.service.ts","../../../../projects/wizi-block/src/lib/services/structures/texts/texts.service.ts","../../../../projects/wizi-block/src/lib/services/structures/text-backgrounds/text-backgrounds.service.ts","../../../../projects/wizi-block/src/lib/services/structures/forms/forms.service.ts","../../../../projects/wizi-block/src/lib/services/structures/launch-videos/launch-videos.service.ts","../../../../projects/wizi-block/src/lib/services/structures/videos/videos.service.ts","../../../../projects/wizi-block/src/lib/services/structures/product/product.service.ts","../../../../projects/wizi-block/src/lib/services/structures/amplify-product/amplify-product.service.ts","../../../../projects/wizi-block/src/lib/services/structures/amplify-products-list/amplify-products-list.service.ts","../../../../projects/wizi-block/src/lib/services/structures/faq/faq.service.ts","../../../../projects/wizi-block/src/lib/services/structures/onboarding/onboarding.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/structures/structures-list.dto.ts","../../../../projects/wizi-block/src/lib/dtos/configs/structures/structure-config.dto.ts","../../../../projects/wizi-block/src/lib/services/wizi-block.service.ts","../../../../projects/wizi-block/src/lib/dtos/configs/external/external-config.dto.ts","../../../../projects/wizi-block/src/lib/dtos/configs/apis/api.dto.ts","../../../../projects/wizi-block/src/lib/dtos/configs/types/types.dto.ts","../../../../projects/wizi-block/src/lib/services/utils/config.service.ts","../../../../projects/wizi-block/src/lib/services/utils/content.service.ts","../../../../projects/wizi-block/src/lib/shared/animations/list/animate-list-from-right.animation.ts","../../../../projects/wizi-block/src/lib/shared/animations/list/animate-list-from-left.animation.ts","../../../../projects/wizi-block/src/lib/services/utils/api.service.ts","../../../../projects/wizi-block/src/lib/services/utils/external-config.service.ts","../../../../projects/wizi-block/src/lib/wizi-block.component.ts","../../../../projects/wizi-block/src/lib/services/utils/structure-config.service.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config/structure-config.component.ts","../../../../projects/wizi-block/src/lib/services/utils/expected-images.service.ts","../../../../projects/wizi-block/src/lib/structures/structures.component.ts","../../../../projects/wizi-block/src/lib/structures/sliders/fullpage/slider-fullpage.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-tools/structure-tools.component.ts","../../../../projects/wizi-block/src/lib/shared/pipes/safe-url/safe-url.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/safe-style/safe-style.pipe.ts","../../../../projects/wizi-block/src/lib/dtos/apis/forms/form-detail.dto.ts","../../../../projects/wizi-block/src/lib/shared/pipes/answer-type/answer-type.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/tiny-color/tiny-color.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/array-number/array-number.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/even-odd/even-odd.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/add-zero-for-timer/add-zero-for-timer.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/strip-tags/strip-tags.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/check-payment-value/check-payment-value.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/img-path/img-path.pipe.ts","../../../../projects/wizi-block/src/lib/shared/pipes/shared-pipes.module.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config-input/structure-config-input.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config-checkbox/structure-config-checkbox.component.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill-html-editor/html-formatter.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill-html-editor/quill.htmlEditButton.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill-html-editor/logger.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill/custom-link.dto.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill/crypted-link.dto.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill/icon.dto.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill/line-break.dto.ts","../../../../projects/wizi-block/src/lib/services/utils/quill.service.ts","../../../../projects/wizi-block/src/lib/dtos/utils/quill/delta.dto.ts","../../../../projects/wizi-block/src/lib/shared/components/quill/quill.component.ts","../../../../projects/wizi-block/src/lib/shared/directives/auto-focus/auto-focus.directive.ts","../../../../projects/wizi-block/src/lib/shared/directives/auto-hide/auto-hide.directive.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/media-width-height.dto.ts","../../../../projects/wizi-block/src/lib/shared/directives/get-size-image/get-size-image.directive.ts","../../../../projects/wizi-block/src/lib/shared/directives/pictures-template/pictures-template.directive.ts","../../../../projects/wizi-block/src/lib/shared/directives/holdable/holdable.directive.ts","../../../../projects/wizi-block/src/lib/shared/directives/show-delete-button/show-delete-button.directive.ts","../../../../projects/wizi-block/src/lib/shared/directives/shared-directives.module.ts","../../../../projects/wizi-block/src/lib/shared/components/loader/loader.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-select/structure-select.component.ts","../../../../projects/wizi-block/src/lib/dtos/configs/fonts/font-awesome.dto.ts","../../../../projects/wizi-block/src/lib/services/utils/font-awesome.service.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config-font/structure-config-font.component.ts","../../../../projects/wizi-block/src/lib/shared/components/star/star.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-search-product/structure-search-product.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config-extend-input/structure-config-extended-input.component.ts","../../../../projects/wizi-block/src/lib/shared/components/small-loader/small-loader.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-config-payment/structure-config-payment.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-amplify-search-product/structure-amplify-search-product.component.ts","../../../../projects/wizi-block/src/lib/shared/components/structure-amplify-search-category/structure-amplify-search-category.component.ts","../../../../projects/wizi-block/src/lib/shared/components/faq/faq.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/strike-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/subscript-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/superscript-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/bold-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/italic-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/underline-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/capitalize-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/editorjs-translation.service.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/colors.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/tool-type/color-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/text-color-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/text-background-color-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/tool-type/text-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/texts.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/text-type-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/i18n/fr-i18n.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/i18n/en-i18n.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/text-align-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/unordered-list-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/ordered-list-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/quote-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/link-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/indent-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/outdent-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/tool-type/text-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/inline/text-size-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/tool-type/text-edition.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/code-edit-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/undo-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/paragraph/redo-tool.component.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/tools/utils/editorjs-conversion.service.ts","../../../../projects/wizi-block/src/lib/shared/components/editorjs/editorjs.component.ts","../../../../projects/wizi-block/src/lib/shared/components/shared-components.module.ts","../../../../projects/wizi-block/src/lib/shared/shared.module.ts","../../../../projects/wizi-block/src/lib/structures/separator/separator-simple/separator-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/code/code-javascript/code-javascript.component.ts","../../../../projects/wizi-block/src/lib/structures/code/code-html/code-html.component.ts","../../../../projects/wizi-block/src/lib/structures/code/code-stylesheet/code-stylesheet.component.ts","../../../../projects/wizi-block/src/lib/structures/sliders/leftnav/slider-leftnav.component.ts","../../../../projects/wizi-block/src/lib/structures/sliders/imageright/slider-imageright.component.ts","../../../../projects/wizi-block/src/lib/structures/sliders/double-imageright/slider-double-imageright.component.ts","../../../../projects/wizi-block/src/lib/services/utils/youtube.service.ts","../../../../projects/wizi-block/src/lib/services/utils/vimeo.service.ts","../../../../projects/wizi-block/src/lib/structures/videos/txt/videos-txt.component.ts","../../../../projects/wizi-block/src/lib/structures/videos/txt-content/videos-txt-content.component.ts","../../../../projects/wizi-block/src/lib/structures/videos/simple/videos-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/videos/txt-left/videos-txt-left.component.ts","../../../../projects/wizi-block/src/lib/structures/launch-videos/button/launch-videos-button.component.ts","../../../../projects/wizi-block/src/lib/structures/launch-videos/buttontxt/launch-videos-buttontxt.component.ts","../../../../projects/wizi-block/src/lib/structures/images/banner/images-banner.component.ts","../../../../projects/wizi-block/src/lib/structures/images/simple/images-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/images/double/images-double.component.ts","../../../../projects/wizi-block/src/lib/structures/images/triple/images-triple.component.ts","../../../../projects/wizi-block/src/lib/structures/images/quadruple/images-quadruple.component.ts","../../../../projects/wizi-block/src/lib/structures/images/quadruple-left-one-right/images-quadruple-left-one-right.component.ts","../../../../projects/wizi-block/src/lib/structures/images/big-and-double/images-big-and-double.component.ts","../../../../projects/wizi-block/src/lib/structures/images/bigs-and-double-middle/images-bigs-and-double-middle.component.ts","../../../../projects/wizi-block/src/lib/dtos/configs/images/four-images-title-element.dto.ts","../../../../projects/wizi-block/src/lib/structures/images/four-images-title/four-images-title.component.ts","../../../../projects/wizi-block/src/lib/structures/images/two-images-title-text/two-images-title-text.component.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/simple/text-backgrounds-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/with-txt/text-backgrounds-with-txt.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/big-left-text-right/images-texts-big-left-text-right.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/big-right-text-left/images-texts-big-right-text-left.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/left-text-right/images-texts-left-text-right.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/right-text-left/images-texts-right-text-left.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/one-text-one/images-texts-one-text-one.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/text-one-text/images-texts-text-one-text.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/small-left-text-right/images-texts-small-left-text-right.component.ts","../../../../projects/wizi-block/src/lib/structures/images-texts/small-right-text-left/images-texts-small-right-text-left.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/one/texts-one.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/one-background/texts-one-background.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/double/texts-double.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/double-background/texts-double-background.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/triple/texts-triple.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/triple-background/texts-triple-background.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/quadruple/texts-quadruple.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/quadruple-background/texts-quadruple-background.component.ts","../../../../projects/wizi-block/src/lib/structures/forms/simple/forms-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/forms/background/forms-background.component.ts","../../../../projects/wizi-block/src/lib/structures/forms/imageleft/forms-imageleft.component.ts","../../../../projects/wizi-block/src/lib/structures/forms/imageright/forms-imageright.component.ts","../../../../projects/wizi-block/src/lib/structures/socials/like/socials-like.component.ts","../../../../projects/wizi-block/src/lib/structures/socials/page-simple/socials-page-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/socials/page-complex/socials-page-complex.component.ts","../../../../projects/wizi-block/src/lib/structures/socials/network/socials-network.component.ts","../../../../projects/wizi-block/src/lib/services/utils/currency.service.ts","../../../../projects/wizi-block/src/lib/structures/products-list/classic/products-list-classic.component.ts","../../../../projects/wizi-block/src/lib/structures/products-list/selected/products-list-selected.component.ts","../../../../projects/wizi-block/src/lib/structures/products-list/simple/products-list-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/rassurances/triple-background/rassurances-triple-background.component.ts","../../../../projects/wizi-block/src/lib/structures/rassurances/quadruple-aligned/rassurances-quadruple-aligned.component.ts","../../../../projects/wizi-block/src/lib/structures/rassurances/quadruple-background/rassurances-quadruple-background.component.ts","../../../../projects/wizi-block/src/lib/structures/newsletter/aligned-center-image/newsletter-aligned-center-image.component.ts","../../../../projects/wizi-block/src/lib/structures/newsletter/aligned-center-background/newsletter-aligned-center-background.component.ts","../../../../projects/wizi-block/src/lib/structures/newsletter/center-image/newsletter-center-image.component.ts","../../../../projects/wizi-block/src/lib/structures/witness/twice/witness-twice.component.ts","../../../../projects/wizi-block/src/lib/structures/witness/triple/witness-triple.component.ts","../../../../projects/wizi-block/src/lib/structures/witness/quadruple/witness-quadruple.component.ts","../../../../projects/wizi-block/src/lib/structures/witness/background-one/witness-background-one.component.ts","../../../../projects/wizi-block/src/lib/structures/witness/background-double/witness-background-double.component.ts","../../../../projects/wizi-block/src/lib/structures/reviews/simple/reviews-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/reviews/waterfall/reviews-waterfall.component.ts","../../../../projects/wizi-block/src/lib/structures/quotes/simple/quotes-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/quotes/author/quotes-author.component.ts","../../../../projects/wizi-block/src/lib/structures/quotes/simple-background/quotes-simple-background.component.ts","../../../../projects/wizi-block/src/lib/structures/map/fullpage/map-fullpage.component.ts","../../../../projects/wizi-block/src/lib/structures/map/left-text/map-left-text.component.ts","../../../../projects/wizi-block/src/lib/structures/map/right-text/map-right-text.component.ts","../../../../projects/wizi-block/src/lib/dtos/apis/maps/open-map.dto.ts","../../../../projects/wizi-block/src/lib/structures/map/text-form/map-text-form.component.ts","../../../../projects/wizi-block/src/lib/structures/map/background-form-left/map-background-form-left.component.ts","../../../../projects/wizi-block/src/lib/structures/map/background-form-right/map-background-form-right.component.ts","../../../../projects/wizi-block/src/lib/structures/timer/simple/timer-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/timer/background/timer-background.component.ts","../../../../projects/wizi-block/src/lib/structures/timer/clock/timer-clock.component.ts","../../../../projects/wizi-block/src/lib/structures/timer/airport/timer-airport.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom/product-zoom.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-selected/product-zoom-selected.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-more/product-zoom-more.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-complete/product-zoom-complete.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-complete-slider/product-zoom-complete-slider.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-simple/product-zoom-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-complete-background/product-zoom-complete-background.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-product/zoom/amplify-product-zoom.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-product/zoom-more/amplify-product-zoom-more.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-product/zoom-selected/amplify-product-zoom-selected.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-products-list/simple/amplify-products-list-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-products-list/selected/amplify-products-list-selected.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-products-list/classic/amplify-products-list-classic.component.ts","../../../../projects/wizi-block/src/lib/structures/loader-component.module.ts","../../../../projects/wizi-block/src/lib/structures/timer/multiple-img/timer-multiple-img.component.ts","../../../../projects/wizi-block/src/lib/structures/product/zoom-triple-column/product-zoom-triple-column.component.ts","../../../../projects/wizi-block/src/lib/structures/amplify-product/zoom-triple-column/amplify-product-zoom-triple-column.component.ts","../../../../projects/wizi-block/src/lib/structures/texts/quadruple-numbers/texts-quadruple-numbers.component.ts","../../../../projects/wizi-block/src/lib/dtos/configs/witness/about-element.dto.ts","../../../../projects/wizi-block/src/lib/structures/witness/about-block/about-block.component.ts","../../../../projects/wizi-block/src/lib/structures/faq/simple/faq-simple.component.ts","../../../../projects/wizi-block/src/lib/structures/faq/simple-background/faq-simple-background.component.ts","../../../../projects/wizi-block/src/lib/dtos/configs/medias/image/image-media-and-text.dto.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/link/text-backgrounds-link.component.ts","../../../../projects/wizi-block/src/lib/structures/faq/frame/faq-frame.component.ts","../../../../projects/wizi-block/src/lib/structures/faq/accordion/faq-accordion.component.ts","../../../../projects/wizi-block/src/lib/structures/faq/list-icon/faq-list-icon.component.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/with-banner/text-backgrounds-with-banner.component.ts","../../../../projects/wizi-block/src/lib/structures/onboarding/onboarding/forms-onboarding.component.ts","../../../../projects/wizi-block/src/lib/dtos/blocks/text-backgrounds/text-backgrounds-rows-icon-text.dto.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/three-rows-icon-text/text-backgrounds-three-rows-icon-text.component.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component.ts","../../../../projects/wizi-block/src/lib/structures/text-backgrounds/two-rows-icon-text/text-backgrounds-two-rows-icon-text.component.ts","../../../../projects/wizi-block/src/lib/structures/sliders/with-banner/slider-with-banner.component.ts","../../../../projects/wizi-block/src/lib/structures/structures.module.ts","../../../../projects/wizi-block/src/lib/components/blocks/blocks.component.ts","../../../../projects/wizi-block/src/lib/components/configs/configs.component.ts","../../../../projects/wizi-block/src/lib/components/previews/previews.component.ts","../../../../projects/wizi-block/src/lib/components/container-block/container-block.component.ts","../../../../projects/wizi-block/src/lib/components/components.module.ts","../../../../projects/wizi-block/src/lib/wizi-block.module.ts"],"names":["MediaConnectorService","this","currentUuid","askImageSource","Subject","askImageDone","asObservable","returnedImageSource","returnedImageDone","Object","defineProperty","prototype","_image","value","next","bindEventImage","bindReturnedImage","askImage","uuid","mediaDto","Injectable","args","providedIn","list_component","header","footer","structure","config","select_component","doc_component","types","TranslationStructureDto","blocks","TranslationBlockDto","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__extends","__","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__values","o","s","m","i","__read","r","ar","error","__spread","arguments","concat","BlockConfigDto","type","name","image","_name","_type","InjectorService","Injector","ParentStructuresService","getComponents","blockConfigDtos","keys","map","objectKey","get","text","TranslateBlockService","translateService","translateProperties","block","_this","forEach","property","test","instant","TranslateService","FORM_TYPE_TEXT","FORM_TYPE_NUMBER","FORM_TYPE_CHECKBOX","FORM_TYPE_TAG","FORM_TYPE_COLOR","FORM_NAME_MARGIN","FORM_NAME_MARGIN_TOP","FORM_NAME_AMPLIFY_TYPE","FORM_NAME_APP_ID","FORM_NAME_IMAGE_URL","FORM_NAME_IMAGE_WIDTH","FORM_NAME_IMAGE","FORM_NAME_ICON","FORM_NAME_PAYMENT","FORM_NAME_ICON_ADDRESS","FORM_NAME_ICON_PHONE","FORM_NAME_ICON_EMAIL","FORM_NAME_IMAGE_RIGHT","FORM_NAME_ICON_RIGHT","FORM_NAME_ICON_COLOR_RIGHT","FORM_NAME_ICON_LINK_RIGHT","FORM_NAME_ICON_TARGET_RIGHT","FORM_NAME_IMAGE_LEFT","FORM_NAME_COORDINATE_X","FORM_NAME_COORDINATE_Y","FORM_NAME_ICON_LEFT","FORM_NAME_TEXT_BACKGROUND_LINK","FORM_NAME_TEXT_BACKGROUND","FORM_NAME_ICON_COLOR","FORM_NAME_ICON_COLOR_LEFT","FORM_NAME_ICON_LINK_LEFT","FORM_NAME_ICON_TARGET_LEFT","FORM_NAME_ICON_MIDDLE_LEFT","FORM_NAME_ICON_COLOR_MIDDLE_LEFT","FORM_NAME_ICON_LINK_MIDDLE_LEFT","FORM_NAME_ICON_TARGET_MIDDLE_LEFT","FORM_NAME_ICON_MIDDLE_RIGHT","FORM_NAME_ICON_COLOR_MIDDLE_RIGHT","FORM_NAME_ICON_LINK_MIDDLE_RIGHT","FORM_NAME_ICON_TARGET_MIDDLE_RIGHT","FORM_NAME_ICON_MIDDLE_TOP","FORM_NAME_ICON_COLOR_MIDDLE_TOP","FORM_NAME_ICON_MIDDLE_BOTTOM","FORM_NAME_ICON_BOTTOM_LEFT","FORM_NAME_ICON_BOTTOM_RIGHT","FORM_NAME_ICON_COLOR_BOTTOM_LEFT","FORM_NAME_ICON_COLOR_BOTTOM_RIGHT","FORM_NAME_PAYMENT_OR_MEDIA","FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM","FORM_NAME_TIME","FORM_NAME_DOTS","FORM_NAME_FULLPAGE","FORM_NAME_TEXT_CENTER","FORM_NAME_SLIDER","FORM_NAME_CONTROL","FORM_NAME_AUTOPLAY","FORM_NAME_MUTE","FORM_NAME_LOOP","FORM_NAME_LINK","FORM_NAME_URL","FORM_NAME_URL_LEFT","FORM_NAME_URL_RIGHT","FORM_NAME_TEXT","FORM_NAME_TEXT_LEFT","FORM_NAME_TEXT_RIGHT","FORM_NAME_TYPE_VIDEO","FORM_NAME_TYPE_PRODUCT","FORM_NAME_AMPLIFY_CATEGORY","FORM_NAME_LIST_PRODUCT","FORM_NAME_NBLIGNE","FORM_NAME_ID_PRODUCT","FORM_NAME_TITLE","FORM_NAME_COLOR_BUTTON","FORM_NAME_BACKGROUND_COLOR_BUTTON","FORM_NAME_ADDRESS","FORM_NAME_PHONE","FORM_NAME_EMAIL","FORM_NAME_AUTHOR","FORM_NAME_SHOW_TITLE","FORM_NAME_TITLE_MIDDLE_RIGHT","FORM_NAME_TITLE_MIDDLE_LEFT","FORM_NAME_TITLE_LEFT","FORM_NAME_TITLE_RIGHT","FORM_NAME_CONTENT","FORM_NAME_PLACEHOLDER","FORM_NAME_CONTENT_LEFT","FORM_NAME_CONTENT_RIGHT","FORM_NAME_CONTENT_MIDDLE_RIGHT","FORM_NAME_CONTENT_MIDDLE_BOTTOM","FORM_NAME_CONTENT_MIDDLE_LEFT","FORM_NAME_CONTENT_MIDDLE_TOP","FORM_NAME_CONTENT_BOTTOM_LEFT","FORM_NAME_CONTENT_BOTTOM_RIGHT","FORM_NAME_COLOR","FORM_NAME_PADDING","FORM_NAME_BACKGROUND_COLOR","FORM_NAME_BACKGROUND_COLOR_SECONDARY","FORM_NAME_HREF","FORM_NAME_TARGET","FORM_NAME_TEXT_COLOR","FORM_NAME_STAR_COLOR","FORM_NAME_SECONDARY_COLOR","FORM_NAME_STAR_SECONDARY_COLOR","FORM_NAME_COLOR_LEFT","FORM_NAME_COLOR_RIGHT","FORM_NAME_COLOR_MIDDLE_LEFT","FORM_NAME_COLOR_MIDDLE_RIGHT","FORM_NAME_WIDTH","FORM_NAME_HEIGHT","FORM_NAME_BORDER_STYLE","FORM_NAME_BORDER_COLOR","FORM_NAME_BUTTON","FORM_NAME_BUTTON_LEFT","FORM_NAME_BUTTON_MIDDLE_LEFT","FORM_NAME_BUTTON_RIGHT","FORM_NAME_BUTTON_MIDDLE_RIGHT","FORM_NAME_BUTTON_TEXT","FORM_NAME_URL_TARGET","FORM_NAME_FACEBOOK","FORM_NAME_TWITTER","FORM_NAME_INSTAGRAM","FORM_NAME_PINTEREST","FORM_NAME_CONTENT_CENTER","FORM_NAME_TITLE_CENTER","FORM_NAME_URL_CENTER","FORM_NAME_COLOR_CENTER","FORM_NAME_CONTENT_CENTER_LEFT","FORM_NAME_TITLE_CENTER_LEFT","FORM_NAME_URL_CENTER_LEFT","FORM_NAME_COLOR_CENTER_LEFT","FORM_NAME_CONTENT_CENTER_RIGHT","FORM_NAME_TITLE_CENTER_RIGHT","FORM_NAME_URL_CENTER_RIGHT","FORM_NAME_COLOR_CENTER_RIGHT","FORM_NAME_IMG_MASK","FORM_NAME_PARALLAX_SPEED","FORM_NAME_PARALLAX_INVERTED","FORM_NAME_DATE","FORM_NAME_DAYS","FORM_NAME_MINUTES","FORM_NAME_HOURS","FORM_NAME_SECONDS","FORM_NAME_ABSOLUTE","FORM_NAME_FIRST_STEP","FORM_NAME_RATINGS_LINK","FORM_NAME_UNDERLINE_COLOR","FORM_NAME_ELEMENTS","FORM_NAME_AUTHOR_NAME","FORM_NAME_AUTHOR_TITLE","FORM_NAME_INIT","FORM_NAME_FAQ","FORM_NAME_SHADOW_COLOR","FORM_NAME_OPEN","FORM_NAME_ACCORDION","FORM_NAME_ALIGN_BUTTON","FORM_NAME_WIDTH_BLOCK","FORM_NAME_HIDE_BLOCK","FORM_NAME_EXTERNAL","FORM_NAME_ITEM_NUMBER","FORM_NAME_LINE_NUMBER","FORM_NAME_ROWS","FormsContentDto","id","placeholder","help","stepKey","state","iconHelp","labelEnable","reverseShow","FormsDto","hasMargin","forms","translateBlockService","ParentBlockDto","SlidersFullpageDto","_super","_a","_b","_c","_d","_e","_f","TYPE_SLIDERS_FULLPAGE","SlidersFullpageService","_text","selector","getForm","content","getConfig","sliderFullPageFormDto","timeSliderFullPageContentDto","dotsSliderFullPageContentDto","maskSliderFullPageContentDto","SlidersLeftnavDto","_a$1","_b$1","_c$1","_d$1","_e$1","TYPE_SLIDERS_LEFTNAV","SlidersLeftnavService","slidersLeftnavFormDto","SlidersImagerightDto","_a$2","_b$2","TYPE_SLIDERS_IMAGERIGHT","SlidersImagerightService","slidersImagerightFormDto","SlidersDoubleImagerightDto","_a$3","_b$3","TYPE_SLIDERS_DOUBLE_IMAGERIGHT","SlidersDoubleImagerightService","slidersDoubleImagerightDto","SeparatorSimpleDto","_a$4","_b$4","_c$2","_d$2","_e$2","TYPE_SEPARATOR_SIMPLE","SeparatorSimpleService","separatorSimpleFormDto","separatorSimpleContentColorDto","separatorSimpleStyleHeightDto","separatorSimpleContentHeightDto","separatorSimpleContentWidthDto","CodeHtmlDto","_a$5","TYPE_CODE_HTML","CodeHtmlService","MapFullpageDto","_a$6","_b$5","TYPE_MAP_FULLPAGE","MapFullpageService","FontOrMediaDto","iconName","_a$7","MediaDto","MapLeftTextDto","_a$8","_b$6","_c$3","_d$3","_e$3","_f$1","_g","_h","_j","_k","_l","_m","_o","_p","_q","TYPE_MAP_LEFT_TEXT","MapLeftTextService","formsDto","FacebookContentDto","TwitterContentDto","PinterestContentDto","InstagramContentDto","MapRightTextDto","_a$9","_b$7","_c$4","_d$4","_e$4","_f$2","_g$1","_h$1","_j$1","_k$1","_l$1","_m$1","_o$1","_p$1","_q$1","TYPE_MAP_RIGHT_TEXT","MapRightTextService","MapTextFormDto","_a$a","_b$8","_c$5","_d$5","_e$5","_f$3","_g$2","_h$2","_j$2","_k$2","_l$2","_m$2","_o$2","_p$2","_q$2","_r","TYPE_MAP_TEXT_FORM","MapTextFormService","MapBackgroundFormLeftDto","_a$b","_b$9","_c$6","_d$6","TYPE_MAP_BACKGROUND_FORM_LEFT","MapBackgroundFormLeftService","MapBackgroundFormRightDto","_a$c","_b$a","_c$7","_d$7","TYPE_MAP_BACKGROUND_FORM_RIGHT","MapBackgroundFormRightService","TimerSimpleDto","_a$d","Date","_b$b","_c$8","_d$8","_e$6","_f$4","_g$3","_h$3","_j$3","_k$3","_l$3","TYPE_TIMER_SIMPLE","TimerSimpleService","backgroundContentDto","colorContentDto","TimerBackgroundDto","_a$e","valueOf","getTime","_b$c","_c$9","_d$9","_e$7","_f$5","_g$4","_h$4","_j$4","TYPE_TIMER_BACKGROUND","TimerBackgroundService","TimerAirportDto","_a$f","_b$d","_c$a","_d$a","_e$8","_f$6","_g$5","_h$5","_j$5","_k$4","_l$4","TYPE_TIMER_AIRPORT","TimerAirportService","TimerClockDto","_a$g","_b$e","_c$b","_d$b","_e$9","_f$7","_g$6","TYPE_TIMER_CLOCK","TimerClockService","TimerMultipleImgDto","_a$h","_b$f","_c$c","_d$c","_e$a","_f$8","_g$7","_h$6","_j$6","_k$5","_l$5","_m$3","_o$3","_p$3","_q$3","TYPE_TIMER_MULTIPLE_IMG","TimerMultipleImgService","backgroundColorContentDto","buttonBackgroundColorContentDto","buttonColorContentDto","inputTextDto","hrefDto","newTabsDto","QuotesSimpleDto","_a$i","_b$g","_c$d","_d$d","_e$b","TYPE_QUOTES_SIMPLE","QuotesSimpleService","colorDto","colorTextDto","colorSecondaryDto","authorTextDto","QuotesAuthorDto","_a$j","_b$h","_c$e","_d$e","_e$c","TYPE_QUOTES_AUTHOR","QuotesAuthorService","QuotesSimpleBackgroundDto","_a$k","_b$i","_c$f","_d$f","TYPE_QUOTES_SIMPLE_BACKGROUND","QuotesSimpleBackgroundService","ReviewsSimpleDto","_a$l","_b$j","_c$g","_d$g","_e$d","_f$9","TYPE_REVIEWS_SIMPLE","ReviewsSimpleService","colorStarDto","colorStarSecondaryDto","ratingsLinkDto","ReviewsWaterfallDto","_a$m","_b$k","_c$h","_d$h","_e$e","_f$a","_g$8","_h$7","TYPE_REVIEWS_WATERFALL","ReviewsWaterfallService","colorBackgroundDto","ButtonDto","button","_a$n","_b$l","_c$i","WitnessTwiceDto","_a$o","_b$m","_c$j","_d$i","_e$f","_f$b","_g$9","_h$8","TYPE_WITNESS_TWICE","WitnessTwiceService","colorContentLeftDto","colorContentRightDto","WitnessTripleDto","_a$p","_b$n","_c$k","_d$j","_e$g","_f$c","_g$a","_h$9","_j$7","_k$6","_l$6","_m$4","TYPE_WITNESS_TRIPLE","WitnessTripleService","colorContentCenterDto","WitnessQuadrupleDto","_a$q","_b$o","_c$l","_d$k","_e$h","_f$d","_g$b","_h$a","_j$8","_k$7","_l$7","_m$5","_o$4","_p$4","_q$4","_r$1","TYPE_WITNESS_QUADRUPLE","WitnessQuadrupleService","colorContentCenterLeftDto","colorContentCenterRightDto","WitnessBackgroundOneDto","_a$r","_b$p","_c$m","_d$l","TYPE_WITNESS_BACKGROUND_ONE","WitnessBackgroundOneService","WitnessBackgroundDoubleDto","_a$s","_b$q","_c$n","_d$m","_e$i","_f$e","_g$c","TYPE_WITNESS_BACKGROUND_DOUBLE","WitnessBackgroundDoubleService","NewsletterAlignedCenterImageDto","_a$t","_b$r","TYPE_NEWSLETTER_ALIGNED_CENTER_IMAGE","NewsletterAlignedCenterImageService","formPlaceholderContentDto","NewsletterAlignedCenterBackgroundDto","_a$u","_b$s","_c$o","TYPE_NEWSLETTER_ALIGNED_CENTER_BACKGROUND","NewsletterAlignedCenterBackgroundService","formColorContentDto","NewsletterCenterImageDto","_a$v","_b$t","_c$p","_d$n","_e$j","TYPE_NEWSLETTER_CENTER_IMAGE","NewsletterCenterImageService","formColorButtonContentDto","formButtonTxtContentDto","RassurancesTripleBackgroundDto","_a$w","_b$u","_c$q","_d$o","_e$k","_f$f","_g$d","_h$b","_j$9","_k$8","_l$8","_m$6","_o$5","_p$5","_q$5","_r$2","_s","_t","TYPE_RASSURANCES_TRIPLE_BACKGROUND","RassurancesTripleBackgroundService","linkContentLeftDto","targetContentLeftDto","colorContentMiddleLeftDto","linkContentMiddleLeftDto","targetContentMiddleLeftDto","linkContentRightDto","targetContentRightDto","RassurancesQuadrupleAlignedDto","_a$x","_b$v","_c$r","_d$p","_e$l","_f$g","_g$e","_h$c","_j$a","_k$9","_l$9","_m$7","_o$6","_p$6","_q$6","_r$3","_s$1","_t$1","_u","_v","_w","_x","_y","_z","TYPE_RASSURANCES_QUADRUPLE_ALIGNED","RassurancesQuadrupleAlignedService","colorContentMiddleRightDto","linkContentMiddleRightDto","targetContentMiddleRightDto","RassurancesQuadrupleBackgroundDto","_a$y","_b$w","_c$s","_d$q","_e$m","_f$h","_g$f","_h$d","_j$b","_k$a","_l$a","_m$8","_o$7","_p$7","_q$7","_r$4","_s$2","_t$2","_u$1","_v$1","_w$1","_x$1","_y$1","_z$1","TYPE_RASSURANCES_QUADRUPLE_BACKGROUND","RassurancesQuadrupleBackgroundService","SocialsLikeDto","TYPE_SOCIALS_LIKE","SocialsLikeService","formDto","contentDto","SocialsNetworkDto","TYPE_SOCIALS_NETWORK","SocialsNetworkService","facebookContentDto","twitterContentDto","instagramContentDto","TYPE_PRODUCT_SELECTION","ProductsListClassicDto","_a$z","_b$x","_c$t","_d$r","_e$n","TYPE_PRODUCTS_LIST_CLASSIC","ProductsListClassicService","nbLigneContentDto","ProductsListSelectedDto","_a$A","_b$y","_c$u","_d$s","_e$o","TYPE_PRODUCTS_LIST_SELECTED","ProductsListSelectedService","ProductsListSimpleDto","_a$B","_b$z","_c$v","_d$t","_e$p","TYPE_PRODUCTS_LIST_SIMPLE","ProductsListSimpleService","ImagesTextsBigLeftTextRightDto","_a$C","_b$A","_c$w","_d$u","_e$q","_f$i","TYPE_IMAGES_TEXTS_BIG_LEFT_TEXT_RIGHT","ImagesTextsBigLeftTextRightService","ImgTextsBigLeftTextFormDto","maskTextsBigLeftTextContentDto","centerAlignTextsBigLeftTextContentDto","ImagesTextsBigRightTextLeftDto","_a$D","_b$B","_c$x","_d$v","_e$r","_f$j","TYPE_IMAGES_TEXTS_BIG_RIGHT_TEXT_LEFT","ImagesTextsBigRightTextLeftService","ImgTextsBigRightTextLeftFormDto","maskTextsBigRightTextLeftContentDto","centerAlignTextsBigRightTextLeftContentDto","ImagesTextsLeftTextRightDto","_a$E","_b$C","_c$y","_d$w","_e$s","_f$k","TYPE_IMAGES_TEXTS_LEFT_TEXT_RIGHT","ImagesTextsLeftTextRightService","ImgImagesTextsLeftTextRightFormDto","maskImagesTextsLeftTextRightContentDto","centerAlignImagesTextsLeftTextRightContentDto","ImagesTextsOneTextOneDto","_a$F","_b$D","_c$z","_d$x","_e$t","_f$l","TYPE_IMAGES_TEXTS_ONE_TEXT_ONE","ImagesTextsOneTextOneService","ImgImagesTextsOneTextOneFormDto","maskImagesTextsOneTextOneContentDto","centerAlignImagesTextsOneTextOneContentDto","ImagesTextsRightTextLeftDto","_a$G","_b$E","_c$A","_d$y","_e$u","_f$m","TYPE_IMAGES_TEXTS_RIGHT_TEXT_LEFT","ImagesTextsRightTextLeftService","ImgImagesTextsRightTextLeftFormDto","maskImagesTextsRightTextLeftContentDto","centerAlignImagesTextsRightTextLeftContentDto","ImagesTextsSmallLeftTextRightDto","_a$H","_b$F","_c$B","_d$z","_e$v","_f$n","TYPE_IMAGES_TEXTS_SMALL_LEFT_TEXT_RIGHT","ImagesTextsSmallLeftTextRightService","ImgImagesTextsSmallLeftTextRightFormDto","maskImagesTextsSmallLeftTextRightContentDto","centerAlignImagesTextsSmallLeftTextRightContentDto","ImagesTextsSmallRightTextLeftDto","_a$I","_b$G","_c$C","_d$A","_e$w","_f$o","TYPE_IMAGES_TEXTS_SMALL_RIGHT_TEXT_LEFT","ImagesTextsSmallRightTextLeftService","ImgImagesTextsSmallRightTextLeftFormDto","maskImagesTextsSmallRightTextLeftContentDto","centerAlignImagesTextsSmallRightTextLeftContentDto","ImagesTextsTextOneTextDto","_a$J","_b$H","_c$D","_d$B","_e$x","_f$p","_g$g","_h$e","_j$c","TYPE_IMAGES_TEXTS_TEXT_ONE_TEXT","ImagesTextsTextOneTextService","ImgImagesTextsTextOneTextFormDto","maskImagesTextsTextOneTextContentDto","centerAlignImagesTextsTextOneTextContentDto","FourImagesTitleDto","_a$K","_b$I","_c$E","_d$C","TYPE_FOUR_IMAGES_TITLE","FourImagesTitleService","FourImagesTitleFormDto","maskFourImagesTitleContentDto","fullpageFourImagesTitleContentDto","ImagesSimpleDto","_a$L","_b$J","_c$F","_d$D","TYPE_IMAGES_SIMPLE","ImagesSimpleService","imgSimpleFormDto","maskImgSimpleContentDto","parallaxSpeedImgSimpleContentDto","parallaxInvertedImgSimpleContentDto","ImagesDoubleDto","_a$M","_b$K","TYPE_IMAGES_DOUBLE","ImagesDoubleService","imgDoubleFormDto","maskImgDoubleContentDto","ImagesTripleDto","_a$N","_b$L","TYPE_IMAGES_TRIPLE","ImagesTripleService","imgTripleFormDto","maskImgTripleContentDto","ImagesQuadrupleDto","_a$O","_b$M","TYPE_IMAGES_QUADRUPLE","ImagesQuadrupleService","imgQuadrupleFormDto","maskImgQuadrupleContentDto","ImagesQuadrupleLeftOneRightDto","_a$P","_b$N","TYPE_IMAGES_QUADRUPLE_LEFT_ONE_RIGHT","ImagesQuadrupleLeftOneRightService","ImgQuadrupleLeftOneRightFormDto","maskImgQuadrupleLeftOneRightContentDto","ImagesBigAndDoubleDto","_a$Q","_b$O","TYPE_IMAGES_BIG_AND_DOUBLE","ImagesBigAndDoubleService","ImagesBigsAndDoubleMiddleDto","_a$R","_b$P","TYPE_IMAGES_BIGS_AND_DOUBLE_MIDDLE","ImagesBigsAndDoubleMiddleService","imgBigAndDoubleMiddleFormDto","maskImgBigAndDoubleMiddleContentDto","TextsOneDto","_a$S","_b$Q","_c$G","TYPE_TEXTS_ONE","TextsOneService","TextsOneBackgroundDto","_a$T","_b$R","_c$H","_d$E","_e$y","TYPE_TEXTS_ONE_BACKGROUND","TextsOneBackgroundService","paddingContentDto","TextsDoubleDto","_a$U","_b$S","_c$I","_d$F","_e$z","_f$q","_g$h","TYPE_TEXTS_DOUBLE","TextsDoubleService","alignButtonContentDto","TextsDoubleBackgroundDto","_a$V","_b$T","_c$J","_d$G","_e$A","_f$r","_g$i","_h$f","_j$d","_k$b","TYPE_TEXTS_DOUBLE_BACKGROUND","TextsDoubleBackgroundService","TextsTripleDto","_a$W","_b$U","_c$K","_d$H","_e$B","_f$s","_g$j","_h$g","_j$e","_k$c","TYPE_TEXTS_TRIPLE","TextsTripleService","TextsTripleBackgroundDto","_a$X","_b$V","_c$L","_d$I","_e$C","_f$t","_g$k","_h$h","_j$f","_k$d","_l$b","_m$9","_o$8","_p$8","_q$8","_r$5","TYPE_TEXTS_TRIPLE_BACKGROUND","TextsTripleBackgroundService","colorContentMiddleDto","TextsQuadrupleDto","_a$Y","_b$W","_c$M","_d$J","_e$D","_f$u","_g$l","_h$i","_j$g","_k$e","_l$c","_m$a","_o$9","TYPE_TEXTS_QUADRUPLE","TextsQuadrupleService","TextsQuadrupleBackgroundDto","_a$Z","_b$X","_c$N","_d$K","_e$E","_f$v","_g$m","_h$j","_j$h","_k$f","_l$d","_m$b","_o$a","_p$9","_q$9","_r$6","_s$3","TYPE_TEXTS_QUADRUPLE_BACKGROUND","TextsQuadrupleBackgroundService","FormsSimpleDto","_a$_","_b$Y","TYPE_FORMS_SIMPLE","FormsSimpleService","FormsBackgroundDto","_a$$","_b$Z","TYPE_FORMS_BACKGROUND","FormsBackgroundService","FormsImageleftDto","_a$10","_b$_","TYPE_FORMS_IMAGELEFT","FormsImageleftService","FormsImagerightDto","_a$11","_b$$","TYPE_FORMS_IMAGERIGHT","FormsImagerightService","TextBackgroundsSimpleDto","_a$12","_b$10","_c$O","_d$L","_e$F","_f$w","_g$n","TYPE_TEXT_BACKGROUNDS_SIMPLE","TextBackgroundsSimpleService","TextBackgroundsSimpleFormDto","maskTextBackgroundsSimpleContentDto","TextBackgroundsWithTxtDto","_a$13","_b$11","_c$P","_d$M","_e$G","_f$x","_g$o","_h$k","TYPE_TEXT_BACKGROUNDS_WITH_TXT","TextBackgroundsWithTxtService","maskTextBackgroundsWithTxtContentDto","TextBackgroundsWithBannerDto","_a$14","_b$12","_c$Q","_d$N","_e$H","_f$y","_g$p","_h$l","TYPE_TEXT_BACKGROUNDS_WITH_BANNER","TextBackgroundsWithBannerService","fullpageTextBackgroundsWithTxtContentDto","TYPE_YOUTUBE","TYPE_VIMEO","VideosSimpleDto","_a$15","_b$13","_c$R","_d$O","_e$I","_f$z","_g$q","LaunchVideosButtonDto","_a$16","_b$14","_c$S","_d$P","_e$J","_f$A","_g$r","TYPE_LAUNCH_VIDEOS_BUTTON","LaunchVideosButtonService","launchVideosFormDto","linkLaunchVideosContentDto","muteLaunchVideosContentDto","colorLaunchVideosContentDto","textBtnLaunchVideosContentDto","LaunchVideosButtontxtDto","_a$17","_b$15","_c$T","_d$Q","TYPE_LAUNCH_VIDEOS_BUTTONTXT","LaunchVideosButtontxtService","backgroundLaunchVideosContentDto","TYPE_VIDEOS_SIMPLE","VideosSimpleService","videosFormDto","linkVideosContentDto","controlVideosContentDto","autoplayVideosContentDto","muteVideosContentDto","loopVideosContentDto","VideosTxtDto","_a$18","_b$16","_c$U","TYPE_VIDEOS_TXT","VideosTxtService","VideosTxtContentDto","_a$19","_b$17","_c$V","TYPE_VIDEOS_TXT_CONTENT","VideosTxtContentService","colorVideosContentDto","TYPE_VIDEOS_TXT_LEFT","VideosTxtLeftService","CodeJavascriptDto","_a$1a","TYPE_CODE_JAVASCRIPT","CodeJavascriptService","CodeStylesheetDto","_a$1b","TYPE_CODE_STYLESHEET","CodeStylesheetService","SocialsPageSimpleDto","TYPE_SOCIALS_PAGE_SIMPLE","SocialsPageSimpleService","SocialsPageComplexDto","TYPE_SOCIALS_PAGE_COMPLEX","SocialsPageComplexService","ProductZoomDto","_a$1c","_b$18","TYPE_PRODUCT_ZOOM","ProductZoomService","ProductZoomSelectedDto","_a$1d","_b$19","TYPE_PRODUCT_ZOOM_SELECTED","ProductZoomSelectedService","ProductZoomMoreDto","_a$1e","_b$1a","TYPE_PRODUCT_ZOOM_MORE","ProductZoomMoreService","PaymentOrMediaDto","paymentLink","_a$1f","ProductZoomCompleteDto","_a$1g","_b$1b","_c$W","_d$R","_e$K","_f$B","_g$s","_h$m","_j$i","_k$g","_l$e","TYPE_PRODUCT_ZOOM_COMPLETE","ProductZoomCompleteService","colorContentMiddleTopDto","colorContentMiddleBottomDto","ProductZoomCompleteBackgroundDto","_a$1h","_b$1c","_c$X","_d$S","_e$L","_f$C","TYPE_PRODUCT_ZOOM_COMPLETE_BACKGROUND","ProductZoomCompleteBackgroundService","ProductZoomCompleteSliderDto","_a$1i","_b$1d","_c$Y","_d$T","_e$M","_f$D","_g$t","_h$n","_j$j","_k$h","_l$f","_m$c","_o$b","_p$a","_q$a","_r$7","_s$4","_t$3","TYPE_PRODUCT_ZOOM_COMPLETE_SLIDER","ProductZoomCompleteSliderService","colorContentBottomLeftDto","colorContentBottomRightDto","ProductZoomSimpleDto","_a$1j","_b$1e","_c$Z","_d$U","_e$N","_f$E","_g$u","TYPE_PRODUCT_ZOOM_SIMPLE","ProductZoomSimpleService","AmplifyProductZoomDto","_a$1k","_b$1f","_c$_","TYPE_AMPLIFY_PRODUCT_ZOOM","AmplifyProductZoomService","TYPE_AMPLIFY_PRODUCT_ZOOM_MORE","AmplifyProductZoomMoreService","AmplifyProductZoomSelectedDto","_a$1l","_b$1g","_c$$","TYPE_AMPLIFY_PRODUCT_ZOOM_SELECTED","AmplifyProductZoomSelectedService","AmplifyProductsListClassicDto","_a$1m","_b$1h","_c$10","_d$V","_e$O","_f$F","TYPE_AMPLIFY_PRODUCTS_LIST_CLASSIC","AmplifyProductsListClassicService","AmplifyProductsListSelectedDto","_a$1n","_b$1i","_c$11","_d$W","_e$P","_f$G","TYPE_AMPLIFY_PRODUCTS_LIST_SELECTED","AmplifyProductsListSelectedService","AmplifyProductsListSimpleDto","_a$1o","_b$1j","_c$12","_d$X","_e$Q","_f$H","TYPE_AMPLIFY_PRODUCTS_LIST_SIMPLE","AmplifyProductsListSimpleService","ProductZoomTripleColumnDto","_a$1p","_b$1k","_c$13","TYPE_PRODUCT_ZOOM_TRIPLE_COLUMN","ProductZoomTripleColumnService","AmplifyProductZoomTripleColumnDto","_a$1q","_b$1l","_c$14","_d$Y","_e$R","TYPE_AMPLIFY_PRODUCT_ZOOM_TRIPLE_COLUMN","AmplifyProductZoomTripleColumnService","TextsQuadrupleNumbersDto","_a$1r","_b$1m","_c$15","_d$Z","_e$S","_f$I","_g$v","_h$o","_j$k","_k$i","TYPE_TEXTS_QUADRUPLE_NUMBERS","TextsQuadrupleNumbersService","inputOneTextDto","inputTwoTextDto","inputThreeTextDto","inputFourTextDto","AboutBlockDto","_a$1s","_b$1n","_c$16","_d$_","_e$T","TYPE_ABOUT_BLOCK","AboutBlockService","aboutFormDto","underlineColorContentDto","TYPE_IMAGES_BANNER","ImagesBannerService","imgBannerFormDto","FaqDto","_a$1t","_b$1o","_c$17","_d$$","FaqSimpleDto","_a$1u","_b$1p","_c$18","_d$10","TYPE_FAQ_SIMPLE","FaqSimpleService","faqSimpleFormDto","arrowColorContentDto","borderColorContentDto","accordionContentDto","FaqSimpleBackgroundDto","_a$1v","_b$1q","_c$19","_d$11","_e$U","TYPE_FAQ_SIMPLE_BACKGROUND","FaqSimpleBackgroundService","faqSimpleBackgroundFormDto","TextBackgroundsLinkDto","_a$1w","_b$1r","_c$1a","TYPE_TEXT_BACKGROUNDS_LINK","TextBackgroundsLinkService","FaqFrameDto","_a$1x","_b$1s","_c$1b","_d$12","_e$V","_f$J","TYPE_FAQ_FRAME","FaqFrameService","faqFrameFormDto","shadowContentDto","FaqAccordionDto","_a$1y","_b$1t","_c$1c","_d$13","_e$W","_f$K","TYPE_FAQ_ACCORDION","FaqAccordionService","faqAccordionFormDto","backgroundQuestionContentDto","backgroundAnswerContentDto","FaqListIconDto","_a$1z","_b$1u","_c$1d","TYPE_FAQ_LIST_ICON","FaqListIconService","faqListIconFormDto","ImageMediaDto","_a$1A","_b$1v","_c$1e","TwoImagesTitleTextDto","_a$1B","_b$1w","_c$1f","_d$14","_e$X","_f$L","_g$w","_h$p","_j$l","_k$j","_l$g","TYPE_TWO_IMAGES_TITLE_TEXT","TwoImagesTitleTextService","TwoImagesTitleTextFormDto","maskTwoImagesTitleTextContentDto","fullpageTwoImagesTitleTextContentDto","FormsOnboardingDto","_a$1C","_b$1x","_c$1g","_d$15","_e$Y","_f$M","TYPE_FORMS_ONBOARDING","FormsOnboardingService","formsOnboardingFormDto","placeholderDto","externalContentDto","TextBackgroundsThreeRowsIconTextDto","_a$1D","_b$1y","_c$1h","_d$16","_e$Z","_f$N","_g$x","TYPE_TEXT_BACKGROUNDS_THREE_ROWS_ICON_TEXT","TextBackgroundsThreeRowsIconTextService","textBackgroundsThreeRowsIconTextFormDto","maskContentDto","TextBackgroundsFourRowsIconTextDto","_a$1E","_b$1z","_c$1i","_d$17","_e$_","_f$O","_g$y","TYPE_TEXT_BACKGROUNDS_FOUR_ROWS_ICON_TEXT","TextBackgroundsFourRowsIconTextService","textBackgroundsFourRowsIconTextFormDto","TextBackgroundsTwoRowsIconTextDto","_a$1F","_b$1A","_c$1j","_d$18","_e$$","_f$P","_g$z","TYPE_TEXT_BACKGROUNDS_TWO_ROWS_ICON_TEXT","TextBackgroundsTwoRowsIconTextService","textBackgroundsTwoRowsIconTextFormDto","SliderWithBannerDto","_a$1G","_b$1B","_c$1k","_d$19","_e$10","_f$Q","_g$A","TYPE_SLIDERS_WITH_BANNER","SlidersWithBannerService","sliderWithBannerFormDto","timeSliderWithBannerContentDto","dotsSliderWithBannerContentDto","maskSliderWithBannerContentDto","fullpageSliderWithBannerContentDto","BlocksMapList","slidersService","slidersFullpageService","slidersLeftnavService","slidersImagerightService","slidersDoubleImagerightService","sliderWithBannerService","separatorService","separatorSimpleService","codeService","htmlAddService","htmlJavascriptService","htmlStylesheetService","mapService","mapFullpageService","mapLeftTextService","mapRightTextService","mapTextFormService","mapBackgroundFormLeftService","mapBackgroundFormRightService","timerService","timerSimpleService","timerBackgroundService","timerAirportService","timerClockService","quotesService","quotesSimpleService","quotesAuthorService","quotesSimpleBackgroundService","reviewsService","reviewsSimpleService","reviewsWaterfallService","witnessService","witnessTwiceService","witnessTripleService","witnessQuadrupleService","witnessFullpageNavigationService","witnessNavigationService","aboutService","newsletterService","newsletterAlignedCenterImageService","newsletterAlignedCenterBackgroundService","newsletterCenterImageService","rassurancesService","rassurancesTripleBackgroundService","rassurancesQuadrupleAlignedService","rassurancesQuadrupleBackgroundService","socialsService","socialsLikeService","socialsPageSimpleService","socialsPageComplexService","socialsNetworkService","amplifyProductService","amplifyProductZoom","amplifyProductZoomMoreService","amplifyProductZoomSelectedService","amplifyProductZoomTripleColumn","productService","productZoom","productZoomSelected","productZoomMore","productZoomSimple","productZoomComplete","productZoomCompleteBackground","productZoomTripleColumn","productZoomCompleteSlider","amplifyProductsListService","amplifyProductsListClassicService","amplifyProductsListSelectedService","amplifyProductsListSimpleService","productsListService","productsListClassicService","productsListSelectedService","productsListSimpleService","imagesTextsService","imagesTextsBigLeftTextRightService","imagesTextsBigRightTextLeftService","imagesTextsLeftTextRightService","imagesTextsOneTextOneService","imagesTextsRightTextLeftService","imagesTextsSmallLeftTextRightService","imagesTextsSmallRightTextLeftService","imagesTextsTextOneTextService","imagesService","imagesSimpleService","imagesBannerService","imagesDoubleService","imagesTripleService","imagesQuadrupleService","imagesBigAndDoubleService","imagesBigsAndDoubleMiddleService","imagesQuadrupleLeftOneRightService","fourImagesTitleService","twoImagesTitleTextService","textsService","textsOneService","textsOneBackgroundService","textsDoubleService","textsDoubleBackgroundService","textsTripleService","textsTripleBackgroundService","textsQuadrupleService","textsQuadrupleBackgroundService","textsQuadrupleNumbersService","textBackgroundsService","textBackgroundsLinkService","textBackgroundsSimpleService","textBackgroundsWithTxtService","textBackgroundsWithBannerService","textBackgroundsTwoRowsIconTextService","textBackgroundsThreeRowsIconTextService","textBackgroundsFourRowsIconTextService","formsService","formsSimpleService","formsBackgroundService","formsImageleftService","formsImagerightService","onboardingService","onboardingFormsService","launchVideosService","launchVideosButtonService","launchVideosButtontxtService","videosService","videosSimpleService","videosTxtService","videosTxtContentService","videosTxtLeftService","faqService","faqSimple","faqSimpleBackground","faqFrame","faqAccordion","faqListIcon","TYPE_SLIDERS","SlidersService","TYPE_SEPARATOR","SeparatorService","TYPE_CODE","CodeService","MapService","TYPE_TIMER","TimerService","TYPE_QUOTES","QuotesService","TYPE_REVIEWS","ReviewsService","TYPE_WITNESS","WitnessService","TYPE_NEWSLETTER","NewsletterService","RassurancesService","SocialsService","TYPE_PRODUCTS_LIST","ProductsListService","TYPE_IMAGES_TEXTS","ImagesTextsService","TYPE_IMAGES","ImagesService","TYPE_TEXTS","TextsService","TYPE_TEXT_BACKGROUNDS","TextBackgroundsService","TYPE_FORMS","FormsService","TYPE_LAUNCH_VIDEOS","LaunchVideosService","TYPE_VIDEO","VideosService","ProductService","TYPE_AMPLIFY_PRODUCT","AmplifyProductService","TYPE_AMPLIFY_PRODUCTS_LIST","AmplifyProductsListService","FaqService","TYPE_ONBOARDING","OnboardingService","StructuresMapList","StructuresListDto","components","StructureConfigDto","contents","_contents","WiziBlockService","injector","_translations","TranslationsDto","_components","_blocksService","setConfig","translation","objectBlockKey","assign","setComponents","getTranslation","getBlocksService","component","url_image","min_url_image","preview_url","devise","algoliaApiKey","algoliaAppId","width_block","amplify_product_route","amplify_specific_route","amplify_categories_route","catalog_selection_route","catalog_search_route","catalog_specific_route","form_route","form_detail_route","comment_list_route","currency_route","shop_info","sliders","videos","launch_videos","images","text_backgrounds","images_texts","texts","products_list","amplify_products_list","amplify_product","product","socials","rassurances","newsletter","witness","reviews","quotes","timer","code","separator","faq","onboarding","TypesDto","Types","ConfigService","_config","_hideConfig","_isInDev","configSource","configDone","hideConfigSource","hideConfigDone","documentEventMarvinSource","documentEventMarvinDone","eventInitialisation","configEvent","configShowEvent","documentEvent","setDocumentEventListener","document","addEventListener","event","target","ContentService","contentsSource","contentsDone","setContents","goToLastElement","setContentsWithIndex","index","splice","reorderContents","previousIndex","currentIndex","moveItemInArray","getContentByUUID","k","updateByUUID","newContent","duplicateContentByUUID","keyToCopy","toCopy","deepCopy","uuidV4","removeContentByUUID","deleteAll","contentEvent","getParsedContent","form","setTimeout","getElementById","scrollIntoView","behavior","inline","obj","copy","setTime","len","attr","Error","animateListFromRight","passedTime","staggerTime","trigger","transition","animation","query","style","position","opacity","right","optional","animate","stagger","params","time","animateListFromLeft","left","ApiService","http","baseUrlApiBlock","baseUrlApiBlockProd","wiziBlockApiPreview","_api","setApis","api","getShopComment","limit","_get","getShopCurrency","getShopTemplateLang","getAmplifyProductRoute","search","q","page","getAmplifySpecificRoute","prodIds","JSON","stringify","getAmplifyProductByCategoryRoute","category","categories","getAmplifyCategoriesRoute","getAmplifyCategoriesByIdsRoute","catIds","getCatalogSelection","getCatalogSpecific","getCatalogSearch","getFormsList","getFormsDetail","replace","showPreview","url","getBlockApiUrl","_post","getOptionsHeaders","headers","HttpHeaders","Content-Type","Authorization","token","route","post","searchParams","URLSearchParams","key","set","decodeURIComponent","toString","isDevMode","HttpClient","ExternalConfigService","apiService","_externalConfig","setExternalConfig","externalConfig","getUrlImageFront","getDevise","getShopLang","getAlgoliaAppId","getAlgoliaApiKey","getWidthBlock","WiziBlockComponent","wiziBlockService","configService","contentService","externalConfigService","verbose","isInDev","contentChange","EventEmitter","breakPointSize","blocksContents","selectedStructure","selectedConfig","isHiddenConfig","isFirstInLoop","loopIndex","unsubscribe","currentTopTool","toolUnpin","toolHidden","smallScreen","configEventSubscription","contentEventSubscription","control","blockComponent","onWindowScroll","currentTop","window","scrollY","Math","abs","ngOnInit","availableComponents","pipe","takeUntil","subscribe","hoverChildren","setHidden","selectStructureOnFly","console","log","top","calculatePositionTools","emitContent","setContent","resizeWithWidth","innerWidth","item","hide_block","addThis","selected","addThisSelected","closeConfig","subComponent","parsedDto","emit","service","contentToAdd","onResize","$event","currentBrowserSize","setUnpin","changeConfigWiziblocks","includes","filter","ngOnDestroy","complete","Component","template","animations","Input","Output","ViewChild","static","HostListener","StructureConfigService","_structureConfig","structureConfigSource","structureConfigDone","setStructureConfigWithUUID","structureConfig","structureConfigEvent","TYPE_CONFIG_POSITION_LEFT_TOP","TYPE_CONFIG_POSITION_LEFT_BOTTOM","TYPE_CONFIG_POSITION_RIGHT_TOP","TYPE_CONFIG_POSITION_RIGHT_BOTTOM","TYPE_CONFIG_POSITION_LEFT_CENTER","StructureConfigComponent","structureConfigService","isActive","blockUUID","isFullwidth","small","extraSmall","thisComponentActive","hideThis","activeThis","disableIfActive","disable","ExpectedImagesService","setExpectedImgSizes","sizes","width","height","sizesList","split","getExpectedMediaDTO","mediaDTO","image_width","image_height","StructuresComponent","BASE_BLOCK_CONTENT","TYPE_CONFIG_POSITION_RIGHT_TOP_SIMPLE","FORM_NAME_IMAGE_PAYMENT","FORM_NAME_IMAGE_MASK","FORM_TYPE_IMAGE_MASK_SMALL","FORM_TYPE_IMAGE_MASK_MEDIUM","FORM_TYPE_IMAGE_MASK_LARGE","FORM_NAME_IMAGE_LEFT_TOP","FORM_NAME_IMAGE_LEFT_BOTTOM","FORM_NAME_IMAGE_MIDDLE_TOP","FORM_NAME_IMAGE_MIDDLE_BOTTOM","FORM_NAME_IMAGE_BOTTOM","FORM_NAME_IMAGE_MIDDLE_LEFT","FORM_NAME_IMAGE_MIDDLE_RIGHT","hasTooltipFocusedLeftTop","hasTooltipFocusedLeftBottom","hasTooltipFocusedRightTop","hasTooltipFocusedRightBottom","hasTooltipFocusedMiddleRightTop","hasTooltipFocusedMiddleRightBottom","hasTooltipFocusedMiddleLeftTop","hasTooltipFocusedMiddleLeftBottom","mediaEventSubscription","chosenImage","setContentService","setMediaConnectorService","setExpectedImagesService","componentService","forms_data","getFormData","setContentForComponent","mediaConnectorService","expectedImagesService","setComponentService","toInject","getMedia","parameterPosition","indexOf","setThisContentForComponent","formData","persist","checkQuillToolTip","Directive","SliderFullpageComponent","selectedTab","showEmptyImage","selectedKey","medium","large","subscribeToImage","contentBlock","slider","media","replaceSliderWithMedia","addASliderWithMedia","getMediaFor","showSlide","imageMediaDto","image_url","currentImage","updateThisImage","imageWidthHeight","removeThisSlide","arrayToShorten","undefined","onDrop","StructureToolsComponent","dynamicHiddenStructure","isHover","hideConfig","blockIsHidden","configIsActivated","isAlwaysHover","checkOnContents","thisContent","currentLength","duplicateThis","preventDefault","configThis","removeThis","goDown","goUp","SafeUrlPipe","sanitizer","transform","bypassSecurityTrustResourceUrl","Pipe","DomSanitizer","SafeStylePipe","bypassSecurityTrustStyle","AnswerTypePipe","translate","TinyColorPipe","currentColor","TinyColor","getBrightness","ArrayNumberPipe","fill","EvenOddPipe","idx","AddZeroForTimerPipe","StripTagsPipe","allowedTags","_i","RegExp","join","CheckPaymentValuePipe","link","payment_link","ImgPathPipe","imgComponentsPath","imgName","currentLang","NgModule","imports","CommonModule","FormsModule","TranslateModule","forChild","entryComponents","declarations","exports","StructureConfigInputComponent","resizeMiddleScreen","onChange","onTouched","updateChanges","writeValue","registerOnChange","fn","registerOnTouched","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","StructureConfigCheckboxComponent","on","off","checked","FormatHTMLStringIndentation","logger","whitespace","repeat","currentIndent","newlineChar","prevChar","char","nextChar","pos","substr","isBrTag","isOpeningTag","isClosingTag","isTagEnd","isTagNext","trim","before","after","$create","elName","createElement","$setAttr","el","setAttribute","Logger","QuillHtmlLogger","debug","setDebug","prefixString","bind","htmlEditButton","quill","optionsInput","options","toolbarModule","getModule","registerDivModule","toolbarEl","container","buttonContainer","innerHTML","title","onSave","html","clipboard","dangerouslyPasteHTML","onclick","saveCallback","htmlFromEditor","querySelector","popupContainer","overlayContainer","msg","cancelText","okText","closeOnClickOverlay","popupTitle","innerText","textContainer","appendChild","htmlEditor","buttonCancel","buttonOk","buttonGroup","prependSelector","prepend","editorModules","editor","monaco.editor","language","removeChild","stopPropagation","getValue","launchPopupEditor","Block","Quill","import","Div","allowedChildren","register","CustomLink","node","crypted","btoa","sanitize","removeAttribute","formats","domNode","getAttribute","QuillNamespace","CryptedLink","icons","Break","Embed","LineBreak","insertInto","parent","ref","CUSTOM_UPPERCASE_NAME","CUSTOM_LINK_NAME","CUSTOM_LINK_CRYPTED","QuillService","alreadyInit","tooltipFocusedSource","tooltipFocusedDone","bindTooltipFocus","setFocused","init","handleCustomUppercase","handleCustomLink","handleSourceCode","handleCryptedLink","handleLinesBreak","handleCustomIcons","blotName","tagName","Parchment","UppercaseCustomClass","Attributor","Class","scope","Scope","INLINE","Delta","QuillComponent","ngZone","quillService","isTooltipFocused","tooltipLostFocus","offset","toolbar","list","script","indent","size","color","background","align","tmpContent","colorTint","openConfig","sourceCode","sourceCodeValue","linkConfig","linkStyle","_color","isLight","handleDefaultContentTranslation","modules","syntax","handlers","addLink","addUpperCase","matchers","lineBreakMatcher","matchVisual","keyboard","bindings","linebreak","shiftKey","handler","range","currentLeaf","getLeaf","nextLeaf","insertEmbed","setSelection","sources","SILENT","contentChanged","isSetDefaultTextColorAction","delta","setTextBlackColor","root","isEmpty","editorLoaded","setEventListener","format","linkAlreadyExist","retrieveExistingLink","currentToolTip","run","leftStyle","widthStyle","topStyle","movedStyle","parseInt","clientHeight","currentEditor","warn","querySelectorAll","element","closest","validThisUrlOnEnter","keyCode","validThisUrl","removeLink","closeUrlConfig","commentText","focusThis","onFocusLost","linkFormat","getFormat","atob","onRemoveLink","ope","attributes","newDelta","insert","break","NgZone","AutofocusDirective","ngAfterViewInit","nativeElement","focus","ElementRef","AutoHideDirective","_elementRef","triggerElement","forceOn","clickOutside","subscription","targetElement","clickedInside","contains","classNameFromElement","needToClose_1","MediaWidthHeightDto","GetSizeImageDirective","onUpdate","setExpectedSizes","dimensions","ngOnChanges","changes","urlToParse","img","Image","onload","mediaWidthHeightDto","naturalWidth","naturalHeight","currentValue","src","PicturesTemplateDirective","classImageSize","currentUUID","currentElement","_dimensions","renderSizeExpected","HoldableDirective","holdTime","cancel","tap","onExit","onHold","interval","ShowDeleteButtonDirective","renderer","onMouseOver","classList","setStyle","offsetWidth","onMouseOut","Renderer2","StructureSelectComponent","selectedValue","changed","selectThisForm","ICON_NAME_LIST","FontAwesomeService","MAX_LIMIT_FONT","library","add","fas","far","fab","getList","listIcon","randomIconList","shuffle","iconFas","searchIcon","iconFar","iconFab","prefix","icon","findIconDefinition","array","j","floor","random","StructureConfigFontComponent","fontAwesomeService","white","isSmall","isInline","withImage","alignLeft","recommendedSize","iconList","searchIconValue","showPopup","valueChange","_value","selectThisIcon","showBelow","StarComponent","score","maxNumber","colorStar","colorBackgroundStar","StructureSearchProductComponent","searchNumber","selectedProd","newSearch","searchQueryChanged","currentSearchCatalog","currentSelectedCatalog","inSearch","inSearchSelected","toDelete","imageFrontUrl","debounceTime","model","searchProduct","fillCatalogSearch","selectProduct","alreadySelected","catalog","products","removeThisOne","onSearchChange","StructureConfigExtendedInputComponent","textInfo","textError","withoutBlock","big","disabled","_onChange","_onTouched","setDisabledState","isDisabled","onBlur","StructureConfigPaymentComponent","paymentListLink","StructureAmplifySearchProductComponent","changeType","results","selectThisType","StructureAmplifySearchCategoryComponent","selectedCategory","currentSearchCategory","currentSelectedCategory","searchCategory","removeThisCategory","FaqComponent","faqRows","backgroundColor","borderColor","backgroundRowColor","backgroundQuestionColor","backgroundAnswerColor","shadowRowColor","Accordion","faqRowsChange","hasTooltipFocused","addFaqRow","deleteRow","showHide","open","keyLine","checkHasTooltipFocused","row","EditorJSTool","parentEditor","textContainers","selectedAnchorNode","selectedFocusNode","anchorOffset","focusOffset","hasSeparatorBefore","separatorClass","getSelection","selection","createRange","getRangeObject","selectionObject","getRangeAt","setStart","anchorNode","parentElement","setEnd","focusNode","saveUserSelection","currentSelection","resetUserSelection","nodeType","Node","ELEMENT_NODE","children","toLowerCase","childTextNodes","getTextNodes","childNodes","textContent","setBaseAndExtent","collapseSelection","findParentEditor","findParentModifier","getCurrentBlockIndex","clear","remove","containerToFocus","resetBlockFocus","TEXT_NODE","isTextEditionTool","isBlockFocused","setIsTextEditionTool","setBlockFocus","InlineStyleTool","modifiers","foundAnchorOffset","foundFocusOffset","foundAnchorNode","foundFocusNode","tmpOffset","modifiedContent","linkDeletion","modifies","tag","class","attribute","execCommandStyle","action","COMMENT_NODE","sameSelection","saveInlineSelection","hasStyle","replaceLink","isContainer","updateSelection","replaceSelection","getMostDescendantChild","cleanupContainer","resetInlineSelection","containers","css","getStyleValue","default","removeProperty","newElement_1","removeChildrenClasses","classToApply","attributesToApply","setInlineStyle","firstChild","elementClone","cloneNode","replaceChild","insertNode","offsetContainer","parentContainer","offsetParentContainer","currentFragment","extractContents","currentElement_1","input","currentElementToAppend","currentParentElement","tmpElement","isLTR","isAnchorBeforeFocus","selectionFocusOffset","selectionFocusNode","newSelection","preRange","preFragment","newElement","insertBefore","selectAllChildren","fragment","fragmentElement","newElement_2","elementToAppend","append","anchorRange","focusRange","compareBoundaryPoints","Range","START_TO_START","firstTimeCall","foundElement","classes","className","attributeName","findStyleNode","nodeName","toUpperCase","parentNode","nextElementSibling","parentHasStyle","referenceElement","getInlineStyle","identicalInlineStyle","identicalClassList","parentFound","hasChildNodes","normalize","from","currentNode","previousSibling","currentNodeFirstChild","nextCurrentElement","nextSibling","identicalElements","nextElement","identicalAttributes","hasNoAttributes","nodeStyle","nodeAttributes","getAttributeNames","reduce","acc","every","currentElementAttributes","currentElementInlineStyle","nextElementInlineStyle","currentElementInlineStyleSorted","sortInlineStyle","nextElementInlineStyleSorted","entries","sort","firstElementChild","nextNode","cloneContents","StrikeTool","commandName","CSS","buttonActive","buttonModifier","nodes","_state","toggle","styles","inlineToolButtonActive","render","surround","checkState","SubscriptTool","SuperscriptTool","BoldTool","ItalicTool","UnderlineTool","editorJSI18nDictionnary","CapitalizeTool","EditorJSTranslationService","setDictionnary","dictionnary","ColorType","DEFAULT_COLOR_ARRAY","GLOBAL_KEY_CODES","LIST_EDIT_KEY_CODES","ColorTool","isColorSelectionOpen","colors","colorIndicator","colorSelectionCss","wrapper","colorPickerContainer","customColorPicker","openColorPicker","colorSelection","colorSelectionModifier","getCurrentColorApplied","offsetLeft","offsetHeight","offsetTop","viewportOffset","getBoundingClientRect","totalWidth","getComputedStyle","getPropertyValue","checkDefaultColors","colorPickerWrapper","colorPickerId","iro","ColorPicker","layoutDirection","changeColor","isColorSelectionFocusedOut","removeEventListener","close","colorRow","rowIndex","columnIndex","openCustomColorPicker","isInit","initColor","hexInput","rgbInput1","rgbInput2","rgbInput3","rgbInitColor","red","green","blue","rgbToHex","hexString","rgb","checkColorInput","RGB","changeColorInput","colorType","HEX","hexRegex","selectedInput","maxInputLength","hslRegex","selectedInputPosition","focusedInput","hslInput1","hslInput2","hslInput3","hue","saturation","rgbColor","applyColor","createCustomColorPicker","select","changeColorType","hexOption","rgbOption","hslOption","hexContainer","rgbContainer","hslContainer","HSL","getElementsByTagName","colorToHex","hexadecimal","TextColorTool","colorIndicatorModifier","inputToFocus","renderActions","colorElement","customColor","messages","tools","textBackgroundColor","showActions","mark","onchange","hidden","hideActions","TextBackgroundColorTool","removeBackgroundColorClass","removeColorContainer","removeColorContainerIcon","ParagraphStyleTool","removableModifiers","parentModifier","changeContainerTag","changeCurrentClass","checkOrderedListValue","checkFollowingList","paragraph","getCurrentParagraph","currentParagraph","tagToCreate","newContainer","containerToCopy","onEditList","listApi","listEditor","newChildContainer","regexp","found","newIndex","match","elementClass","setlistApiEditor","focusedBlock","newParagraph","currentBlock","previousBlock","listElement","nextListElement","followingOlBlock","ParagraphTextTool","isDropdownOpen","dropdownCss","openDropdown","dropdown","textSelectionModifier","isDropdownFocusedOut","closeDropdown","dropdownSelection","TEXT_TYPES","TEXT_SIZES","TEXT_ALIGN","TextTypeTool","arrowButtonModifier","textTypes","dropdownArrow","applyStyle","textType","textTypeDropdown","applyTextStyle","frI18nDictionnary","ui","blockTunes","toggler","Click to tune","or drag to move","toolbox","Add","toolNames","Text Type","Text Size","Undo","Redo","Bold","Italic","Underline","Strike","Capitalize","Subscript","Superscript","Text Color","Background Color","Link","Quote","Text Align","Ordered List","Unordered List","Indent","Outdent","Code Edit","external","obfuscated","info","None","Heading 1","Heading 2","Heading 3","Heading 4","Heading 5","Heading 6","Paragraph","textSize","Small","Normal","Large","Huge","codeEdit","Cancel","Save","delete","Delete","moveUp","Move up","moveDown","Move down","enI18nDictionnary","TextAlignTool","textAlign","textAlignDropdown","UnorderedListTool","OrderedListTool","QuoteTool","LinkTool","linkCss","linkContainer","targetContainer","obfuscationContainer","linkInputId","targetCheckboxId","obfuscationCheckboxId","addButtonClass","deleteButtonClass","isLinkDropdownOpen","openLinkDropdown","applyLink","targetCheckbox","obfuscationCheckbox","linkInput","deleteLink","applyButton","targetLabel","obfuscationLabel","obfuscationTooltipContainer","obbfuscationTooltip","deleteButton","addButton","linkDropdown","isLinkDropdownFocusedOut","IndentTool","OutdentTool","textSizeTool","textSizes","span","textSizeDropdown","InlineTextTool","TextEditionTool","containerClass","modalClass","editorClass","buttonClass","undo","parsedSavedData","savedData","getSavedEditorContent","savedDataIndex","parse","codeEditEditor","codeEditApi","saveCodeEditModal","setSavedEditorContent","redo","editHTML","getEditorContent","createHTMLEditModal","modal","editorContainer","cancelButton","saveButton","closeCodeEditModal","localStorage","getItem","setItem","editorBlocks","closingTag","lastContentClosingTag","substring","listMarker","previousContainerWasOl","tmpParagraph","CodeEditTool","UndoTool","RedoTool","EditorJSConversionService","classesToReplace","ql-size-small","ql-size-large","ql-size-huge","ql-align-left","ql-align-center","ql-align-right","ql-align-justify","ql-indent-{input}","convert","convertCurrentElement","firstCall","isOrderedListChildren","quillClass","editorJSClass","some","c","startsWith","e_1","textTransform","textDecoration","hasAttribute","newLink","previousElementSibling","EditorJsComponent","editorJSConversionService","editorJSTranslationService","timeoutHandle","timeoutTextEditionHandle","onChangeTimeoutHandle","editorInitialized","wrapperTags","EditorJS","holder","bold","italic","underline","strike","capitalize","subscript","superscript","textColor","quote","orderedList","unorderedList","outdent","inlineToolbar","autofocus","clearTimeout","i18n","getI18nDictionnary","isReady","applyContent","checkSingleChild","editorElement","reason_1","editorName","deleteSavedEditorContent","destroy","checkWrapper","save","saveEditorContent","handleSaveEditor","catch","singleBlock","childElementCount","hasWrapper","tmpAnchorOffset","tmpFocusOffset","collapse","removeAllRanges","addRange","contentElement","data","shift","removeItem","LoaderComponent","SmallLoaderComponent","NgScrollbarModule","NwbAllModule","SharedPipesModule","SharedDirectivesModule","QuillModule","HttpClientModule","DragDropModule","SharedComponentsModule","SeparatorSimpleComponent","CodeJavascriptComponent","theme","editorOptions","CodeHtmlComponent","CodeStylesheetComponent","SliderLeftnavComponent","SliderImagerightComponent","positionMedia","sizes1","sizes2","getMediaForRightTopSlider","SliderDoubleImagerightComponent","image_bottom","getMediaForRightBottomSlider","YoutubeService","youTubeGetID","getFullLinkFromUrlAndOption","autoplay","mute","loop","youtubeId","isURL","str","URL","VimeoService","vimeoGetID","VideosTxtComponent","youtubeService","vimeoService","urlVideo","videoUrlFilled","type_video","changeYoutubeCode","changeVimeoCode","changeVideoUrl","VideosTxtContentComponent","VideosSimpleComponent","VideosTxtLeftComponent","LaunchVideosButtonComponent","showVideo","LaunchVideosButtontxtComponent","ImagesBannerComponent","ImagesSimpleComponent","ImagesDoubleComponent","currentType","ImagesTripleComponent","ImagesQuadrupleComponent","ImagesQuadrupleLeftOneRightComponent","sizes3","sizes4","sizes5","ImagesBigAndDoubleComponent","ImagesBigsAndDoubleMiddleComponent","FourImagesTitleElementDto","_a$1H","_b$1C","FourImagesTitleComponent","elements","TwoImagesTitleTextComponent","image_left","image_right","TextBackgroundsSimpleComponent","TextBackgroundsWithTxtComponent","ImagesTextsBigLeftTextRightComponent","ImagesTextsBigRightTextLeftComponent","ImagesTextsLeftTextRightComponent","ImagesTextsRightTextLeftComponent","ImagesTextsOneTextOneComponent","ImagesTextsTextOneTextComponent","ImagesTextsSmallLeftTextRightComponent","ImagesTextsSmallRightTextLeftComponent","TextsOneComponent","TextsOneBackgroundComponent","TextsDoubleComponent","TextsDoubleBackgroundComponent","TextsTripleComponent","TextsTripleBackgroundComponent","TextsQuadrupleComponent","TextsQuadrupleBackgroundComponent","FormsSimpleComponent","selectedDetailForm","noForms","lists","FormsBackgroundComponent","FormsImageleftComponent","FormsImagerightComponent","SocialsLikeComponent","facebookAppId","fbInit","changePageUrl","SocialsPageSimpleComponent","SocialsPageComplexComponent","SocialsNetworkComponent","showContent","addUrl","CurrencyService","ready","initializeCurrency","currency","country","symbol","thousand","round","space","iso","err","ProductsListClassicComponent","changeDetection","currencyService","_super_1","catalogSelection","catalog_facet","total_pages","total_results","formatPrice","isLoading","structureSearchProduct","conf","ExternalConfigDto","locale","initialize","changeProduct","catalogList","Intl","NumberFormat","price","detectChanges","values","ChangeDetectorRef","ProductsListSelectedComponent","ProductsListSimpleComponent","RassurancesTripleBackgroundComponent","RassurancesQuadrupleAlignedComponent","RassurancesQuadrupleBackgroundComponent","NewsletterAlignedCenterImageComponent","NewsletterAlignedCenterBackgroundComponent","NewsletterCenterImageComponent","WitnessTwiceComponent","WitnessTripleComponent","FORM_NAME_IMAGE_CENTER","WitnessQuadrupleComponent","FORM_NAME_IMAGE_CENTER_RIGHT","FORM_NAME_IMAGE_CENTER_LEFT","WitnessBackgroundOneComponent","WitnessBackgroundDoubleComponent","FORM_NAME_IMAGE_BACKGROUND","ReviewsSimpleComponent","getComments","number","comments","totalComments","total","totalCommentsNote","total_note","ReviewsWaterfallComponent","QuotesSimpleComponent","QuotesAuthorComponent","QuotesSimpleBackgroundComponent","MapFullpageComponent","address","triggerAddress","editPlaceMap","firstTimeTrigger","layers","showMap","googleMapReturnElement","suggestion","latlng","lat","lng","setCoordinateOnPlaces","googleResults","tileLayer","maxZoom","attribution","zoom","zoomControl","center","latLng","marker","iconSize","iconAnchor","iconUrl","shadowUrl","handleAddressChange","geometry","location","onMapReady","invalidateSize","MapLeftTextComponent","MapRightTextComponent","OpenMapDto","MapTextFormComponent","algolia","MapBackgroundFormLeftComponent","MapBackgroundFormRightComponent","TimerSimpleComponent","isCalendar","seconds","minutes","hours","days","showTimer","timerEnd","today","initDistance","second","minute","hour","day","now","distance","countdown","changeTimeForTimer","startTime","validTimeForTimer","dateFor","validTimeForDate","startDate","valueChangeLive","switchMethod","switchMethodWithoutPersist","TimerBackgroundComponent","TimerClockComponent","TimerAirportComponent","secondsFirst","minutesFirst","hoursFirst","daysFirst","secondsSecond","minutesSecond","hoursSecond","daysSecond","ProductZoomComponent","selectedProduct","searchById","prodSearched","priceFormat","ProductZoomSelectedComponent","selectThisPhoto","ProductZoomMoreComponent","ProductZoomCompleteComponent","quillToolbar","ProductZoomCompleteSliderComponent","ProductZoomSimpleComponent","ProductZoomCompleteBackgroundComponent","AmplifyProductZoomComponent","productsList","AmplifyProductZoomMoreComponent","AmplifyProductZoomSelectedComponent","AmplifyProductsListSimpleComponent","changeCategory","AmplifyProductsListSelectedComponent","AmplifyProductsListClassicComponent","LoaderComponentModule","withComponents","ngModule","ANALYZE_FOR_ENTRY_COMPONENTS","useValue","TimerMultipleImgComponent","onTooltipLostFocus","ProductZoomTripleColumnComponent","AmplifyProductZoomTripleColumnComponent","TextsQuadrupleNumbersComponent","AboutElementDto","_a$1I","_b$1D","_c$1l","_d$1a","AboutBlockComponent","displayedTab","moving","move","currentMargin","marginLeft","Number","removeDiapo","elementArray","addDiapo","arrowLeftClicked","arrowRightClicked","FaqSimpleComponent","FaqSimpleBackgroundComponent","ImageMediaAndTextDto","_a$1J","_b$1E","_c$1m","_d$1b","TextBackgroundsLinkComponent","minImages","maxImages","currentNumber","triggerConfig","0","1","2","3","4","5","hasTooltipFocusedImgArray","hasTooltipFocusedImg","replaceBgWithMedia","currentKey","FaqFrameComponent","FaqAccordionComponent","FaqListIconComponent","addFaqCol","TextBackgroundsWithBannerComponent","FormsOnboardingComponent","focusInput","TextBackgroundsRowsIconTextDto","_a$1K","_b$1F","TextBackgroundsThreeRowsIconTextComponent","column","addRow","addBackgroundImageMedia","onClickUpdateImage","addNewImage","TextBackgroundsFourRowsIconTextComponent","click","TextBackgroundsTwoRowsIconTextComponent","SliderWithBannerComponent","BlockComponentList","SharedModule","MonacoEditorModule","GooglePlaceModule","LeafletModule","NwbCommonModule","NwbDatePickerModule","BlocksComponent","resolver","dynamicHidden","blockHover","configActive","parsedContent","setHideConfig","preview","switchHover","baseDto","isHiddenBLocks","ComponentFactoryResolver","ConfigsComponent","isFirst","changeConfig","temporizeConfig","helpTypeOFArray","configs","handleHelp","parseFloat","getValueHelp","indexValue","checkHelp","onValue","offValue","updateContent","updateChangesReverse","updateNumber","SplitValue","tempValue","PreviewsComponent","previewSubscribe","setIframeReady","loadedIframe","doc","iframe","contentWindow","write","ContainerBlockComponent","cd","retrieveCurrentComponentAndCreate","resolveComponentFactory","createComponent","factory","instance","read","ViewContainerRef","StructuresModule","ColorPickerModule","MyMissingTranslationHandler","handle","ComponentsModule","missingTranslationHandler","MissingTranslationHandler","useClass","useDefaultLang"],"mappings":"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UAAAi0E,eAAA,WACI30E,KAAK00E,QAAQhd,KAAK13D,KAAKy0E,0CApB9Bnc,EAAAA,UAASl3D,KAAA,CAAC,CACPiS,SAAU,sBACVklD,SAAA,q/CAGCI,EAAAA,UAASv3D,KAAA,CAAC,+BAEVq3D,EAAAA,qBAEAA,EAAAA,qBAEAA,EAAAA,oBAEAA,EAAAA,uBAEAC,EAAAA,sBAEAD,EAAAA,SCnBE,IAAMmc,GAAiB,CAC1B,QACA,kBACA,WACA,4BACA,MACA,QACA,WACA,iBACA,SACA,UACA,SACA,SACA,aACA,SACA,UACA,YACA,gBACA,UACA,YACA,gBACA,QACA,QACA,YACA,aACA,aACA,YACA,UACA,eACA,UACA,SACA,MACA,WACA,aACA,UACA,iBACA,YACA,YACA,UACA,OACA,YACA,aACA,UACA,YACA,YACA,cACA,YACA,MACA,SACA,mBACA,cACA,aACA,sBACA,gBACA,UACA,eACA,iBACA,cACA,SACA,gBACA,YACA,YACA,UACA,aACA,SACA,SACA,aACA,aACA,aACA,eACA,UACA,WACA,aACA,iBACA,SACA,gBACA,SACA,mBACA,sBACA,sBACA,yBACA,yBACA,sBACA,sBACA,0BACA,yBACA,sBACA,4BACA,iCACA,yBACA,wBACA,gBACA,OACA,WACA,aACA,UACA,iBACA,WACA,YACA,YACA,UACA,MACA,aACA,MACA,WACA,OACA,gBACA,UACA,YACA,SACA,SACA,gBACA,WACA,kBACA,UACA,SACA,SACA,aACA,OACA,OACA,YACA,OACA,QACA,SACA,SACA,SACA,WACA,OACA,WACA,eACA,WACA,aACA,qBACA,kBACA,uBACA,QACA,SACA,QACA,UACA,kBACA,cACA,kBACA,aACA,SACA,YACA,MACA,eACA,mBACA,oBACA,yBACA,YACA,eACA,eACA,mBACA,WACA,aACA,iBACA,UACA,UACA,oBACA,kBACA,aACA,KACA,YACA,MACA,UACA,aACA,SACA,aACA,gBACA,YACA,SACA,SACA,QACA,UACA,SACA,YACA,cACA,SACA,eACA,cACA,cACA,gBACA,qBACA,gBACA,WACA,OACA,WACA,QACA,OACA,cACA,qBACA,aACA,OACA,gBACA,QACA,WACA,SACA,QACA,QACA,UACA,QACA,OACA,YACA,WACA,oBACA,WACA,UACA,UACA,SACA,cACA,OACA,aACA,UACA,OACA,QACA,SACA,KACA,YACA,WACA,SACA,UACA,SACA,cACA,gBACA,SACA,UACA,SACA,gBACA,UACA,OACA,OACA,WACA,cACA,SACA,QACA,OACA,UACA,YACA,cACA,WACA,WACA,SACA,MACA,UACA,SACA,WACA,QACA,SACA,WACA,WACA,YACA,YACA,MACA,WACA,SACA,OACA,SACA,UACA,OACA,SACA,OACA,UACA,MACA,MACA,cACA,gBACA,uBACA,eACA,WACA,SACA,QACA,gBACA,QACA,MACA,QACA,YACA,SACA,UACA,SACA,eACA,YACA,cACA,oBACA,mBACA,MACA,aACA,iBACA,iBACA,gBACA,oBACA,YACA,cACA,mBACA,cACA,eACA,SACA,SACA,KACA,YACA,QACA,YACA,eACA,UACA,QACA,cACA,SACA,QACA,YACA,SACA,eACA,gBACA,SACA,SACA,SACA,eACA,YACA,MACA,aACA,UACA,SACA,aACA,OACA,SACA,SACA,cACA,WACA,SACA,eACA,eACA,WACA,cACA,UACA,OACA,SACA,WACA,QACA,QACA,aACA,aACA,WACA,iBACA,kBACA,aACA,aACA,UACA,eACA,UACA,cACA,iBACA,iBACA,YACA,aACA,QACA,eACA,eACA,eACA,SACA,SACA,WACA,eACA,cACA,qBACA,cACA,SACA,OACA,QACA,UACA,YACA,WACA,iBACA,gBACA,eACA,UACA,YACA,cACA,mBACA,SACA,cACA,SACA,gBACA,SACA,UACA,iBACA,QACA,OACA,SACA,QACA,UACA,cACA,QACA,UACA,MACA,MACA,OACA,WACA,SACA,UACA,SACA,gBACA,QACA,QACA,eACA,UACA,OACA,KACA,MACA,QACA,OACA,SACA,QACA,SACA,WACA,kBACA,QACA,cACA,UACA,MACA,uBACA,sBACA,YACA,mBACA,aACA,aACA,UACA,UACA,OACA,OACA,cACA,eACA,QACA,SACA,SACA,uBACA,OACA,OACA,QACA,UACA,iBACA,QACA,SACA,QACA,KACA,eACA,eACA,SACA,kBACA,gBACA,cACA,oBACA,aACA,eACA,QACA,mBACA,UACA,QACA,gBACA,eACA,gBACA,aACA,cACA,cACA,YACA,YACA,sCACA,aACA,YACA,SACA,QACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,WACA,QACA,OACA,YACA,cACA,UACA,UACA,wBACA,wBACA,yBACA,sBACA,iBACA,wBACA,sBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,yBACA,sBACA,sBACA,oBACA,qBACA,mBACA,eACA,oBACA,oBACA,qBACA,kBACA,aACA,oBACA,kBACA,mBACA,iBACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,kBACA,gBACA,iBACA,eACA,WACA,SACA,aACA,eACA,eACA,WACA,WACA,8BACA,WACA,KACA,QACA,OACA,WACA,oBACA,QACA,MACA,aACA,OACA,gBACA,WACA,YACA,WACA,QACA,QACA,cACA,eACA,gBACA,gBACA,eACA,gBACA,QACA,gBACA,qBACA,sBACA,YACA,SACA,eACA,MACA,WACA,QACA,UACA,cACA,eACA,eACA,OACA,WACA,gBACA,kBACA,kBACA,MACA,OACA,eACA,gBACA,eACA,eACA,kBACA,gBACA,yBACA,MACA,UACA,WACA,YACA,OACA,OACA,mBACA,UACA,YACA,cACA,oBACA,aACA,QACA,UACA,eACA,QACA,UACA,SACA,kBACA,aACA,YACA,gBACA,UACA,UACA,gBACA,QACA,SACA,cACA,gBACA,OACA,OACA,OACA,OACA,OACA,aACA,OACA,OACA,WACA,YACA,aACA,eACA,YACA,cACA,cACA,YACA,WACA,QACA,gBACA,UACA,OACA,gBACA,aACA,gBACA,kBACA,kBACA,eACA,cACA,cACA,eACA,eACA,eACA,mBACA,aACA,YACA,eACA,eACA,MACA,UACA,aACA,YACA,cACA,WACA,YACA,WACA,SACA,UACA,QACA,YACA,eACA,WACA,iBACA,UACA,QACA,aACA,cACA,YACA,oBACA,gBACA,cACA,kBACA,QACA,UACA,QACA,MACA,WACA,WACA,WACA,iBACA,mBACA,cACA,OACA,UACA,MACA,UACA,aACA,gBACA,iBACA,SACA,aACA,iBACA,WACA,eACA,iBACA,eACA,gBACA,uBACA,iBACA,gBACA,gBACA,iBACA,gBACA,YACA,SACA,aACA,cACA,eACA,kBACA,eACA,WACA,aACA,gBACA,aACA,aACA,WACA,WACA,MACA,UACA,cACA,eACA,WACA,UACA,YACA,aACA,eACA,WACA,WACA,WACA,UACA,cACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,WACA,SACA,OACA,kBACA,YACA,gBACA,gBACA,MACA,YACA,WACA,OACA,cACA,QACA,eACA,aACA,qBACA,mBACA,aACA,YACA,aACA,kBACA,gBACA,YACA,gBACA,gBACA,QACA,eACA,eACA,eACA,SACA,eACA,eACA,QACA,eACA,mBACA,cACA,cACA,kBACA,aACA,iBACA,eACA,mBACA,aACA,iBACA,cACA,kBACA,aACA,iBACA,sBACA,sBACA,uBACA,oBACA,sBACA,sBACA,uBACA,oBACA,eACA,eACA,gBACA,sBACA,sBACA,uBACA,oBACA,aACA,QACA,UACA,SACA,SACA,eACA,OACA,WACA,aACA,iBACA,YACA,kBACA,iBACA,uBACA,yBACA,iBACA,QACA,QACA,oBACA,QACA,iBACA,qBACA,gBACA,aACA,mBACA,iBACA,aACA,kBACA,cACA,aACA,gBACA,gBACA,sBACA,cACA,aACA,YACA,iBACA,eACA,mBACA,SACA,cACA,aACA,OACA,WACA,OACA,cACA,cACA,aACA,SACA,aACA,cACA,SACA,MACA,OACA,OACA,QACA,UACA,QACA,UACA,cACA,oBACA,qBACA,mBACA,mBACA,0BACA,oBACA,sBACA,oBACA,oBACA,mBACA,oBACA,oBACA,oBACA,gBACA,iBACA,eACA,eACA,sBACA,gBACA,kBACA,gBACA,gBACA,eACA,gBACA,gBACA,gBACA,WACA,eACA,sBACA,kBACA,eACA,UACA,gBACA,WACA,eACA,sBACA,gBACA,mBACA,mBACA,iBACA,eACA,oBACA,gBACA,oBACA,SACA,cACA,OACA,YACA,OACA,QACA,MACA,UACA,eACA,cACA,oBACA,oBACA,UACA,YACA,OACA,WACA,QACA,aACA,OACA,QACA,SACA,WACA,OACA,QACA,UACA,MACA,SACA,WACA,OACA,QACA,OACA,eACA,WACA,UACA,cACA,WACA,eACA,YACA,UACA,OACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,WACA,WACA,aACA,WACA,UACA,qBACA,UACA,aACA,aACA,UACA,SACA,QACA,MACA,eACA,MACA,cACA,cACA,QACA,cACA,gBACA,oBACA,sBACA,SACA,cACA,YACA,aACA,OACA,WACA,mBACA,SACA,cACA,eACA,cACA,UACA,QACA,YACA,OACA,gBACA,YACA,iBACA,QACA,YACA,OACA,WACA,WACA,gBACA,UACA,MACA,YACA,UACA,cACA,OACA,MACA,YACA,QACA,WACA,aACA,iBACA,aACA,iBACA,YACA,iBACA,WACA,gBACA,uBACA,qBACA,kBACA,SACA,SACA,WACA,YACA,WACA,eACA,cACA,qBACA,qBACA,uBACA,SACA,aACA,gBACA,oBACA,cACA,gBACA,oBACA,uBACA,2BACA,MACA,cACA,WACA,YACA,MACA,YACA,OACA,gBACA,eACA,SACA,cACA,MACA,UACA,cACA,SACA,eACA,cACA,OACA,WACA,eACA,aACA,mBACA,kBACA,iBACA,aACA,YACA,gBACA,WACA,gBACA,YACA,aACA,mBACA,cACA,aACA,cACA,eACA,sBACA,eACA,mBACA,aACA,aACA,WACA,YACA,kBACA,oBACA,cACA,iBACA,mBACA,aACA,cACA,YACA,aACA,YACA,gBACA,OACA,YACA,OACA,WACA,gBACA,SACA,cACA,OACA,WACA,oBACA,aACA,YACA,YACA,OACA,cACA,cACA,OACA,WACA,iBACA,WACA,QACA,aACA,QACA,eACA,eACA,SACA,kBACA,eACA,UACA,QACA,iBACA,MACA,SACA,eACA,cACA,cACA,eACA,cACA,UACA,OACA,yBACA,YACA,gBACA,kBACA,WACA,UACA,UACA,eACA,OACA,cACA,QACA,aACA,WACA,gBACA,SACA,SACA,aACA,iBACA,wBACA,UACA,cACA,SACA,aACA,cACA,WACA,iBACA,QACA,MACA,aACA,QACA,OACA,YACA,QACA,kBACA,QACA,kBACA,eACA,eACA,gBACA,oBACA,gBACA,sBACA,UACA,cACA,QACA,eACA,iBACA,aACA,eACA,aACA,cACA,YACA,YACA,UACA,iBACA,aACA,eACA,qBACA,UACA,OACA,WACA,YACA,kBACA,cACA,cACA,oBACA,aACA,aACA,cACA,qBACA,mBACA,YACA,kBACA,aACA,sBACA,gBACA,SACA,kBACA,UACA,WACA,KACA,KACA,KACA,KACA,YACA,SACA,aACA,QACA,aACA,eACA,mBACA,qBACA,qBACA,wBACA,mBACA,qBACA,cACA,qBACA,aACA,aACA,kBACA,kBACA,mBACA,gBACA,eACA,iBACA,YACA,gBACA,aACA,QACA,cACA,gBACA,YACA,YACA,gBACA,WACA,WACA,UACA,WACA,aACA,kBACA,YACA,aACA,YACA,aACA,MACA,YACA,kBACA,uBACA,oBACA,UACA,UACA,aACA,iBACA,UACA,QACA,eACA,eACA,aACA,eACA,YACA,OACA,aACA,gBACA,UACA,cACA,SACA,QACA,UACA,cACA,cACA,gBACA,cACA,OACA,WACA,aACA,UACA,cACA,aACA,kBACA,QACA,aACA,eACA,WACA,eACA,kBACA,gBACA,YACA,UACA,SACA,QACA,YACA,gBACA,iBACA,kBACA,QACA,eACA,YACA,cACA,cACA,cACA,eACA,eACA,UACA,WACA,YACA,WACA,YACA,YACA,UACA,QACA,YACA,WACA,UACA,cACA,QACA,QACA,iBACA,SACA,QACA,WACA,YACA,SACA,WACA,eACA,WACA,OACA,cACA,cACA,UACA,WACA,eACA,YACA,kBACA,SACA,iBACA,OACA,QACA,iBACA,WACA,MACA,QACA,QACA,UACA,MACA,eACA,WACA,UACA,SACA,UACA,OACA,YACA,kBACA,OACA,YACA,gBACA,SACA,OACA,YACA,aACA,WACA,eACA,WACA,SACA,cACA,iBACA,QACA,QACA,aACA,eACA,aACA,cACA,cACA,aACA,OACA,aACA,aACA,WACA,QACA,YACA,kBACA,aACA,iBACA,WACA,eACA,YACA,gBACA,eACA,mBACA,kBACA,YACA,mBACA,wBACA,eACA,kBACA,iBACA,eACA,cACA,OACA,OACA,YACA,OACA,WACA,aACA,UACA,UACA,WACA,iBACA,kBACA,iBACA,OACA,WACA,YACA,gBACA,sBACA,sBACA,uBACA,oBACA,kBACA,kBACA,mBACA,gBACA,WACA,aACA,WACA,eACA,QACA,OACA,QACA,SACA,YACA,UACA,OACA,WACA,MACA,aACA,iBACA,aACA,iBACA,uBACA,mBACA,kBACA,yBACA,mBACA,kBACA,sBACA,mBACA,mBACA,mBACA,UACA,YACA,SACA,OACA,cACA,cACA,gBACA,gBACA,OACA,OACA,QACA,SACA,YACA,MACA,YACA,mBACA,SACA,UACA,UACA,SACA,YACA,aACA,iBACA,uBACA,mBACA,mBACA,aACA,YACA,aACA,QACA,eACA,gBACA,gBACA,eACA,YACA,SACA,SACA,aACA,iBACA,qBACA,aACA,iBACA,kBACA,sBACA,cACA,kBACA,mBACA,uBACA,qBACA,SACA,WACA,OACA,aACA,aACA,gBACA,SACA,aACA,WACA,YACA,QACA,YACA,gBACA,aACA,MACA,UACA,mBACA,UACA,QACA,YACA,kBACA,cACA,UACA,gBACA,SACA,YACA,YACA,gBACA,eACA,iBACA,UACA,UACA,WACA,KACA,QACA,WACA,QACA,UACA,SACA,OACA,WACA,aACA,QACA,cACA,kBACA,eACA,UACA,SACA,aACA,cACA,YACA,gBACA,YACA,gBACA,UACA,iBACA,uBACA,gBACA,WACA,iBACA,QACA,QACA,eACA,MACA,UACA,YACA,QACA,UACA,MACA,UACA,YACA,UACA,aACA,SACA,aACA,oBACA,eACA,UACA,eACA,aACA,UACA,aACA,eACA,eACA,eACA,qBACA,cACA,QACA,YACA,eACA,eACA,aACA,eACA,cACA,eACA,mBACA,eACA,cACA,KACA,QACA,iBACA,MACA,MACA,aACA,QACA,QACA,cACA,mBACA,QACA,YACA,gBACA,kBACA,cACA,gBACA,OACA,cACA,OACA,OACA,cACA,eACA,eACA,cACA,UACA,SACA,cACA,aACA,OACA,SACA,cACA,MACA,YACA,OACA,UACA,eACA,cACA,WACA,aACA,YACA,OACA,gBACA,eACA,sBACA,0BACA,eACA,QACA,eACA,cACA,aACA,kBACA,YACA,UACA,eACA,SACA,WACA,kBACA,kBACA,YACA,aACA,cACA,QACA,SACA,cACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,YACA,MACA,eACA,SACA,SACA,UACA,eACA,sBACA,qBACA,iBACA,UACA,OACA,WACA,eACA,aACA,gBACA,SACA,WACA,eACA,aACA,QACA,YACA,aACA,WACA,UACA,cACA,SACA,OACA,gBACA,OACA,QACA,SACA,gBACA,QACA,gBACA,mBACA,SACA,MACA,aACA,aACA,QACA,iBACA,mBACA,iBACA,iBACA,UACA,aACA,KACA,OACA,cACA,UACA,WACA,QACA,WACA,YACA,iBACA,UACA,OACA,UACA,YACA,UACA,eACA,UACA,gBACA,mBACA,sBACA,YACA,QACA,SACA,cACA,SACA,aACA,WACA,SACA,UACA,SACA,gBACA,kBACA,eACA,cACA,WACA,YACA,gBACA,SACA,eACA,cACA,YACA,eACA,SACA,SACA,QACA,YACA,YACA,mBACA,eACA,QACA,cACA,SACA,aACA,eACA,eACA,OACA,gBACA,iBACA,cACA,cACA,eACA,kBACA,gBACA,SACA,cACA,SACA,WACA,cACA,cACA,SACA,QACA,OACA,UACA,cACA,gBACA,WACA,eACA,SACA,WACA,WACA,WACA,WACA,aACA,eACA,eACA,eACA,mBACA,eACA,gBACA,YACA,WACA,QACA,WACA,UACA,UACA,WACA,WACA,WACA,SACA,gBACA,QACA,YACA,mBACA,QACA,WACA,SACA,YACA,mBACA,YACA,mBACA,QACA,aACA,aACA,aACA,OACA,QACA,UACA,cACA,MACA,QACA,SACA,eACA,eACA,YACA,aACA,UACA,aACA,WACA,QACA,cACA,eACA,OACA,kBACA,sBACA,gBACA,oBACA,WACA,mBACA,uBACA,iBACA,qBACA,cACA,mBACA,iBACA,YACA,oBACA,wBACA,kBACA,sBACA,mBACA,uBACA,iBACA,qBACA,iBACA,qBACA,eACA,mBACA,UACA,OACA,MACA,gBACA,qBACA,yBACA,QACA,WACA,UACA,WACA,cACA,SACA,qBACA,aACA,UACA,gBACA,UACA,YACA,YACA,SACA,cACA,cACA,kBACA,WACA,QACA,QACA,OACA,oBACA,iBACA,mBACA,YACA,gBACA,gBACA,eACA,gBACA,cACA,kBACA,QACA,WACA,qBACA,QACA,iBACA,gBACA,eACA,cACA,cACA,WACA,UACA,OACA,cACA,YACA,QACA,YACA,SACA,cACA,YACA,gBACA,cACA,YACA,SACA,WACA,mBACA,MACA,YACA,WACA,WACA,aACA,UACA,SACA,cACA,WACA,aACA,UACA,gBACA,QACA,cACA,kBACA,SACA,eACA,YACA,OACA,WACA,UACA,QACA,eACA,SACA,aACA,iBACA,qBACA,gBACA,UACA,aACA,iBACA,yBACA,sBACA,yBACA,sBACA,yBACA,qBACA,kBACA,qBACA,kBACA,qBACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,YACA,OACA,QACA,aACA,YACA,mBACA,qBACA,mBACA,kBACA,kBACA,iBACA,QACA,cACA,WACA,OACA,cACA,YACA,aACA,KACA,WACA,UACA,gBACA,cACA,oBACA,mBACA,mBACA,sBACA,6BACA,QACA,cACA,YACA,YACA,eACA,oBACA,mBACA,SACA,aACA,QACA,QACA,eACA,gBACA,gBACA,eACA,OACA,aACA,OACA,YACA,wBACA,cACA,QACA,aACA,YACA,SACA,eACA,mBACA,YACA,gBACA,UACA,QACA,QACA,aACA,QACA,aACA,UACA,UACA,YACA,eACA,gBACA,mBACA,qBACA,qBACA,UACA,QACA,OACA,cACA,kBACA,cACA,gBACA,gBACA,gBACA,oBACA,QACA,YACA,gBACA,oBACA,aACA,iBACA,iBACA,OACA,WACA,iBACA,iBACA,aACA,YACA,QACA,WACA,iBACA,SACA,aACA,QACA,kBACA,cACA,gBACA,gBACA,eACA,eACA,aACA,aACA,UACA,SACA,MACA,SACA,YACA,SACA,KACA,SACA,WACA,WACA,aACA,MACA,WACA,WACA,iBACA,YACA,OACA,WACA,UACA,QACA,mBACA,aACA,SACA,SACA,aACA,SACA,YACA,aACA,aACA,OACA,aACA,WACA,iBACA,iBACA,aACA,aACA,cACA,aACA,WACA,cACA,aACA,YACA,eACA,gBACA,gBACA,eACA,eACA,YACA,UACA,eACA,aACA,aACA,aACA,aACA,YACA,aACA,cACA,cACA,aACA,WACA,WACA,aACA,aACA,QACA,cACA,YACA,cACA,gBACA,eACA,gBACA,gBACA,WACA,eACA,SACA,eACA,iBACA,gBACA,QACA,eACA,aACA,MACA,OACA,QACA,QACA,aACA,cACA,SACA,SACA,YACA,UACA,kBACA,SACA,cACA,cACA,aACA,eACA,YACA,WACA,WACA,eACA,gBACA,SACA,gBACA,UACA,SACA,OACA,aACA,YACA,gBACA,SACA,QACA,mBACA,gBACA,QACA,cACA,aACA,YACA,cACA,gBACA,WACA,gBACA,SACA,eACA,SACA,iBACA,QACA,QACA,aACA,UACA,OACA,SACA,SACA,aACA,OACA,eACA,eACA,SACA,aACA,eACA,eACA,oBACA,kBACA,kBACA,iBACA,WACA,cACA,aACA,iBACA,WACA,SACA,SACA,QACA,WACA,WACA,SACA,QACA,KACA,eACA,eACA,SACA,kBACA,gBACA,cACA,oBACA,aACA,eACA,QACA,mBACA,UACA,QACA,gBACA,eACA,gBACA,aACA,cACA,cACA,YACA,YACA,sCACA,aACA,YACA,SACA,QACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,WACA,QACA,OACA,YACA,cACA,UACA,UACA,wBACA,wBACA,yBACA,sBACA,iBACA,wBACA,sBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,yBACA,sBACA,sBACA,oBACA,qBACA,mBACA,eACA,oBACA,oBACA,qBACA,kBACA,aACA,oBACA,kBACA,mBACA,iBACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,kBACA,gBACA,iBACA,eACA,WACA,SACA,aACA,eACA,eACA,WACA,WACA,8BACA,WACA,KACA,QACA,OACA,WACA,oBACA,QACA,MACA,aACA,OACA,gBACA,WACA,YACA,WACA,QACA,QACA,cACA,eACA,gBACA,gBACA,eACA,gBACA,QACA,gBACA,qBACA,sBACA,YACA,SACA,eACA,MACA,WACA,QACA,UACA,cACA,eACA,eACA,OACA,WACA,gBACA,kBACA,kBACA,MACA,OACA,eACA,gBACA,eACA,eACA,kBACA,gBACA,yBACA,MACA,UACA,WACA,YACA,OACA,OACA,mBACA,UACA,YACA,cACA,oBACA,aACA,QACA,UACA,eACA,QACA,UACA,SACA,kBACA,aACA,YACA,gBACA,UACA,UACA,gBACA,QACA,SACA,cACA,gBACA,OACA,OACA,OACA,OACA,OACA,aACA,OACA,OACA,WACA,YACA,aACA,eACA,YACA,cACA,cACA,YACA,WACA,QACA,gBACA,UACA,OACA,gBACA,aACA,gBACA,kBACA,kBACA,eACA,cACA,cACA,eACA,eACA,eACA,mBACA,aACA,YACA,eACA,eACA,MACA,UACA,aACA,YACA,cACA,WACA,YACA,WACA,SACA,UACA,QACA,YACA,eACA,WACA,iBACA,UACA,QACA,aACA,cACA,YACA,oBACA,gBACA,cACA,kBACA,QACA,UACA,QACA,MACA,WACA,WACA,WACA,iBACA,mBACA,cACA,OACA,UACA,MACA,UACA,aACA,gBACA,iBACA,SACA,aACA,iBACA,WACA,eACA,iBACA,eACA,gBACA,uBACA,iBACA,gBACA,gBACA,iBACA,gBACA,YACA,SACA,aACA,cACA,eACA,kBACA,eACA,WACA,aACA,gBACA,aACA,aACA,WACA,WACA,MACA,UACA,cACA,eACA,WACA,UACA,YACA,aACA,eACA,WACA,WACA,WACA,UACA,cACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,WACA,SACA,OACA,kBACA,YACA,gBACA,gBACA,MACA,YACA,WACA,OACA,cACA,QACA,eACA,aACA,qBACA,mBACA,aACA,YACA,aACA,kBACA,gBACA,YACA,gBACA,gBACA,QACA,eACA,eACA,eACA,SACA,eACA,eACA,QACA,eACA,mBACA,cACA,cACA,kBACA,aACA,iBACA,eACA,mBACA,aACA,iBACA,cACA,kBACA,aACA,iBACA,sBACA,sBACA,uBACA,oBACA,sBACA,sBACA,uBACA,oBACA,eACA,eACA,gBACA,sBACA,sBACA,uBACA,oBACA,aACA,QACA,UACA,SACA,SACA,eACA,OACA,WACA,aACA,iBACA,YACA,kBACA,iBACA,uBACA,yBACA,iBACA,QACA,QACA,oBACA,QACA,iBACA,qBACA,gBACA,aACA,mBACA,iBACA,aACA,kBACA,cACA,aACA,gBACA,gBACA,sBACA,cACA,aACA,YACA,iBACA,eACA,mBACA,SACA,cACA,aACA,OACA,WACA,OACA,cACA,cACA,aACA,SACA,aACA,cACA,SACA,MACA,OACA,OACA,QACA,UACA,QACA,UACA,cACA,oBACA,qBACA,mBACA,mBACA,0BACA,oBACA,sBACA,oBACA,oBACA,mBACA,oBACA,oBACA,oBACA,gBACA,iBACA,eACA,eACA,sBACA,gBACA,kBACA,gBACA,gBACA,eACA,gBACA,gBACA,gBACA,WACA,eACA,sBACA,kBACA,eACA,UACA,gBACA,WACA,eACA,sBACA,gBACA,mBACA,mBACA,iBACA,eACA,oBACA,gBACA,oBACA,SACA,cACA,OACA,YACA,OACA,QACA,MACA,UACA,eACA,cACA,oBACA,oBACA,UACA,YACA,OACA,WACA,QACA,aACA,OACA,QACA,SACA,WACA,OACA,QACA,UACA,MACA,SACA,WACA,OACA,QACA,OACA,eACA,WACA,UACA,cACA,WACA,eACA,YACA,UACA,OACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,WACA,WACA,aACA,WACA,UACA,qBACA,UACA,aACA,aACA,UACA,SACA,QACA,MACA,eACA,MACA,cACA,cACA,QACA,cACA,gBACA,oBACA,sBACA,SACA,cACA,YACA,aACA,OACA,WACA,mBACA,SACA,cACA,eACA,cACA,UACA,QACA,YACA,OACA,gBACA,YACA,iBACA,QACA,YACA,OACA,WACA,WACA,gBACA,UACA,MACA,YACA,UACA,cACA,OACA,MACA,YACA,QACA,WACA,aACA,iBACA,aACA,iBACA,YACA,iBACA,WACA,gBACA,uBACA,qBACA,kBACA,SACA,SACA,WACA,YACA,WACA,eACA,cACA,qBACA,qBACA,uBACA,SACA,aACA,gBACA,oBACA,cACA,gBACA,oBACA,uBACA,2BACA,MACA,cACA,WACA,YACA,MACA,YACA,OACA,gBACA,eACA,SACA,cACA,MACA,UACA,cACA,SACA,eACA,cACA,OACA,WACA,eACA,aACA,mBACA,kBACA,iBACA,aACA,YACA,gBACA,WACA,gBACA,YACA,aACA,mBACA,cACA,aACA,cACA,eACA,sBACA,eACA,mBACA,aACA,aACA,WACA,YACA,kBACA,oBACA,cACA,iBACA,mBACA,aACA,cACA,YACA,aACA,YACA,gBACA,OACA,YACA,OACA,WACA,gBACA,SACA,cACA,OACA,WACA,oBACA,aACA,YACA,YACA,OACA,cACA,cACA,OACA,WACA,iBACA,WACA,QACA,aACA,QACA,eACA,eACA,SACA,kBACA,eACA,UACA,QACA,iBACA,MACA,SACA,eACA,cACA,cACA,eACA,cACA,UACA,OACA,yBACA,YACA,gBACA,kBACA,WACA,UACA,UACA,eACA,OACA,cACA,QACA,aACA,WACA,gBACA,SACA,SACA,aACA,iBACA,wBACA,UACA,cACA,SACA,aACA,cACA,WACA,iBACA,QACA,MACA,aACA,QACA,OACA,YACA,QACA,kBACA,QACA,kBACA,eACA,eACA,gBACA,oBACA,gBACA,sBACA,UACA,cACA,QACA,eACA,iBACA,aACA,eACA,aACA,cACA,YACA,YACA,UACA,iBACA,aACA,eACA,qBACA,UACA,OACA,WACA,YACA,kBACA,cACA,cACA,oBACA,aACA,aACA,cACA,qBACA,mBACA,YACA,kBACA,aACA,sBACA,gBACA,SACA,kBACA,UACA,WACA,KACA,KACA,KACA,KACA,YACA,SACA,aACA,QACA,aACA,eACA,mBACA,qBACA,qBACA,wBACA,mBACA,qBACA,cACA,qBACA,aACA,aACA,kBACA,kBACA,mBACA,gBACA,eACA,iBACA,YACA,gBACA,aACA,QACA,cACA,gBACA,YACA,YACA,gBACA,WACA,WACA,UACA,WACA,aACA,kBACA,YACA,aACA,YACA,aACA,MACA,YACA,kBACA,uBACA,oBACA,UACA,UACA,aACA,iBACA,UACA,QACA,eACA,eACA,aACA,eACA,YACA,OACA,aACA,gBACA,UACA,cACA,SACA,QACA,UACA,cACA,cACA,gBACA,cACA,OACA,WACA,aACA,UACA,cACA,aACA,kBACA,QACA,aACA,eACA,WACA,eACA,kBACA,gBACA,YACA,UACA,SACA,QACA,YACA,gBACA,iBACA,kBACA,QACA,eACA,YACA,cACA,cACA,cACA,eACA,eACA,UACA,WACA,YACA,WACA,YACA,YACA,UACA,QACA,YACA,WACA,UACA,cACA,QACA,QACA,iBACA,SACA,QACA,WACA,YACA,SACA,WACA,eACA,WACA,OACA,cACA,cACA,UACA,WACA,eACA,YACA,kBACA,SACA,iBACA,OACA,QACA,iBACA,WACA,MACA,QACA,QACA,UACA,MACA,eACA,WACA,UACA,SACA,UACA,OACA,YACA,kBACA,OACA,YACA,gBACA,SACA,OACA,YACA,aACA,WACA,eACA,WACA,SACA,cACA,iBACA,QACA,QACA,aACA,eACA,aACA,cACA,cACA,aACA,OACA,aACA,aACA,WACA,QACA,YACA,kBACA,aACA,iBACA,WACA,eACA,YACA,gBACA,eACA,mBACA,kBACA,YACA,mBACA,wBACA,eACA,kBACA,iBACA,eACA,cACA,OACA,OACA,YACA,OACA,WACA,aACA,UACA,UACA,WACA,iBACA,kBACA,iBACA,OACA,WACA,YACA,gBACA,sBACA,sBACA,uBACA,oBACA,kBACA,kBACA,mBACA,gBACA,WACA,aACA,WACA,eACA,QACA,OACA,QACA,SACA,YACA,UACA,OACA,WACA,MACA,aACA,iBACA,aACA,iBACA,uBACA,mBACA,kBACA,yBACA,mBACA,kBACA,sBACA,mBACA,mBACA,mBACA,UACA,YACA,SACA,OACA,cACA,cACA,gBACA,gBACA,OACA,OACA,QACA,SACA,YACA,MACA,YACA,mBACA,SACA,UACA,UACA,SACA,YACA,aACA,iBACA,uBACA,mBACA,mBACA,aACA,YACA,aACA,QACA,eACA,gBACA,gBACA,eACA,YACA,SACA,SACA,aACA,iBACA,qBACA,aACA,iBACA,kBACA,sBACA,cACA,kBACA,mBACA,uBACA,qBACA,SACA,WACA,OACA,aACA,aACA,gBACA,SACA,aACA,WACA,YACA,QACA,YACA,gBACA,aACA,MACA,UACA,mBACA,UACA,QACA,YACA,kBACA,cACA,UACA,gBACA,SACA,YACA,YACA,gBACA,eACA,iBACA,UACA,UACA,WACA,KACA,QACA,WACA,QACA,UACA,SACA,OACA,WACA,aACA,QACA,cACA,kBACA,eACA,UACA,SACA,aACA,cACA,YACA,gBACA,YACA,gBACA,UACA,iBACA,uBACA,gBACA,WACA,iBACA,QACA,QACA,eACA,MACA,UACA,YACA,QACA,UACA,MACA,UACA,YACA,UACA,aACA,SACA,aACA,oBACA,eACA,UACA,eACA,aACA,UACA,aACA,eACA,eACA,eACA,qBACA,cACA,QACA,YACA,eACA,eACA,aACA,eACA,cACA,eACA,mBACA,eACA,cACA,KACA,QACA,iBACA,MACA,MACA,aACA,QACA,QACA,cACA,mBACA,QACA,YACA,gBACA,kBACA,cACA,gBACA,OACA,cACA,OACA,OACA,cACA,eACA,eACA,cACA,UACA,SACA,cACA,aACA,OACA,SACA,cACA,MACA,YACA,OACA,UACA,eACA,cACA,WACA,aACA,YACA,OACA,gBACA,eACA,sBACA,0BACA,eACA,QACA,eACA,cACA,aACA,kBACA,YACA,UACA,eACA,SACA,WACA,kBACA,kBACA,YACA,aACA,cACA,QACA,SACA,cACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,YACA,MACA,eACA,SACA,SACA,UACA,eACA,sBACA,qBACA,iBACA,UACA,OACA,WACA,eACA,aACA,gBACA,SACA,WACA,eACA,aACA,QACA,YACA,aACA,WACA,UACA,cACA,SACA,OACA,gBACA,OACA,QACA,SACA,gBACA,QACA,gBACA,mBACA,SACA,MACA,aACA,aACA,QACA,iBACA,mBACA,iBACA,iBACA,UACA,aACA,KACA,OACA,cACA,UACA,WACA,QACA,WACA,YACA,iBACA,UACA,OACA,UACA,YACA,UACA,eACA,UACA,gBACA,mBACA,sBACA,YACA,QACA,SACA,cACA,SACA,aACA,WACA,SACA,UACA,SACA,gBACA,kBACA,eACA,cACA,WACA,YACA,gBACA,SACA,eACA,cACA,YACA,eACA,SACA,SACA,QACA,YACA,YACA,mBACA,eACA,QACA,cACA,SACA,aACA,eACA,eACA,OACA,gBACA,iBACA,cACA,cACA,eACA,kBACA,gBACA,SACA,cACA,SACA,WACA,cACA,cACA,SACA,QACA,OACA,UACA,cACA,gBACA,WACA,eACA,SACA,WACA,WACA,WACA,WACA,aACA,eACA,eACA,eACA,mBACA,eACA,gBACA,YACA,WACA,QACA,WACA,UACA,UACA,WACA,WACA,WACA,SACA,gBACA,QACA,YACA,mBACA,QACA,WACA,SACA,YACA,mBACA,YACA,mBACA,QACA,aACA,aACA,aACA,OACA,QACA,UACA,cACA,MACA,QACA,SACA,eACA,eACA,YACA,aACA,UACA,aACA,WACA,QACA,cACA,eACA,OACA,kBACA,sBACA,gBACA,oBACA,WACA,mBACA,uBACA,iBACA,qBACA,cACA,mBACA,iBACA,YACA,oBACA,wBACA,kBACA,sBACA,mBACA,uBACA,iBACA,qBACA,iBACA,qBACA,eACA,mBACA,UACA,OACA,MACA,gBACA,qBACA,yBACA,QACA,WACA,UACA,WACA,cACA,SACA,qBACA,aACA,UACA,gBACA,UACA,YACA,YACA,SACA,cACA,cACA,kBACA,WACA,QACA,QACA,OACA,oBACA,iBACA,mBACA,YACA,gBACA,gBACA,eACA,gBACA,cACA,kBACA,QACA,WACA,qBACA,QACA,iBACA,gBACA,eACA,cACA,cACA,WACA,UACA,OACA,cACA,YACA,QACA,YACA,SACA,cACA,YACA,gBACA,cACA,YACA,SACA,WACA,mBACA,MACA,YACA,WACA,WACA,aACA,UACA,SACA,cACA,WACA,aACA,UACA,gBACA,QACA,cACA,kBACA,SACA,eACA,YACA,OACA,WACA,UACA,QACA,eACA,SACA,aACA,iBACA,qBACA,gBACA,UACA,aACA,iBACA,yBACA,sBACA,yBACA,sBACA,yBACA,qBACA,kBACA,qBACA,kBACA,qBACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,YACA,OACA,QACA,aACA,YACA,mBACA,qBACA,mBACA,kBACA,kBACA,iBACA,QACA,cACA,WACA,OACA,cACA,YACA,aACA,KACA,WACA,UACA,gBACA,cACA,oBACA,mBACA,mBACA,sBACA,6BACA,QACA,cACA,YACA,YACA,eACA,oBACA,mBACA,SACA,aACA,QACA,QACA,eACA,gBACA,gBACA,eACA,OACA,aACA,OACA,YACA,wBACA,cACA,QACA,aACA,YACA,SACA,eACA,mBACA,YACA,gBACA,UACA,QACA,QACA,aACA,QACA,aACA,UACA,UACA,YACA,eACA,gBACA,mBACA,qBACA,qBACA,UACA,QACA,OACA,cACA,kBACA,cACA,gBACA,gBACA,gBACA,oBACA,QACA,YACA,gBACA,oBACA,aACA,iBACA,iBACA,OACA,WACA,iBACA,iBACA,aACA,YACA,QACA,WACA,iBACA,SACA,aACA,QACA,kBACA,cACA,gBACA,gBACA,eACA,eACA,aACA,aACA,UACA,SACA,MACA,SACA,YACA,SACA,KACA,SACA,WACA,WACA,aACA,MACA,WACA,WACA,iBACA,YACA,OACA,WACA,UACA,QACA,mBACA,aACA,SACA,SACA,aACA,SACA,YACA,aACA,aACA,OACA,aACA,WACA,iBACA,iBACA,aACA,aACA,cACA,aACA,WACA,cACA,aACA,YACA,eACA,gBACA,gBACA,eACA,eACA,YACA,UACA,eACA,aACA,aACA,aACA,aACA,YACA,aACA,cACA,cACA,aACA,WACA,WACA,aACA,aACA,QACA,cACA,YACA,cACA,gBACA,eACA,gBACA,gBACA,WACA,eACA,SACA,eACA,iBACA,gBACA,QACA,eACA,aACA,MACA,OACA,QACA,QACA,aACA,cACA,SACA,SACA,YACA,UACA,kBACA,SACA,cACA,cACA,aACA,eACA,YACA,WACA,WACA,eACA,gBACA,SACA,gBACA,UACA,SACA,OACA,aACA,YACA,gBACA,SACA,QACA,mBACA,gBACA,QACA,cACA,aACA,YACA,cACA,gBACA,WACA,gBACA,SACA,eACA,SACA,iBACA,QACA,QACA,aACA,UACA,OACA,SACA,SACA,aACA,OACA,eACA,eACA,SACA,aACA,eACA,eACA,oBACA,kBACA,kBACA,iBACA,WACA,cACA,aACA,iBACA,WACA,SACA,SACA,QACA,WACA,WACA,SACA,QACA,KACA,eACA,eACA,SACA,kBACA,gBACA,cACA,oBACA,aACA,eACA,QACA,mBACA,UACA,QACA,gBACA,eACA,gBACA,aACA,cACA,cACA,YACA,YACA,sCACA,aACA,YACA,SACA,QACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,WACA,QACA,OACA,YACA,cACA,UACA,UACA,wBACA,wBACA,yBACA,sBACA,iBACA,wBACA,sBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,yBACA,sBACA,sBACA,oBACA,qBACA,mBACA,eACA,oBACA,oBACA,qBACA,kBACA,aACA,oBACA,kBACA,mBACA,iBACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,kBACA,gBACA,iBACA,eACA,WACA,SACA,aACA,eACA,eACA,WACA,WACA,8BACA,WACA,KACA,QACA,OACA,WACA,oBACA,QACA,MACA,aACA,OACA,gBACA,WACA,YACA,WACA,QACA,QACA,cACA,eACA,gBACA,gBACA,eACA,gBACA,QACA,gBACA,qBACA,sBACA,YACA,SACA,eACA,MACA,WACA,QACA,UACA,cACA,eACA,eACA,OACA,WACA,gBACA,kBACA,kBACA,MACA,OACA,eACA,gBACA,eACA,eACA,kBACA,gBACA,yBACA,MACA,UACA,WACA,YACA,OACA,OACA,mBACA,UACA,YACA,cACA,oBACA,aACA,QACA,UACA,eACA,QACA,UACA,SACA,kBACA,aACA,YACA,gBACA,UACA,UACA,gBACA,QACA,SACA,cACA,gBACA,OACA,OACA,OACA,OACA,OACA,aACA,OACA,OACA,WACA,YACA,aACA,eACA,YACA,cACA,cACA,YACA,WACA,QACA,gBACA,UACA,OACA,gBACA,aACA,gBACA,kBACA,kBACA,eACA,cACA,cACA,eACA,eACA,eACA,mBACA,aACA,YACA,eACA,eACA,MACA,UACA,aACA,YACA,cACA,WACA,YACA,WACA,SACA,UACA,QACA,YACA,eACA,WACA,iBACA,UACA,QACA,aACA,cACA,YACA,oBACA,gBACA,cACA,kBACA,QACA,UACA,QACA,MACA,WACA,WACA,WACA,iBACA,mBACA,cACA,OACA,UACA,MACA,UACA,aACA,gBACA,iBACA,SACA,aACA,iBACA,WACA,eACA,iBACA,eACA,gBACA,uBACA,iBACA,gBACA,gBACA,iBACA,gBACA,YACA,SACA,aACA,cACA,eACA,kBACA,eACA,WACA,aACA,gBACA,aACA,aACA,WACA,WACA,MACA,UACA,cACA,eACA,WACA,UACA,YACA,aACA,eACA,WACA,WACA,WACA,UACA,cACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,WACA,SACA,OACA,kBACA,YACA,gBACA,gBACA,MACA,YACA,WACA,OACA,cACA,QACA,eACA,aACA,qBACA,mBACA,aACA,YACA,aACA,kBACA,gBACA,YACA,gBACA,gBACA,QACA,eACA,eACA,eACA,SACA,eACA,eACA,QACA,eACA,mBACA,cACA,cACA,kBACA,aACA,iBACA,eACA,mBACA,aACA,iBACA,cACA,kBACA,aACA,iBACA,sBACA,sBACA,uBACA,oBACA,sBACA,sBACA,uBACA,oBACA,eACA,eACA,gBACA,sBACA,sBACA,uBACA,oBACA,aACA,QACA,UACA,SACA,SACA,eACA,OACA,WACA,aACA,iBACA,YACA,kBACA,iBACA,uBACA,yBACA,iBACA,QACA,QACA,oBACA,QACA,iBACA,qBACA,gBACA,aACA,mBACA,iBACA,aACA,kBACA,cACA,aACA,gBACA,gBACA,sBACA,cACA,aACA,YACA,iBACA,eACA,mBACA,SACA,cACA,aACA,OACA,WACA,OACA,cACA,cACA,aACA,SACA,aACA,cACA,SACA,MACA,OACA,OACA,QACA,UACA,QACA,UACA,cACA,oBACA,qBACA,mBACA,mBACA,0BACA,oBACA,sBACA,oBACA,oBACA,mBACA,oBACA,oBACA,oBACA,gBACA,iBACA,eACA,eACA,sBACA,gBACA,kBACA,gBACA,gBACA,eACA,gBACA,gBACA,gBACA,WACA,eACA,sBACA,kBACA,eACA,UACA,gBACA,WACA,eACA,sBACA,gBACA,mBACA,mBACA,iBACA,eACA,oBACA,gBACA,oBACA,SACA,cACA,OACA,YACA,OACA,QACA,MACA,UACA,eACA,cACA,oBACA,oBACA,UACA,YACA,OACA,WACA,QACA,aACA,OACA,QACA,SACA,WACA,OACA,QACA,UACA,MACA,SACA,WACA,OACA,QACA,OACA,eACA,WACA,UACA,cACA,WACA,eACA,YACA,UACA,OACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,WACA,WACA,aACA,WACA,UACA,qBACA,UACA,aACA,aACA,UACA,SACA,QACA,MACA,eACA,MACA,cACA,cACA,QACA,cACA,gBACA,oBACA,sBACA,SACA,cACA,YACA,aACA,OACA,WACA,mBACA,SACA,cACA,eACA,cACA,UACA,QACA,YACA,OACA,gBACA,YACA,iBACA,QACA,YACA,OACA,WACA,WACA,gBACA,UACA,MACA,YACA,UACA,cACA,OACA,MACA,YACA,QACA,WACA,aACA,iBACA,aACA,iBACA,YACA,iBACA,WACA,gBACA,uBACA,qBACA,kBACA,SACA,SACA,WACA,YACA,WACA,eACA,cACA,qBACA,qBACA,uBACA,SACA,aACA,gBACA,oBACA,cACA,gBACA,oBACA,uBACA,2BACA,MACA,cACA,WACA,YACA,MACA,YACA,OACA,gBACA,eACA,SACA,cACA,MACA,UACA,cACA,SACA,eACA,cACA,OACA,WACA,eACA,aACA,mBACA,kBACA,iBACA,aACA,YACA,gBACA,WACA,gBACA,YACA,aACA,mBACA,cACA,aACA,cACA,eACA,sBACA,eACA,mBACA,aACA,aACA,WACA,YACA,kBACA,oBACA,cACA,iBACA,mBACA,aACA,cACA,YACA,aACA,YACA,gBACA,OACA,YACA,OACA,WACA,gBACA,SACA,cACA,OACA,WACA,oBACA,aACA,YACA,YACA,OACA,cACA,cACA,OACA,WACA,iBACA,WACA,QACA,aACA,QACA,eACA,eACA,SACA,kBACA,eACA,UACA,QACA,iBACA,MACA,SACA,eACA,cACA,cACA,eACA,cACA,UACA,OACA,yBACA,YACA,gBACA,kBACA,WACA,UACA,UACA,eACA,OACA,cACA,QACA,aACA,WACA,gBACA,SACA,SACA,aACA,iBACA,wBACA,UACA,cACA,SACA,aACA,cACA,WACA,iBACA,QACA,MACA,aACA,QACA,OACA,YACA,QACA,kBACA,QACA,kBACA,eACA,eACA,gBACA,oBACA,gBACA,sBACA,UACA,cACA,QACA,eACA,iBACA,aACA,eACA,aACA,cACA,YACA,YACA,UACA,iBACA,aACA,eACA,qBACA,UACA,OACA,WACA,YACA,kBACA,cACA,cACA,oBACA,aACA,aACA,cACA,qBACA,mBACA,YACA,kBACA,aACA,sBACA,gBACA,SACA,kBACA,UACA,WACA,KACA,KACA,KACA,KACA,YACA,SACA,aACA,QACA,aACA,eACA,mBACA,qBACA,qBACA,wBACA,mBACA,qBACA,cACA,qBACA,aACA,aACA,kBACA,kBACA,mBACA,gBACA,eACA,iBACA,YACA,gBACA,aACA,QACA,cACA,gBACA,YACA,YACA,gBACA,WACA,WACA,UACA,WACA,aACA,kBACA,YACA,aACA,YACA,aACA,MACA,YACA,kBACA,uBACA,oBACA,UACA,UACA,aACA,iBACA,UACA,QACA,eACA,eACA,aACA,eACA,YACA,OACA,aACA,gBACA,UACA,cACA,SACA,QACA,UACA,cACA,cACA,gBACA,cACA,OACA,WACA,aACA,UACA,cACA,aACA,kBACA,QACA,aACA,eACA,WACA,eACA,kBACA,gBACA,YACA,UACA,SACA,QACA,YACA,gBACA,iBACA,kBACA,QACA,eACA,YACA,cACA,cACA,cACA,eACA,eACA,UACA,WACA,YACA,WACA,YACA,YACA,UACA,QACA,YACA,WACA,UACA,cACA,QACA,QACA,iBACA,SACA,QACA,WACA,YACA,SACA,WACA,eACA,WACA,OACA,cACA,cACA,UACA,WACA,eACA,YACA,kBACA,SACA,iBACA,OACA,QACA,iBACA,WACA,MACA,QACA,QACA,UACA,MACA,eACA,WACA,UACA,SACA,UACA,OACA,YACA,kBACA,OACA,YACA,gBACA,SACA,OACA,YACA,aACA,WACA,eACA,WACA,SACA,cACA,iBACA,QACA,QACA,aACA,eACA,aACA,cACA,cACA,aACA,OACA,aACA,aACA,WACA,QACA,YACA,kBACA,aACA,iBACA,WACA,eACA,YACA,gBACA,eACA,mBACA,kBACA,YACA,mBACA,wBACA,eACA,kBACA,iBACA,eACA,cACA,OACA,OACA,YACA,OACA,WACA,aACA,UACA,UACA,WACA,iBACA,kBACA,iBACA,OACA,WACA,YACA,gBACA,sBACA,sBACA,uBACA,oBACA,kBACA,kBACA,mBACA,gBACA,WACA,aACA,WACA,eACA,QACA,OACA,QACA,SACA,YACA,UACA,OACA,WACA,MACA,aACA,iBACA,aACA,iBACA,uBACA,mBACA,kBACA,yBACA,mBACA,kBACA,sBACA,mBACA,mBACA,mBACA,UACA,YACA,SACA,OACA,cACA,cACA,gBACA,gBACA,OACA,OACA,QACA,SACA,YACA,MACA,YACA,mBACA,SACA,UACA,UACA,SACA,YACA,aACA,iBACA,uBACA,mBACA,mBACA,aACA,YACA,aACA,QACA,eACA,gBACA,gBACA,eACA,YACA,SACA,SACA,aACA,iBACA,qBACA,aACA,iBACA,kBACA,sBACA,cACA,kBACA,mBACA,uBACA,qBACA,SACA,WACA,OACA,aACA,aACA,gBACA,SACA,aACA,WACA,YACA,QACA,YACA,gBACA,aACA,MACA,UACA,mBACA,UACA,QACA,YACA,kBACA,cACA,UACA,gBACA,SACA,YACA,YACA,gBACA,eACA,iBACA,UACA,UACA,WACA,KACA,QACA,WACA,QACA,UACA,SACA,OACA,WACA,aACA,QACA,cACA,kBACA,eACA,UACA,SACA,aACA,cACA,YACA,gBACA,YACA,gBACA,UACA,iBACA,uBACA,gBACA,WACA,iBACA,QACA,QACA,eACA,MACA,UACA,YACA,QACA,UACA,MACA,UACA,YACA,UACA,aACA,SACA,aACA,oBACA,eACA,UACA,eACA,aACA,UACA,aACA,eACA,eACA,eACA,qBACA,cACA,QACA,YACA,eACA,eACA,aACA,eACA,cACA,eACA,mBACA,eACA,cACA,KACA,QACA,iBACA,MACA,MACA,aACA,QACA,QACA,cACA,mBACA,QACA,YACA,gBACA,kBACA,cACA,gBACA,OACA,cACA,OACA,OACA,cACA,eACA,eACA,cACA,UACA,SACA,cACA,aACA,OACA,SACA,cACA,MACA,YACA,OACA,UACA,eACA,cACA,WACA,aACA,YACA,OACA,gBACA,eACA,sBACA,0BACA,eACA,QACA,eACA,cACA,aACA,kBACA,YACA,UACA,eACA,SACA,WACA,kBACA,kBACA,YACA,aACA,cACA,QACA,SACA,cACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,YACA,MACA,eACA,SACA,SACA,UACA,eACA,sBACA,qBACA,iBACA,UACA,OACA,WACA,eACA,aACA,gBACA,SACA,WACA,eACA,aACA,QACA,YACA,aACA,WACA,UACA,cACA,SACA,OACA,gBACA,OACA,QACA,SACA,gBACA,QACA,gBACA,mBACA,SACA,MACA,aACA,aACA,QACA,iBACA,mBACA,iBACA,iBACA,UACA,aACA,KACA,OACA,cACA,UACA,WACA,QACA,WACA,YACA,iBACA,UACA,OACA,UACA,YACA,UACA,eACA,UACA,gBACA,mBACA,sBACA,YACA,QACA,SACA,cACA,SACA,aACA,WACA,SACA,UACA,SACA,gBACA,kBACA,eACA,cACA,WACA,YACA,gBACA,SACA,eACA,cACA,YACA,eACA,SACA,SACA,QACA,YACA,YACA,mBACA,eACA,QACA,cACA,SACA,aACA,eACA,eACA,OACA,gBACA,iBACA,cACA,cACA,eACA,kBACA,gBACA,SACA,cACA,SACA,WACA,cACA,cACA,SACA,QACA,OACA,UACA,cACA,gBACA,WACA,eACA,SACA,WACA,WACA,WACA,WACA,aACA,eACA,eACA,eACA,mBACA,eACA,gBACA,YACA,WACA,QACA,WACA,UACA,UACA,WACA,WACA,WACA,SACA,gBACA,QACA,YACA,mBACA,QACA,WACA,SACA,YACA,mBACA,YACA,mBACA,QACA,aACA,aACA,aACA,OACA,QACA,UACA,cACA,MACA,QACA,SACA,eACA,eACA,YACA,aACA,UACA,aACA,WACA,QACA,cACA,eACA,OACA,kBACA,sBACA,gBACA,oBACA,WACA,mBACA,uBACA,iBACA,qBACA,cACA,mBACA,iBACA,YACA,oBACA,wBACA,kBACA,sBACA,mBACA,uBACA,iBACA,qBACA,iBACA,qBACA,eACA,mBACA,UACA,OACA,MACA,gBACA,qBACA,yBACA,QACA,WACA,UACA,WACA,cACA,SACA,qBACA,aACA,UACA,gBACA,UACA,YACA,YACA,SACA,cACA,cACA,kBACA,WACA,QACA,QACA,OACA,oBACA,iBACA,mBACA,YACA,gBACA,gBACA,eACA,gBACA,cACA,kBACA,QACA,WACA,qBACA,QACA,iBACA,gBACA,eACA,cACA,cACA,WACA,UACA,OACA,cACA,YACA,QACA,YACA,SACA,cACA,YACA,gBACA,cACA,YACA,SACA,WACA,mBACA,MACA,YACA,WACA,WACA,aACA,UACA,SACA,cACA,WACA,aACA,UACA,gBACA,QACA,cACA,kBACA,SACA,eACA,YACA,OACA,WACA,UACA,QACA,eACA,SACA,aACA,iBACA,qBACA,gBACA,UACA,aACA,iBACA,yBACA,sBACA,yBACA,sBACA,yBACA,qBACA,kBACA,qBACA,kBACA,qBACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,YACA,OACA,QACA,aACA,YACA,mBACA,qBACA,mBACA,kBACA,kBACA,iBACA,QACA,cACA,WACA,OACA,cACA,YACA,aACA,KACA,WACA,UACA,gBACA,cACA,oBACA,mBACA,mBACA,sBACA,6BACA,QACA,cACA,YACA,YACA,eACA,oBACA,mBACA,SACA,aACA,QACA,QACA,eACA,gBACA,gBACA,eACA,OACA,aACA,OACA,YACA,wBACA,cACA,QACA,aACA,YACA,SACA,eACA,mBACA,YACA,gBACA,UACA,QACA,QACA,aACA,QACA,aACA,UACA,UACA,YACA,eACA,gBACA,mBACA,qBACA,qBACA,UACA,QACA,OACA,cACA,kBACA,cACA,gBACA,gBACA,gBACA,oBACA,QACA,YACA,gBACA,oBACA,aACA,iBACA,iBACA,OACA,WACA,iBACA,iBACA,aACA,YACA,QACA,WACA,iBACA,SACA,aACA,QACA,kBACA,cACA,gBACA,gBACA,eACA,eACA,aACA,aACA,UACA,SACA,MACA,SACA,YACA,SACA,KACA,SACA,WACA,WACA,aACA,MACA,WACA,WACA,iBACA,YACA,OACA,WACA,UACA,QACA,mBACA,aACA,SACA,SACA,aACA,SACA,YACA,aACA,aACA,OACA,aACA,WACA,iBACA,iBACA,aACA,aACA,cACA,aACA,WACA,cACA,aACA,YACA,eACA,gBACA,gBACA,eACA,eACA,YACA,UACA,eACA,aACA,aACA,aACA,aACA,YACA,aACA,cACA,cACA,aACA,WACA,WACA,aACA,aACA,QACA,cACA,YACA,cACA,gBACA,eACA,gBACA,gBACA,WACA,eACA,SACA,eACA,iBACA,gBACA,QACA,eACA,aACA,MACA,OACA,QACA,QACA,aACA,cACA,SACA,SACA,YACA,UACA,kBACA,SACA,cACA,cACA,aACA,eACA,YACA,WACA,WACA,eACA,gBACA,SACA,gBACA,UACA,SACA,OACA,aACA,YACA,gBACA,SACA,QACA,mBACA,gBACA,QACA,cACA,aACA,YACA,cACA,gBACA,WACA,gBACA,SACA,eACA,SACA,iBACA,QACA,QACA,aACA,UACA,OACA,SACA,SACA,aACA,OACA,eACA,eACA,SACA,aACA,eACA,eACA,oBACA,kBACA,kBACA,iBACA,WACA,cACA,aACA,iBACA,WACA,SACA,SACA,QACA,WACA,WACA,SACA,QACA,KACA,eACA,eACA,SACA,kBACA,gBACA,cACA,oBACA,aACA,eACA,QACA,mBACA,UACA,QACA,gBACA,eACA,gBACA,aACA,cACA,cACA,YACA,YACA,sCACA,aACA,YACA,SACA,QACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,WACA,QACA,OACA,YACA,cACA,UACA,UACA,wBACA,wBACA,yBACA,sBACA,iBACA,wBACA,sBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,yBACA,sBACA,sBACA,oBACA,qBACA,mBACA,eACA,oBACA,oBACA,qBACA,kBACA,aACA,oBACA,kBACA,mBACA,iBACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,kBACA,gBACA,iBACA,eACA,WACA,SACA,aACA,eACA,eACA,WACA,WACA,8BACA,WACA,KACA,QACA,OACA,WACA,oBACA,QACA,MACA,aACA,OACA,gBACA,WACA,YACA,WACA,QACA,QACA,cACA,eACA,gBACA,gBACA,eACA,gBACA,QACA,gBACA,qBACA,sBACA,YACA,SACA,eACA,MACA,WACA,QACA,UACA,cACA,eACA,eACA,OACA,WACA,gBACA,kBACA,kBACA,MACA,OACA,eACA,gBACA,eACA,eACA,kBACA,gBACA,yBACA,MACA,UACA,WACA,YACA,OACA,OACA,mBACA,UACA,YACA,cACA,oBACA,aACA,QACA,UACA,eACA,QACA,UACA,SACA,kBACA,aACA,YACA,gBACA,UACA,UACA,gBACA,QACA,SACA,cACA,gBACA,OACA,OACA,OACA,OACA,OACA,aACA,OACA,OACA,WACA,YACA,aACA,eACA,YACA,cACA,cACA,YACA,WACA,QACA,gBACA,UACA,OACA,gBACA,aACA,gBACA,kBACA,kBACA,eACA,cACA,cACA,eACA,eACA,eACA,mBACA,aACA,YACA,eACA,eACA,MACA,UACA,aACA,YACA,cACA,WACA,YACA,WACA,SACA,UACA,QACA,YACA,eACA,WACA,iBACA,UACA,QACA,aACA,cACA,YACA,oBACA,gBACA,cACA,kBACA,QACA,UACA,QACA,MACA,WACA,WACA,WACA,iBACA,mBACA,cACA,OACA,UACA,MACA,UACA,aACA,gBACA,iBACA,SACA,aACA,iBACA,WACA,eACA,iBACA,eACA,gBACA,uBACA,iBACA,gBACA,gBACA,iBACA,gBACA,YACA,SACA,aACA,cACA,eACA,kBACA,eACA,WACA,aACA,gBACA,aACA,aACA,WACA,WACA,MACA,UACA,cACA,eACA,WACA,UACA,YACA,aACA,eACA,WACA,WACA,WACA,UACA,cACA,oBACA,oBACA,qBACA,kBACA,aACA,aACA,cACA,oBACA,oBACA,qBACA,kBACA,WACA,SACA,OACA,kBACA,YACA,gBACA,gBACA,MACA,YACA,WACA,OACA,cACA,QACA,eACA,aACA,qBACA,mBACA,aACA,YACA,aACA,kBACA,gBACA,YACA,gBACA,gBACA,QACA,eACA,eACA,eACA,SACA,eACA,eACA,QACA,eACA,mBACA,cACA,cACA,kBACA,aACA,iBACA,eACA,mBACA,aACA,iBACA,cACA,kBACA,aACA,iBACA,sBACA,sBACA,uBACA,oBACA,sBACA,sBACA,uBACA,oBACA,eACA,eACA,gBACA,sBACA,sBACA,uBACA,oBACA,aACA,QACA,UACA,SACA,SACA,eACA,OACA,WACA,aACA,iBACA,YACA,kBACA,iBACA,uBACA,yBACA,iBACA,QACA,QACA,oBACA,QACA,iBACA,qBACA,gBACA,aACA,mBACA,iBACA,aACA,kBACA,cACA,aACA,gBACA,gBACA,sBACA,cACA,aACA,YACA,iBACA,eACA,mBACA,SACA,cACA,aACA,OACA,WACA,OACA,cACA,cACA,aACA,SACA,aACA,cACA,SACA,MACA,OACA,OACA,QACA,UACA,QACA,UACA,cACA,oBACA,qBACA,mBACA,mBACA,0BACA,oBACA,sBACA,oBACA,oBACA,mBACA,oBACA,oBACA,oBACA,gBACA,iBACA,eACA,eACA,sBACA,gBACA,kBACA,gBACA,gBACA,eACA,gBACA,gBACA,gBACA,WACA,eACA,sBACA,kBACA,eACA,UACA,gBACA,WACA,eACA,sBACA,gBACA,mBACA,mBACA,iBACA,eACA,oBACA,gBACA,oBACA,SACA,cACA,OACA,YACA,OACA,QACA,MACA,UACA,eACA,cACA,oBACA,oBACA,UACA,YACA,OACA,WACA,QACA,aACA,OACA,QACA,SACA,WACA,OACA,QACA,UACA,MACA,SACA,WACA,OACA,QACA,OACA,eACA,WACA,UACA,cACA,WACA,eACA,YACA,UACA,OACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,WACA,WACA,aACA,WACA,UACA,qBACA,UACA,aACA,aACA,UACA,SACA,QACA,MACA,eACA,MACA,cACA,cACA,QACA,cACA,gBACA,oBACA,sBACA,SACA,cACA,YACA,aACA,OACA,WACA,mBACA,SACA,cACA,eACA,cACA,UACA,QACA,YACA,OACA,gBACA,YACA,iBACA,QACA,YACA,OACA,WACA,WACA,gBACA,UACA,MACA,YACA,UACA,cACA,OACA,MACA,YACA,QACA,WACA,aACA,iBACA,aACA,iBACA,YACA,iBACA,WACA,gBACA,uBACA,qBACA,kBACA,SACA,SACA,WACA,YACA,WACA,eACA,cACA,qBACA,qBACA,uBACA,SACA,aACA,gBACA,oBACA,cACA,gBACA,oBACA,uBACA,2BACA,MACA,cACA,WACA,YACA,MACA,YACA,OACA,gBACA,eACA,SACA,cACA,MACA,UACA,cACA,SACA,eACA,cACA,OACA,WACA,eACA,aACA,mBACA,kBACA,iBACA,aACA,YACA,gBACA,WACA,gBACA,YACA,aACA,mBACA,cACA,aACA,cACA,eACA,sBACA,eACA,mBACA,aACA,aACA,WACA,YACA,kBACA,oBACA,cACA,iBACA,mBACA,aACA,cACA,YACA,aACA,YACA,gBACA,OACA,YACA,OACA,WACA,gBACA,SACA,cACA,OACA,WACA,oBACA,aACA,YACA,YACA,OACA,cACA,cACA,OACA,WACA,iBACA,WACA,QACA,aACA,QACA,eACA,eACA,SACA,kBACA,eACA,UACA,QACA,iBACA,MACA,SACA,eACA,cACA,cACA,eACA,cACA,UACA,OACA,yBACA,YACA,gBACA,kBACA,WACA,UACA,UACA,eACA,OACA,cACA,QACA,aACA,WACA,gBACA,SACA,SACA,aACA,iBACA,wBACA,UACA,cACA,SACA,aACA,cACA,WACA,iBACA,QACA,MACA,aACA,QACA,OACA,YACA,QACA,kBACA,QACA,kBACA,eACA,eACA,gBACA,oBACA,gBACA,sBACA,UACA,cACA,QACA,eACA,iBACA,aACA,eACA,aACA,cACA,YACA,YACA,UACA,iBACA,aACA,eACA,qBACA,UACA,OACA,WACA,YACA,kBACA,cACA,cACA,oBACA,aACA,aACA,cACA,qBACA,mBACA,YACA,kBACA,aACA,sBACA,gBACA,SACA,kBACA,UACA,WACA,KACA,KACA,KACA,KACA,YACA,SACA,aACA,QACA,aACA,eACA,mBACA,qBACA,qBACA,wBACA,mBACA,qBACA,cACA,qBACA,aACA,aACA,kBACA,kBACA,mBACA,gBACA,eACA,iBACA,YACA,gBACA,aACA,QACA,cACA,gBACA,YACA,YACA,gBACA,WACA,WACA,UACA,WACA,aACA,kBACA,YACA,aACA,YACA,aACA,MACA,YACA,kBACA,uBACA,oBACA,UACA,UACA,aACA,iBACA,UACA,QACA,eACA,eACA,aACA,eACA,YACA,OACA,aACA,gBACA,UACA,cACA,SACA,QACA,UACA,cACA,cACA,gBACA,cACA,OACA,WACA,aACA,UACA,cACA,aACA,kBACA,QACA,aACA,eACA,WACA,eACA,kBACA,gBACA,YACA,UACA,SACA,QACA,YACA,gBACA,iBACA,kBACA,QACA,eACA,YACA,cACA,cACA,cACA,eACA,eACA,UACA,WACA,YACA,WACA,YACA,YACA,UACA,QACA,YACA,WACA,UACA,cACA,QACA,QACA,iBACA,SACA,QACA,WACA,YACA,SACA,WACA,eACA,WACA,OACA,cACA,cACA,UACA,WACA,eACA,YACA,kBACA,SACA,iBACA,OACA,QACA,iBACA,WACA,MACA,QACA,QACA,UACA,MACA,eACA,WACA,UACA,SACA,UACA,OACA,YACA,kBACA,OACA,YACA,gBACA,SACA,OACA,YACA,aACA,WACA,eACA,WACA,SACA,cACA,iBACA,QACA,QACA,aACA,eACA,aACA,cACA,cACA,aACA,OACA,aACA,aACA,WACA,QACA,YACA,kBACA,aACA,iBACA,WACA,eACA,YACA,gBACA,eACA,mBACA,kBACA,YACA,mBACA,wBACA,eACA,kBACA,iBACA,eACA,cACA,OACA,OACA,YACA,OACA,WACA,aACA,UACA,UACA,WACA,iBACA,kBACA,iBACA,OACA,WACA,YACA,gBACA,sBACA,sBACA,uBACA,oBACA,kBACA,kBACA,mBACA,gBACA,WACA,aACA,WACA,eACA,QACA,OACA,QACA,SACA,YACA,UACA,OACA,WACA,MACA,aACA,iBACA,aACA,iBACA,uBACA,mBACA,kBACA,yBACA,mBACA,kBACA,sBACA,mBACA,mBACA,mBACA,UACA,YACA,SACA,OACA,cACA,cACA,gBACA,gBACA,OACA,OACA,QACA,SACA,YACA,MACA,YACA,mBACA,SACA,UACA,UACA,SACA,YACA,aACA,iBACA,uBACA,mBACA,mBACA,aACA,YACA,aACA,QACA,eACA,gBACA,gBACA,eACA,YACA,SACA,SACA,aACA,iBACA,qBACA,aACA,iBACA,kBACA,sBACA,cACA,kBACA,mBACA,uBACA,qBACA,SACA,WACA,OACA,aACA,aACA,gBACA,SACA,aACA,WACA,YACA,QACA,YACA,gBACA,aACA,MACA,UACA,mBACA,UACA,QACA,YACA,kBACA,cACA,UACA,gBACA,SACA,YACA,YACA,gBACA,eACA,iBACA,UACA,UACA,WACA,KACA,QACA,WACA,QACA,UACA,SACA,OACA,WACA,aACA,QACA,cACA,kBACA,eACA,UACA,SACA,aACA,cACA,YACA,gBACA,YACA,gBACA,UACA,iBACA,uBACA,gBACA,WACA,iBACA,QACA,QACA,eACA,MACA,UACA,YACA,QACA,UACA,MACA,UACA,YACA,UACA,aACA,SACA,aACA,oBACA,eACA,UACA,eACA,aACA,UACA,aACA,eACA,eACA,eACA,qBACA,cACA,QACA,YACA,eACA,eACA,aACA,eACA,cACA,eACA,mBACA,eACA,cACA,KACA,QACA,iBACA,MACA,MACA,aACA,QACA,QACA,cACA,mBACA,QACA,YACA,gBACA,kBACA,cACA,gBACA,OACA,cACA,OACA,OACA,cACA,eACA,eACA,cACA,UACA,SACA,cACA,aACA,OACA,SACA,cACA,MACA,YACA,OACA,UACA,eACA,cACA,WACA,aACA,YACA,OACA,gBACA,eACA,sBACA,0BACA,eACA,QACA,eACA,cACA,aACA,kBACA,YACA,UACA,eACA,SACA,WACA,kBACA,kBACA,YACA,aACA,cACA,QACA,SACA,cACA,UACA,QACA,YACA,gBACA,QACA,YACA,UACA,YACA,MACA,eACA,SACA,SACA,UACA,eACA,sBACA,qBACA,iBACA,UACA,OACA,WACA,eACA,aACA,gBACA,SACA,WACA,eACA,aACA,QACA,YACA,aACA,WACA,UACA,cACA,SACA,OACA,gBACA,OACA,QACA,SACA,gBACA,QACA,gBACA,mBACA,SACA,MACA,aACA,aACA,QACA,iBACA,mBACA,iBACA,iBACA,UACA,aACA,KACA,OACA,cACA,UACA,WACA,QACA,WACA,YACA,iBACA,UACA,OACA,UACA,YACA,UACA,eACA,UACA,gBACA,mBACA,sBACA,YACA,QACA,SACA,cACA,SACA,aACA,WACA,SACA,UACA,SACA,gBACA,kBACA,eACA,cACA,WACA,YACA,gBACA,SACA,eACA,cACA,YACA,eACA,SACA,SACA,QACA,YACA,YACA,mBACA,eACA,QACA,cACA,SACA,aACA,eACA,eACA,OACA,gBACA,iBACA,cACA,cACA,eACA,kBACA,gBACA,SACA,cACA,SACA,WACA,cACA,cACA,SACA,QACA,OACA,UACA,cACA,gBACA,WACA,eACA,SACA,WACA,WACA,WACA,WACA,aACA,eACA,eACA,eACA,mBACA,eACA,gBACA,YACA,WACA,QACA,WACA,UACA,UACA,WACA,WACA,WACA,SACA,gBACA,QACA,YACA,mBACA,QACA,WACA,SACA,YACA,mBACA,YACA,mBACA,QACA,aACA,aACA,aACA,OACA,QACA,UACA,cACA,MACA,QACA,SACA,eACA,eACA,YACA,aACA,UACA,aACA,WACA,QACA,cACA,eACA,OACA,kBACA,sBACA,gBACA,oBACA,WACA,mBACA,uBACA,iBACA,qBACA,cACA,mBACA,iBACA,YACA,oBACA,wBACA,kBACA,sBACA,mBACA,uBACA,iBACA,qBACA,iBACA,qBACA,eACA,mBACA,UACA,OACA,MACA,gBACA,qBACA,yBACA,QACA,WACA,UACA,WACA,cACA,SACA,qBACA,aACA,UACA,gBACA,UACA,YACA,YACA,SACA,cACA,cACA,kBACA,WACA,QACA,QACA,OACA,oBACA,iBACA,mBACA,YACA,gBACA,gBACA,eACA,gBACA,cACA,kBACA,QACA,WACA,qBACA,QACA,iBACA,gBACA,eACA,cACA,cACA,WACA,UACA,OACA,cACA,YACA,QACA,YACA,SACA,cACA,YACA,gBACA,cACA,YACA,SACA,WACA,mBACA,MACA,YACA,WACA,WACA,aACA,UACA,SACA,cACA,WACA,aACA,UACA,gBACA,QACA,cACA,kBACA,SACA,eACA,YACA,OACA,WACA,UACA,QACA,eACA,SACA,aACA,iBACA,qBACA,gBACA,UACA,aACA,iBACA,yBACA,sBACA,yBACA,sBACA,yBACA,qBACA,kBACA,qBACA,kBACA,qBACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,YACA,OACA,QACA,aACA,YACA,mBACA,qBACA,mBACA,kBACA,kBACA,iBACA,QACA,cACA,WACA,OACA,cACA,YACA,aACA,KACA,WACA,UACA,gBACA,cACA,oBACA,mBACA,mBACA,sBACA,6BACA,QACA,cACA,YACA,YACA,eACA,oBACA,mBACA,SACA,aACA,QACA,QACA,eACA,gBACA,gBACA,eACA,OACA,aACA,OACA,YACA,wBACA,cACA,QACA,aACA,YACA,SACA,eACA,mBACA,YACA,gBACA,UACA,QACA,QACA,aACA,QACA,aACA,UACA,UACA,YACA,eACA,gBACA,mBACA,qBACA,qBACA,UACA,QACA,OACA,cACA,kBACA,cACA,gBACA,gBACA,gBACA,oBACA,QACA,YACA,gBACA,oBACA,aACA,iBACA,iBACA,OACA,WACA,iBACA,iBACA,aACA,YACA,QACA,WACA,iBACA,SACA,aACA,QACA,kBACA,cACA,gBACA,gBACA,eACA,eACA,aACA,aACA,UACA,SACA,MACA,SACA,YACA,SACA,KACA,SACA,WACA,WACA,aACA,MACA,WACA,WACA,iBACA,YACA,OACA,WACA,UACA,QACA,mBACA,aACA,SACA,SACA,aACA,SACA,YACA,aACA,aACA,OACA,aACA,WACA,iBACA,iBACA,aACA,aACA,cACA,aACA,WACA,cACA,aACA,YACA,eACA,gBACA,gBACA,eACA,eACA,YACA,UACA,eACA,aACA,aACA,aACA,aACA,YACA,aACA,cACA,cACA,aACA,WACA,WACA,aACA,aACA,QACA,cACA,YACA,cACA,gBACA,eACA,gBACA,gBACA,WACA,eACA,SACA,eACA,iBACA,gBACA,QACA,eACA,aACA,MACA,OACA,QACA,QACA,aACA,cACA,SACA,SACA,YACA,UACA,kBACA,SACA,cACA,cACA,aACA,eACA,YACA,WACA,WACA,eACA,gBACA,SACA,gBACA,UACA,SACA,OACA,aACA,YACA,gBACA,SACA,QACA,mBACA,gBACA,QACA,cACA,aACA,YACA,cACA,gBACA,WACA,gBACA,SACA,eACA,SACA,iBACA,QACA,QACA,aACA,UACA,OACA,SACA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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MediaDto } from '../../dtos/configs/medias/media.dto';\nimport { ImageMediaDto } from '../../dtos/configs/medias/image/image-media.dto';\nimport { TextMediaDto } from '../../dtos/configs/medias/text/text-media.dto';\nimport { FontOrMediaDto } from '../../dtos/configs/medias/image/font-or-media.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaConnectorService {\n private _image: MediaDto;\n\n private currentUuid = null;\n\n private askImageSource = new Subject<MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto>();\n\n private askImageDone = this.askImageSource.asObservable();\n\n private returnedImageSource = new Subject<MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto>();\n\n private returnedImageDone = this.returnedImageSource.asObservable();\n\n get image() {\n return this._image;\n }\n\n get uuid() {\n return this.currentUuid;\n }\n\n set image(value) {\n this._image = value;\n this.returnedImageSource.next(this.currentUuid);\n }\n\n bindEventImage() {\n return this.askImageDone;\n }\n\n bindReturnedImage() {\n return this.returnedImageDone;\n }\n\n askImage(uuid, mediaDto: MediaDto = null) {\n this.currentUuid = uuid;\n this.askImageSource.next(mediaDto);\n }\n}\n","export class TranslationsDto {\n list_component = 'wb.configs.translations.1';\n header = 'wb.configs.translations.2';\n footer = 'wb.configs.translations.3';\n structure = 'wb.configs.translations.4';\n config = 'wb.configs.translations.5';\n select_component = 'wb.configs.translations.6';\n doc_component = 'wb.configs.translations.7';\n types = new TranslationStructureDto();\n blocks = new TranslationBlockDto();\n}\n\nexport class TranslationStructureDto {\n sliders: string;\n video: string;\n launch_videos: string;\n images: string;\n text_backgrounds: string;\n images_texts: string;\n texts: string;\n forms: string;\n products_list: string;\n product: string;\n socials: string;\n rassurances: string;\n newsletter: string;\n witness: string;\n reviews: string;\n quotes: string;\n timer: string;\n map: string;\n code: string;\n separator: string;\n}\n\nexport class TranslationBlockDto {\n forms_background: string;\n forms_imageleft: string;\n forms_imageright: string;\n forms_simple: string;\n code_html: string;\n code_stylesheet: string;\n code_javascript: string;\n images_big_and_double: string;\n images_bigs_and_double_middle: string;\n images_double: string;\n image_quadruple: string;\n image_quadruple_left_one_right: string;\n images_simple: string;\n images_triple: string;\n images_big_left_text_right: string;\n images_big_right_text_left: string;\n images_left_text_right: string;\n images_one_text_one: string;\n images_right_text_left: string;\n images_small_left_text_right: string;\n images_small_right_text_left: string;\n images_text_one_text: string;\n launch_videos_button: string;\n launch_videos_buttontxt: string;\n map_background_form_left: string;\n map_background_form_right: string;\n map_fullpage: string;\n map_left_text: string;\n map_right_text: string;\n map_text_form: string;\n newsletter_aligned_center_background: string;\n newsletter_aligned_center_image: string;\n newsletter_center_image: string;\n newsletter_center_image_instagram: string;\n product_zoom: string;\n product_zoom_more: string;\n product_zoom_selected: string;\n products_list_classic: string;\n products_list_selected: string;\n products_list_simple: string;\n quotes_simple: string;\n quotes_author: string;\n quotes_simple_background: string;\n rassurances_quadruple_aligned: string;\n rassurances_quadruple_background: string;\n rassurances_triple_background: string;\n separator_simple: string;\n sliders_double_imageright: string;\n sliders_fullpage: string;\n sliders_imageright: string;\n sliders_leftnav: string;\n socials_instagram: string;\n socials_instagram_left: string;\n socials_like: string;\n socials_network: string;\n text_backgrounds_simple: string;\n text_backgrounds_with_txt: string;\n texts_double: string;\n texts_double_background: string;\n texts_one: string;\n texts_one_background: string;\n texts_quadruple: string;\n texts_quadruple_background: string;\n texts_triple: string;\n texts_triple_background: string;\n timer_airport: string;\n timer_background: string;\n timer_clock: string;\n timer_simple: string;\n videos_youtube: string;\n videos_youtubetxt: string;\n videos_youtubetxt_content: string;\n videos_youtubetxt_left: string;\n reviews_simple: string;\n reviews_waterfall: string;\n witness_fullpage_navigation: string;\n witness_navigation: string;\n witness_quadruple: string;\n witness_triple: string;\n about_block: string;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export class BlockConfigDto {\n constructor(type, name, image) {\n this.type = type;\n this.name = name;\n this.image = image;\n }\n\n private _type: string;\n\n private _name: string;\n\n private _image: string;\n\n get name(): string {\n return this._name;\n }\n\n set name(value: string) {\n this._name = value;\n }\n\n get image(): string {\n return this._image;\n }\n\n set image(value: string) {\n this._image = value;\n }\n\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InjectorService {\n static Injector: Injector = null;\n}\n","import { BlockConfigDto } from '../../dtos/configs/blocks/block-config.dto';\nimport { InjectorService } from '../utils/injector.service';\n\nexport abstract class ParentStructuresService {\n getComponents(blocks) {\n const blockConfigDtos: BlockConfigDto[] = [];\n Object.keys(blocks).map(objectKey => {\n const structure = InjectorService.Injector.get(blocks[objectKey]);\n blockConfigDtos.push(new BlockConfigDto(structure.type(), structure.text, structure.image()));\n });\n\n return blockConfigDtos;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslateBlockService {\n constructor(private translateService: TranslateService) {}\n\n translateProperties(block: any) {\n Object.keys(block).forEach((property) => {\n if (typeof block[property] === 'string' && /^wb\\./i.test(block[property])) {\n block[property] = this.translateService.instant(block[property]);\n }\n });\n }\n}\n","import { InjectorService } from '../../services/utils/injector.service';\nimport { TranslateBlockService } from '../../services/utils/translate-block.service';\n\nexport const FORM_TYPE_TEXT = 'text';\nexport const FORM_TYPE_NUMBER = 'number';\nexport const FORM_TYPE_CHECKBOX = 'checkbox';\nexport const FORM_TYPE_TAG = 'tag';\nexport const FORM_TYPE_COLOR = 'color';\n\nexport const FORM_TYPE_IMAGE_MASK_SMALL = 'small';\nexport const FORM_TYPE_IMAGE_MASK_MEDIUM = 'medium';\nexport const FORM_TYPE_IMAGE_MASK_LARGE = 'large';\n\n/**\n * Dto name is fixed, if you change them, you have to update in all component\n */\nexport const FORM_NAME_ID = 'id';\nexport const FORM_NAME_ID_FORM = 'id_form';\nexport const FORM_NAME_MARGIN = 'margin';\nexport const FORM_NAME_MARGIN_TOP = 'margin_top';\nexport const FORM_NAME_AMPLIFY_TYPE = 'amplify_type';\nexport const FORM_NAME_AMPLIFY_NBLIGNE = 'amplify_nbligne';\nexport const FORM_NAME_APP_ID = 'app_id';\nexport const FORM_NAME_IMAGE_URL = 'image_url';\nexport const FORM_NAME_IMAGE_WIDTH = 'image_width';\nexport const FORM_NAME_IMAGE_HEIGHT = 'image_height';\nexport const FORM_NAME_IMAGE = 'image';\nexport const FORM_NAME_ICON = 'icon';\nexport const FORM_NAME_PAYMENT = 'payment_link';\nexport const FORM_NAME_ICON_ADDRESS = 'icon_address';\nexport const FORM_NAME_ICON_PHONE = 'icon_phone';\nexport const FORM_NAME_ICON_EMAIL = 'icon_email';\nexport const FORM_NAME_IMAGE_RIGHT = 'image_right';\nexport const FORM_NAME_ICON_RIGHT = 'icon_right';\nexport const FORM_NAME_ICON_COLOR_RIGHT = 'icon_color_right';\nexport const FORM_NAME_ICON_LINK_RIGHT = 'icon_link_right';\nexport const FORM_NAME_ICON_TARGET_RIGHT = 'icon_target_right';\nexport const FORM_NAME_IMAGE_LEFT = 'image_left';\nexport const FORM_NAME_COORDINATE_X = 'coordinate_x';\nexport const FORM_NAME_COORDINATE_Y = 'coordinate_y';\nexport const FORM_NAME_ICON_LEFT = 'icon_left';\nexport const FORM_NAME_TEXT_BACKGROUND_LINK = 'text_background_link';\nexport const FORM_NAME_TEXT_BACKGROUND = 'text_background';\nexport const FORM_NAME_ICON_COLOR = 'icon_color';\nexport const FORM_NAME_ICON_COLOR_LEFT = 'icon_color_left';\nexport const FORM_NAME_ICON_LINK_LEFT = 'icon_link_left';\nexport const FORM_NAME_ICON_TARGET_LEFT = 'icon_target_left';\nexport const FORM_NAME_IMAGE_MIDDLE_LEFT = 'image_middle_left';\nexport const FORM_NAME_ICON_MIDDLE_LEFT = 'icon_middle_left';\nexport const FORM_NAME_ICON_COLOR_MIDDLE_LEFT = 'icon_color_middle_left';\nexport const FORM_NAME_ICON_LINK_MIDDLE_LEFT = 'icon_link_middle_left';\nexport const FORM_NAME_ICON_TARGET_MIDDLE_LEFT = 'icon_target_middle_left';\nexport const FORM_NAME_IMAGE_MIDDLE_RIGHT = 'image_middle_right';\nexport const FORM_NAME_ICON_MIDDLE_RIGHT = 'icon_middle_right';\nexport const FORM_NAME_ICON_COLOR_MIDDLE_RIGHT = 'icon_color_middle_right';\nexport const FORM_NAME_ICON_LINK_MIDDLE_RIGHT = 'icon_link_middle_right';\nexport const FORM_NAME_ICON_TARGET_MIDDLE_RIGHT = 'icon_target_middle_right';\nexport const FORM_NAME_IMAGE_MIDDLE_TOP = 'image_middle_top';\nexport const FORM_NAME_ICON_MIDDLE_TOP = 'icon_middle_top';\nexport const FORM_NAME_ICON_COLOR_MIDDLE_TOP = 'icon_color_middle_top';\nexport const FORM_NAME_IMAGE_MIDDLE_BOTTOM = 'image_middle_bottom';\nexport const FORM_NAME_IMAGE_LEFT_BOTTOM = 'image_left_bottom';\nexport const FORM_NAME_IMAGE_LEFT_TOP = 'image_left_top';\nexport const FORM_NAME_ICON_MIDDLE_BOTTOM = 'icon_middle_bottom';\nexport const FORM_NAME_ICON_BOTTOM_LEFT = 'icon_bottom_left';\nexport const FORM_NAME_ICON_BOTTOM_RIGHT = 'icon_bottom_right';\nexport const FORM_NAME_ICON_COLOR_BOTTOM_LEFT = 'icon__color_bottom_left';\nexport const FORM_NAME_ICON_COLOR_BOTTOM_RIGHT = 'icon__color_bottom_right';\nexport const FORM_NAME_PAYMENT_OR_MEDIA = 'payment_or_media';\nexport const FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM = 'icon_color_middle_bottom';\nexport const FORM_NAME_TIME = 'time';\nexport const FORM_NAME_DOTS = 'dots';\nexport const FORM_NAME_FULLPAGE = 'fullpage';\nexport const FORM_NAME_TEXT_CENTER = 'text_center';\nexport const FORM_NAME_SLIDER = 'slider';\nexport const FORM_NAME_IMAGE_BOTTOM = 'image_bottom';\nexport const FORM_NAME_CONTROL = 'control';\nexport const FORM_NAME_AUTOPLAY = 'autoplay';\nexport const FORM_NAME_MUTE = 'mute';\nexport const FORM_NAME_LOOP = 'loop';\nexport const FORM_NAME_LINK = 'link';\nexport const FORM_NAME_LINK_LEFT = 'link_left';\nexport const FORM_NAME_LINK_RIGHT = 'link_right';\nexport const FORM_NAME_URL = 'url';\nexport const FORM_NAME_URL_LEFT = 'url_left';\nexport const FORM_NAME_URL_RIGHT = 'url_right';\nexport const FORM_NAME_TEXT = 'text';\nexport const FORM_NAME_TEXT_LEFT = 'text_left';\nexport const FORM_NAME_TEXT_RIGHT = 'text_right';\nexport const FORM_NAME_TYPE_VIDEO = 'type_video';\nexport const FORM_NAME_TYPE_PRODUCT = 'type_product';\nexport const FORM_NAME_AMPLIFY_CATEGORY = 'amplify_category';\nexport const FORM_NAME_LIST_PRODUCT = 'list_product';\nexport const FORM_NAME_NBLIGNE = 'nb_ligne';\nexport const FORM_NAME_ID_PRODUCT = 'id_product';\nexport const FORM_NAME_TITLE = 'title';\nexport const FORM_NAME_COLOR_BUTTON = 'color-button';\nexport const FORM_NAME_BACKGROUND_COLOR_BUTTON = 'background-color-button';\nexport const FORM_NAME_ADDRESS = 'address';\nexport const FORM_NAME_PHONE = 'phone';\nexport const FORM_NAME_EMAIL = 'email';\nexport const FORM_NAME_AUTHOR = 'author';\nexport const FORM_NAME_SHOW_TITLE = 'show_title';\nexport const FORM_NAME_TITLE_MIDDLE_RIGHT = 'title_middle_right';\nexport const FORM_NAME_TITLE_MIDDLE_LEFT = 'title_middle_left';\nexport const FORM_NAME_TITLE_LEFT = 'title_left';\nexport const FORM_NAME_TITLE_RIGHT = 'title_right';\nexport const FORM_NAME_CONTENT = 'content';\nexport const FORM_NAME_PLACEHOLDER = 'placeholder';\nexport const FORM_NAME_CONTENT_LEFT = 'content_left';\nexport const FORM_NAME_CONTENT_RIGHT = 'content_right';\nexport const FORM_NAME_CONTENT_MIDDLE_RIGHT = 'content_middle_right';\nexport const FORM_NAME_CONTENT_MIDDLE_BOTTOM = 'content_middle_bottom';\nexport const FORM_NAME_CONTENT_MIDDLE_LEFT = 'content_middle_left';\nexport const FORM_NAME_CONTENT_MIDDLE_TOP = 'content_middle_top';\nexport const FORM_NAME_CONTENT_BOTTOM_LEFT = 'content_bottom_left';\nexport const FORM_NAME_CONTENT_BOTTOM_RIGHT = 'content_bottom_right';\nexport const FORM_NAME_IMAGE_PAYMENT = 'image_payment';\nexport const FORM_NAME_COLOR = 'color';\nexport const FORM_NAME_PADDING = 'padding';\nexport const FORM_NAME_BACKGROUND_COLOR = 'background_color';\nexport const FORM_NAME_BACKGROUND_COLOR_SECONDARY = 'background_color_secondary';\nexport const FORM_NAME_HREF = 'href';\nexport const FORM_NAME_TARGET = 'target';\nexport const FORM_NAME_TEXT_COLOR = 'text_color';\nexport const FORM_NAME_STAR_COLOR = 'star_color';\nexport const FORM_NAME_SECONDARY_COLOR = 'secondary_color';\nexport const FORM_NAME_STAR_SECONDARY_COLOR = 'star_secondary_color';\nexport const FORM_NAME_COLOR_LEFT = 'color_left';\nexport const FORM_NAME_COLOR_RIGHT = 'color_right';\nexport const FORM_NAME_COLOR_MIDDLE_LEFT = 'color_middle_left';\nexport const FORM_NAME_COLOR_MIDDLE_RIGHT = 'color_middle_right';\nexport const FORM_NAME_WIDTH = 'width';\nexport const FORM_NAME_HEIGHT = 'height';\nexport const FORM_NAME_BORDER_STYLE = 'border_style';\nexport const FORM_NAME_BORDER_COLOR = 'border_color';\nexport const FORM_NAME_BUTTON = 'button';\nexport const FORM_NAME_BUTTON_LEFT = 'button_left';\nexport const FORM_NAME_BUTTON_MIDDLE_LEFT = 'button_middle_left';\nexport const FORM_NAME_BUTTON_RIGHT = 'button_right';\nexport const FORM_NAME_BUTTON_MIDDLE_RIGHT = 'button_middle_right';\nexport const FORM_NAME_BUTTON_TEXT = 'button_text';\nexport const FORM_NAME_URL_TARGET = 'url_target';\nexport const FORM_NAME_FACEBOOK = 'facebook';\nexport const FORM_NAME_TWITTER = 'twitter';\nexport const FORM_NAME_INSTAGRAM = 'instagram';\nexport const FORM_NAME_PINTEREST = 'pinterest';\nexport const FORM_NAME_IMAGE_CENTER = 'image_center';\nexport const FORM_NAME_CONTENT_CENTER = 'content_center';\nexport const FORM_NAME_TITLE_CENTER = 'title_center';\nexport const FORM_NAME_URL_CENTER = 'url_center';\nexport const FORM_NAME_COLOR_CENTER = 'color_center';\nexport const FORM_NAME_IMAGE_CENTER_LEFT = 'image_center_left';\nexport const FORM_NAME_CONTENT_CENTER_LEFT = 'content_center_left';\nexport const FORM_NAME_TITLE_CENTER_LEFT = 'title_center_left';\nexport const FORM_NAME_URL_CENTER_LEFT = 'url_center_left';\nexport const FORM_NAME_COLOR_CENTER_LEFT = 'color_center_left';\nexport const FORM_NAME_IMAGE_CENTER_RIGHT = 'image_center_right';\nexport const FORM_NAME_CONTENT_CENTER_RIGHT = 'content_center_right';\nexport const FORM_NAME_TITLE_CENTER_RIGHT = 'title_center_right';\nexport const FORM_NAME_URL_CENTER_RIGHT = 'url_center_right';\nexport const FORM_NAME_COLOR_CENTER_RIGHT = 'color_center_right';\nexport const FORM_NAME_AUTHOR_RIGHT = 'author_right';\nexport const FORM_NAME_AUTHOR_LEFT = 'author_left';\nexport const FORM_NAME_IMAGE_BACKGROUND = 'image_background';\nexport const FORM_NAME_IMG_MASK = 'image_mask';\nexport const FORM_NAME_PARALLAX = 'parallax';\nexport const FORM_NAME_PARALLAX_SPEED = 'parallax_speed';\nexport const FORM_NAME_PARALLAX_INVERTED = 'parallax_inverted';\nexport const FORM_NAME_DATE = 'date';\nexport const FORM_NAME_DAYS = 'days';\nexport const FORM_NAME_MINUTES = 'minutes';\nexport const FORM_NAME_HOURS = 'hours';\nexport const FORM_NAME_SECONDS = 'seconds';\nexport const FORM_NAME_ABSOLUTE = 'absolute';\nexport const FORM_NAME_FIRST_STEP = 'first_step';\nexport const FORM_NAME_RATINGS_LINK = 'ratings_link';\nexport const FORM_NAME_UNDERLINE_COLOR = 'underline_color';\nexport const FORM_NAME_ELEMENTS = 'elements';\nexport const FORM_NAME_AUTHOR_NAME = 'author_name';\nexport const FORM_NAME_AUTHOR_TITLE = 'author_title';\nexport const FORM_NAME_INIT = 'init';\nexport const FORM_NAME_FAQ = 'faq_rows';\nexport const FORM_NAME_SHADOW_COLOR = 'shadow_color';\nexport const FORM_NAME_OPEN = 'open';\nexport const FORM_NAME_ACCORDION = 'accordion';\nexport const FORM_NAME_ALIGN_BUTTON = 'align_button';\nexport const FORM_NAME_WIDTH_BLOCK = 'width_block';\nexport const FORM_NAME_HIDE_BLOCK = 'hide_block';\nexport const FORM_NAME_EXTERNAL = 'external';\nexport const FORM_NAME_ITEM_NUMBER = 'item_number';\nexport const FORM_NAME_LINE_NUMBER = 'line_number';\nexport const FORM_NAME_ROWS = 'rows';\nexport const FORM_NAME_COLUMNS = 'columns';\n\nexport class FormsContentDto {\n id: string;\n\n label: string;\n\n type: string;\n\n placeholder: string;\n\n help: string | Array<string>;\n\n value: any;\n\n step: Array<string>;\n\n stepKey: Array<string>;\n\n labelEnable: string;\n\n reverseShow: boolean = false;\n\n /**\n * 0: On\n * 1: Off\n */\n state: Array<string>;\n\n iconHelp: boolean;\n\n constructor(\n id,\n label,\n type,\n value: boolean | string | number,\n placeholder,\n help: string | Array<string> = '',\n step = [],\n stepKey = [],\n state = [],\n iconHelp = false,\n labelEnable = '',\n reverseShow = false\n ) {\n this.id = id;\n this.label = label;\n this.type = type;\n this.placeholder = placeholder;\n this.help = help;\n this.value = value;\n this.step = step;\n this.stepKey = stepKey;\n this.state = state;\n this.iconHelp = iconHelp;\n this.labelEnable = labelEnable;\n this.reverseShow = reverseShow;\n }\n}\n\nexport class FormsDto<T> {\n block: any;\n\n type: any;\n\n forms: FormsContentDto[] = [];\n\n constructor(block, hasMargin = true) {\n const translateBlockService = InjectorService.Injector.get(TranslateBlockService);\n this.block = block;\n translateBlockService.translateProperties(this.block);\n if (hasMargin) {\n this.forms.push(\n new FormsContentDto(\n FORM_NAME_HIDE_BLOCK,\n 'wb.forms.FormsContentDto.16',\n FORM_TYPE_TAG,\n block[FORM_NAME_HIDE_BLOCK],\n '#122231',\n '',\n ['wb.blocks.FormContentDto.123', 'wb.blocks.FormContentDto.122'],\n ['0', '1']\n )\n );\n }\n this.forms.push(\n new FormsContentDto(\n FORM_NAME_MARGIN_TOP,\n 'wb.forms.FormsContentDto.13',\n FORM_TYPE_TAG,\n block[FORM_NAME_MARGIN_TOP],\n '#122231',\n '',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.94',\n 'wb.blocks.FormContentDto.95',\n 'wb.blocks.FormContentDto.96',\n ],\n ['none', 'small', 'medium', 'large']\n )\n );\n if (hasMargin) {\n this.forms.push(\n new FormsContentDto(\n FORM_NAME_MARGIN,\n 'wb.forms.FormsContentDto.1',\n FORM_TYPE_TAG,\n block[FORM_NAME_MARGIN],\n '#122231',\n '',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.94',\n 'wb.blocks.FormContentDto.95',\n 'wb.blocks.FormContentDto.96',\n ],\n ['none', 'small', 'medium', 'large']\n )\n );\n this.forms.push(\n new FormsContentDto(\n FORM_NAME_WIDTH_BLOCK,\n 'wb.forms.FormsContentDto.2',\n FORM_TYPE_TAG,\n block[FORM_NAME_WIDTH_BLOCK],\n '#122231',\n [\n 'wb.forms.FormsContentDto.5',\n 'wb.forms.FormsContentDto.6',\n 'wb.forms.FormsContentDto.7',\n 'wb.forms.FormsContentDto.8',\n ],\n [\n 'wb.forms.FormsContentDto.9',\n 'wb.forms.FormsContentDto.10',\n 'wb.forms.FormsContentDto.11',\n 'wb.forms.FormsContentDto.12',\n ],\n ['small', 'medium', 'large', 'full']\n )\n );\n }\n }\n}\n","import { v4 as uuid } from 'uuid';\nimport { FORM_NAME_HIDE_BLOCK, FORM_NAME_MARGIN, FORM_NAME_MARGIN_TOP, FORM_NAME_WIDTH_BLOCK } from '../forms/forms.dto';\n\nexport abstract class ParentBlockDto {\n uuid: string = uuid();\n type: string;\n [FORM_NAME_MARGIN]: string;\n [FORM_NAME_WIDTH_BLOCK]: string;\n\n constructor(type) {\n this.type = type;\n this[FORM_NAME_HIDE_BLOCK] = '1';\n this[FORM_NAME_MARGIN] = 'medium';\n this[FORM_NAME_MARGIN_TOP] = 'small';\n this[FORM_NAME_WIDTH_BLOCK] = 'medium';\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport {\n FORM_NAME_DOTS,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_SLIDER,\n FORM_NAME_TIME,\n FORM_NAME_WIDTH_BLOCK,\n} from '../../forms/forms.dto';\n\nexport class SlidersFullpageDto extends ParentBlockDto {\n [FORM_NAME_TIME] = '4000';\n [FORM_NAME_DOTS] = true;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_SLIDER]: ImageMediaDto[] = [];\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_WIDTH_BLOCK] = 'full';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_DOTS,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TIME,\n FORM_NAME_WIDTH,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { SlidersFullpageDto } from '../../../dtos/blocks/sliders/sliders-fullpage.dto';\n\nexport const TYPE_SLIDERS_FULLPAGE = 'sliders-fullpage';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersFullpageService {\n private _text = 'wb.blocks.sliders-fullpage.text';\n\n static selector() {\n return 'wb-' + TYPE_SLIDERS_FULLPAGE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS_FULLPAGE;\n }\n\n image() {\n return 'Diaporama_FullSize.png';\n }\n\n getForm(content: SlidersFullpageDto = this.getConfig()) {\n const sliderFullPageFormDto = new FormsDto(content);\n\n const timeSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_TIME,\n 'wb.blocks.FormContentDto.60',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TIME],\n '100ms',\n ''\n );\n sliderFullPageFormDto.forms.push(timeSliderFullPageContentDto);\n\n const dotsSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_DOTS,\n 'wb.forms.FormsContentDto.25',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_DOTS],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.26'\n );\n sliderFullPageFormDto.forms.push(dotsSliderFullPageContentDto);\n\n const maskSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n sliderFullPageFormDto.forms.push(maskSliderFullPageContentDto);\n\n return sliderFullPageFormDto;\n }\n\n getConfig(): SlidersFullpageDto {\n return new SlidersFullpageDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { FORM_NAME_FULLPAGE, FORM_NAME_IMG_MASK, FORM_NAME_SLIDER, FORM_NAME_TIME, FORM_NAME_WIDTH_BLOCK } from '../../forms/forms.dto';\n\nexport class SlidersLeftnavDto extends ParentBlockDto {\n [FORM_NAME_TIME] = '4000';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_SLIDER]: ImageMediaDto[] = [];\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_WIDTH_BLOCK] = 'full';\n}\n","import { Injectable } from '@angular/core';\nimport { SlidersLeftnavDto } from '../../../dtos/blocks/sliders/sliders-leftnav.dto';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TIME,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_SLIDERS_LEFTNAV = 'sliders-leftnav';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersLeftnavService {\n private _text = 'wb.blocks.sliders-leftnav.text';\n\n static selector() {\n return 'wb-' + TYPE_SLIDERS_LEFTNAV;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS_LEFTNAV;\n }\n\n image() {\n return ':lang/Diaporama_NavLeft.png';\n }\n\n getForm(content: SlidersLeftnavDto = this.getConfig()) {\n const slidersLeftnavFormDto = new FormsDto(content);\n\n const timeSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_TIME,\n 'wb.blocks.FormContentDto.60',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TIME],\n '100ms',\n ''\n );\n slidersLeftnavFormDto.forms.push(timeSliderFullPageContentDto);\n\n const maskSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n slidersLeftnavFormDto.forms.push(maskSliderFullPageContentDto);\n\n return slidersLeftnavFormDto;\n }\n\n getConfig() {\n return new SlidersLeftnavDto(this.type());\n }\n}\n","import { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { SlidersFullpageDto } from './sliders-fullpage.dto';\nimport { FORM_NAME_IMAGE, FORM_NAME_IMG_MASK, FORM_NAME_WIDTH_BLOCK } from '../../forms/forms.dto';\n\nexport class SlidersImagerightDto extends SlidersFullpageDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_WIDTH_BLOCK] = 'full';\n}\n","import { Injectable } from '@angular/core';\nimport { SlidersImagerightDto } from '../../../dtos/blocks/sliders/sliders-imageright.dto';\nimport {\n FORM_NAME_DOTS,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TIME,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_SLIDERS_IMAGERIGHT = 'sliders-imageright';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersImagerightService {\n private _text = 'wb.blocks.sliders-imageright.text';\n\n static selector() {\n return 'wb-' + TYPE_SLIDERS_IMAGERIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS_IMAGERIGHT;\n }\n\n image() {\n return 'Diaporama_ImageRight.png';\n }\n\n getForm(content: SlidersImagerightDto = this.getConfig()) {\n const slidersImagerightFormDto = new FormsDto(content);\n\n const timeSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_TIME,\n 'wb.blocks.FormContentDto.60',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TIME],\n '100ms',\n ''\n );\n slidersImagerightFormDto.forms.push(timeSliderFullPageContentDto);\n\n const dotsSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_DOTS,\n 'wb.forms.FormsContentDto.25',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_DOTS],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.26'\n );\n slidersImagerightFormDto.forms.push(dotsSliderFullPageContentDto);\n\n const maskSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n slidersImagerightFormDto.forms.push(maskSliderFullPageContentDto);\n\n return slidersImagerightFormDto;\n }\n\n getConfig() {\n return new SlidersImagerightDto(this.type());\n }\n}\n","import { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { SlidersFullpageDto } from './sliders-fullpage.dto';\nimport { FORM_NAME_IMAGE, FORM_NAME_IMAGE_BOTTOM, FORM_NAME_IMG_MASK, FORM_NAME_WIDTH_BLOCK } from '../../forms/forms.dto';\n\nexport class SlidersDoubleImagerightDto extends SlidersFullpageDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_IMAGE_BOTTOM]: ImageMediaDto;\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_WIDTH_BLOCK] = 'full';\n}\n","import { Injectable } from '@angular/core';\nimport { SlidersDoubleImagerightDto } from '../../../dtos/blocks/sliders/sliders-double-imageright.dto';\nimport {\n FORM_NAME_DOTS,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TIME,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_SLIDERS_DOUBLE_IMAGERIGHT = 'sliders-double-imageright';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersDoubleImagerightService {\n private _text = 'wb.blocks.sliders-double-imageright.text';\n\n static selector() {\n return 'wb-' + TYPE_SLIDERS_DOUBLE_IMAGERIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS_DOUBLE_IMAGERIGHT;\n }\n\n image() {\n return 'Diaporama_2ImageRight.png';\n }\n\n getForm(content: SlidersDoubleImagerightDto = this.getConfig()) {\n const slidersDoubleImagerightDto = new FormsDto(content);\n\n const timeSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_TIME,\n 'wb.blocks.FormContentDto.60',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TIME],\n '100ms',\n ''\n );\n slidersDoubleImagerightDto.forms.push(timeSliderFullPageContentDto);\n\n const dotsSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_DOTS,\n 'wb.forms.FormsContentDto.25',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_DOTS],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.26'\n );\n slidersDoubleImagerightDto.forms.push(dotsSliderFullPageContentDto);\n\n const maskSliderFullPageContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n slidersDoubleImagerightDto.forms.push(maskSliderFullPageContentDto);\n\n return slidersDoubleImagerightDto;\n }\n\n getConfig() {\n return new SlidersDoubleImagerightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_BORDER_STYLE, FORM_NAME_COLOR, FORM_NAME_HEIGHT, FORM_NAME_WIDTH, FORM_NAME_FULLPAGE } from '../../forms/forms.dto';\n\nexport class SeparatorSimpleDto extends ParentBlockDto {\n [FORM_NAME_COLOR] = '#dddddd';\n [FORM_NAME_WIDTH] = '80%';\n [FORM_NAME_HEIGHT] = '1px';\n [FORM_NAME_BORDER_STYLE] = 'solid';\n [FORM_NAME_FULLPAGE] = true;\n}\n","import { Injectable } from '@angular/core';\nimport { SeparatorSimpleDto } from '../../../dtos/blocks/separators/separator-simple.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_HEIGHT,\n FORM_NAME_WIDTH,\n FormsDto,\n FormsContentDto,\n FORM_TYPE_TAG,\n FORM_TYPE_COLOR,\n FORM_NAME_BORDER_STYLE,\n FORM_TYPE_CHECKBOX,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_SEPARATOR_SIMPLE = 'separator-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeparatorSimpleService {\n private _text = 'wb.blocks.separator-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_SEPARATOR_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SEPARATOR_SIMPLE;\n }\n\n image() {\n return 'Separateur_Classic.png';\n }\n\n getForm(content: SeparatorSimpleDto = this.getConfig()) {\n const separatorSimpleFormDto = new FormsDto(content);\n const separatorSimpleContentColorDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.54',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#000000',\n ''\n );\n const separatorSimpleStyleHeightDto = new FormsContentDto(\n FORM_NAME_BORDER_STYLE,\n 'wb.blocks.FormContentDto.55',\n FORM_TYPE_TAG,\n content[FORM_NAME_BORDER_STYLE],\n '1',\n '',\n ['wb.blocks.FormContentDto.97', 'wb.blocks.FormContentDto.98', 'wb.blocks.FormContentDto.99', 'wb.blocks.FormContentDto.100'],\n ['solid', 'dotted', 'dashed', 'double']\n );\n const separatorSimpleContentHeightDto = new FormsContentDto(\n FORM_NAME_HEIGHT,\n 'wb.blocks.FormContentDto.57',\n FORM_TYPE_TAG,\n content[FORM_NAME_HEIGHT],\n '1',\n '',\n ['1px', '2px', '5px', '8px']\n );\n const separatorSimpleContentWidthDto = new FormsContentDto(\n FORM_NAME_WIDTH,\n 'wb.blocks.FormContentDto.58',\n FORM_TYPE_TAG,\n content[FORM_NAME_WIDTH],\n '400',\n '',\n ['20%', '40%', '60%', '80%']\n );\n separatorSimpleFormDto.forms.push(separatorSimpleContentColorDto);\n separatorSimpleFormDto.forms.push(separatorSimpleStyleHeightDto);\n separatorSimpleFormDto.forms.push(separatorSimpleContentHeightDto);\n separatorSimpleFormDto.forms.push(separatorSimpleContentWidthDto);\n\n return separatorSimpleFormDto;\n }\n\n getConfig() {\n return new SeparatorSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT } from '../../forms/forms.dto';\n\nexport class CodeHtmlDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.3';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { CodeHtmlDto } from '../../../dtos/blocks/code/code-html.dto';\n\nexport const TYPE_CODE_HTML = 'code-html';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CodeHtmlService {\n private _text = 'wb.blocks.code-html.text';\n\n static selector() {\n return 'wb-' + TYPE_CODE_HTML;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_CODE_HTML;\n }\n\n image() {\n return 'Html_Classic.png';\n }\n\n getForm(content: CodeHtmlDto = this.getConfig()) {\n return new FormsDto(content, false);\n }\n\n getConfig() {\n return new CodeHtmlDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_COORDINATE_X, FORM_NAME_COORDINATE_Y } from '../../forms/forms.dto';\n\nexport class MapFullpageDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { MapFullpageDto } from '../../../dtos/blocks/map/map-fullpage.dto';\n\nexport const TYPE_MAP_FULLPAGE = 'map-fullpage';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapFullpageService {\n private _text = 'wb.blocks.map-fullpage.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_FULLPAGE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_FULLPAGE;\n }\n\n image() {\n return 'Map_FullSize.png';\n }\n\n getForm(content: MapFullpageDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new MapFullpageDto(this.type());\n }\n}\n","import { FORM_NAME_ID, FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../forms/forms.dto';\n\nexport class MediaDto {\n [FORM_NAME_ID]: string;\n [FORM_NAME_IMAGE_URL]: string;\n [FORM_NAME_IMAGE_WIDTH]: string;\n [FORM_NAME_IMAGE_HEIGHT]: string;\n}\n","import { MediaDto } from '../media.dto';\nimport { FORM_NAME_ICON } from '../../../forms/forms.dto';\n\nexport class FontOrMediaDto extends MediaDto {\n constructor(iconName = 'fas fa-star') {\n super();\n this[FORM_NAME_ICON] = iconName;\n }\n\n [FORM_NAME_ICON] = '';\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ADDRESS,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_EMAIL,\n FORM_NAME_FACEBOOK,\n FORM_NAME_ICON_ADDRESS,\n FORM_NAME_ICON_EMAIL,\n FORM_NAME_ICON_PHONE,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PHONE,\n FORM_NAME_PINTEREST,\n FORM_NAME_TITLE,\n FORM_NAME_TWITTER,\n} from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\n\nexport class MapLeftTextDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_ICON_ADDRESS] = new FontOrMediaDto('far fa-address-book');\n [FORM_NAME_ICON_PHONE] = new FontOrMediaDto('fas fa-phone');\n [FORM_NAME_ICON_EMAIL] = new FontOrMediaDto('fas fa-envelope-open-text');\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.8';\n [FORM_NAME_ADDRESS] = 'wb.dto.ADDRESS.9';\n [FORM_NAME_PHONE] = 'wb.dto.PHONE.10';\n [FORM_NAME_EMAIL] = 'wb.dto.EMAIL.11';\n [FORM_NAME_FACEBOOK] = '';\n [FORM_NAME_TWITTER] = '';\n [FORM_NAME_PINTEREST] = '';\n [FORM_NAME_INSTAGRAM] = '';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FACEBOOK,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_LINK,\n FORM_NAME_PINTEREST,\n FORM_NAME_TWITTER,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { MapLeftTextDto } from '../../../dtos/blocks/map/map-left-text.dto';\n\nexport const TYPE_MAP_LEFT_TEXT = 'map-left-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapLeftTextService {\n private _text = 'wb.blocks.map-left-text.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_LEFT_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_LEFT_TEXT;\n }\n\n image() {\n return ':lang/Map_TxtLeft.png';\n }\n\n getForm(content: MapLeftTextDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const FacebookContentDto = new FormsContentDto(\n FORM_NAME_FACEBOOK,\n 'wb.blocks.FormContentDto.23',\n FORM_TYPE_TEXT,\n content[FORM_NAME_FACEBOOK],\n '',\n ''\n );\n formsDto.forms.push(FacebookContentDto);\n\n const TwitterContentDto = new FormsContentDto(\n FORM_NAME_TWITTER,\n 'wb.blocks.FormContentDto.24',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TWITTER],\n '',\n ''\n );\n formsDto.forms.push(TwitterContentDto);\n\n const PinterestContentDto = new FormsContentDto(\n FORM_NAME_PINTEREST,\n 'wb.blocks.FormContentDto.25',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PINTEREST],\n '',\n ''\n );\n formsDto.forms.push(PinterestContentDto);\n\n const InstagramContentDto = new FormsContentDto(\n FORM_NAME_INSTAGRAM,\n 'wb.blocks.FormContentDto.26',\n FORM_TYPE_TEXT,\n content[FORM_NAME_INSTAGRAM],\n '',\n ''\n );\n formsDto.forms.push(InstagramContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new MapLeftTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ADDRESS,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_EMAIL,\n FORM_NAME_FACEBOOK,\n FORM_NAME_ICON_ADDRESS,\n FORM_NAME_ICON_EMAIL,\n FORM_NAME_ICON_PHONE,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PHONE,\n FORM_NAME_PINTEREST,\n FORM_NAME_TITLE,\n FORM_NAME_TWITTER,\n} from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\n\nexport class MapRightTextDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_ICON_ADDRESS] = new FontOrMediaDto('far fa-address-book');\n [FORM_NAME_ICON_PHONE] = new FontOrMediaDto('fas fa-phone');\n [FORM_NAME_ICON_EMAIL] = new FontOrMediaDto('fas fa-envelope-open-text');\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.8';\n [FORM_NAME_ADDRESS] = 'wb.dto.ADDRESS.9';\n [FORM_NAME_PHONE] = 'wb.dto.PHONE.10';\n [FORM_NAME_EMAIL] = 'wb.dto.EMAIL.11';\n [FORM_NAME_FACEBOOK] = '';\n [FORM_NAME_TWITTER] = '';\n [FORM_NAME_PINTEREST] = '';\n [FORM_NAME_INSTAGRAM] = '';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FACEBOOK,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PINTEREST,\n FORM_NAME_TWITTER,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { MapRightTextDto } from '../../../dtos/blocks/map/map-right-text.dto';\n\nexport const TYPE_MAP_RIGHT_TEXT = 'map-right-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapRightTextService {\n private _text = 'wb.blocks.map-right-text.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_RIGHT_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_RIGHT_TEXT;\n }\n\n image() {\n return ':lang/Map_TxtRight.png';\n }\n\n getForm(content: MapRightTextDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const FacebookContentDto = new FormsContentDto(\n FORM_NAME_FACEBOOK,\n 'wb.blocks.FormContentDto.23',\n FORM_TYPE_TEXT,\n content[FORM_NAME_FACEBOOK],\n '',\n ''\n );\n formsDto.forms.push(FacebookContentDto);\n\n const TwitterContentDto = new FormsContentDto(\n FORM_NAME_TWITTER,\n 'wb.blocks.FormContentDto.24',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TWITTER],\n '',\n ''\n );\n formsDto.forms.push(TwitterContentDto);\n\n const PinterestContentDto = new FormsContentDto(\n FORM_NAME_PINTEREST,\n 'wb.blocks.FormContentDto.25',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PINTEREST],\n '',\n ''\n );\n formsDto.forms.push(PinterestContentDto);\n\n const InstagramContentDto = new FormsContentDto(\n FORM_NAME_INSTAGRAM,\n 'wb.blocks.FormContentDto.26',\n FORM_TYPE_TEXT,\n content[FORM_NAME_INSTAGRAM],\n '',\n ''\n );\n formsDto.forms.push(InstagramContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new MapRightTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ADDRESS,\n FORM_NAME_CONTENT,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_EMAIL,\n FORM_NAME_FACEBOOK,\n FORM_NAME_ICON_ADDRESS,\n FORM_NAME_ICON_EMAIL,\n FORM_NAME_ICON_PHONE,\n FORM_NAME_ID_FORM,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PHONE,\n FORM_NAME_PINTEREST,\n FORM_NAME_TITLE,\n FORM_NAME_TWITTER,\n} from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\n\nexport class MapTextFormDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_ICON_ADDRESS] = new FontOrMediaDto('far fa-address-book');\n [FORM_NAME_ICON_PHONE] = new FontOrMediaDto('fas fa-phone');\n [FORM_NAME_ICON_EMAIL] = new FontOrMediaDto('fas fa-envelope-open-text');\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.8';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_ADDRESS] = 'wb.dto.ADDRESS.9';\n [FORM_NAME_PHONE] = 'wb.dto.PHONE.10';\n [FORM_NAME_EMAIL] = 'wb.dto.EMAIL.11';\n [FORM_NAME_FACEBOOK] = '';\n [FORM_NAME_TWITTER] = '';\n [FORM_NAME_PINTEREST] = '';\n [FORM_NAME_INSTAGRAM] = '';\n [FORM_NAME_ID_FORM]: number;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FACEBOOK,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PINTEREST,\n FORM_NAME_TWITTER,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { MapTextFormDto } from '../../../dtos/blocks/map/map-text-form.dto';\n\nexport const TYPE_MAP_TEXT_FORM = 'map-text-form';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapTextFormService {\n private _text = 'wb.blocks.map-text-form.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_TEXT_FORM;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_TEXT_FORM;\n }\n\n image() {\n return ':lang/Map_TxtForm.png';\n }\n\n getForm(content: MapTextFormDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const FacebookContentDto = new FormsContentDto(\n FORM_NAME_FACEBOOK,\n 'wb.blocks.FormContentDto.23',\n FORM_TYPE_TEXT,\n content[FORM_NAME_FACEBOOK],\n '',\n ''\n );\n formsDto.forms.push(FacebookContentDto);\n\n const TwitterContentDto = new FormsContentDto(\n FORM_NAME_TWITTER,\n 'wb.blocks.FormContentDto.24',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TWITTER],\n '',\n ''\n );\n formsDto.forms.push(TwitterContentDto);\n\n const PinterestContentDto = new FormsContentDto(\n FORM_NAME_PINTEREST,\n 'wb.blocks.FormContentDto.25',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PINTEREST],\n '',\n ''\n );\n formsDto.forms.push(PinterestContentDto);\n\n const InstagramContentDto = new FormsContentDto(\n FORM_NAME_INSTAGRAM,\n 'wb.blocks.FormContentDto.26',\n FORM_TYPE_TEXT,\n content[FORM_NAME_INSTAGRAM],\n '',\n ''\n );\n formsDto.forms.push(InstagramContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new MapTextFormDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_CONTENT,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_ID_FORM,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class MapBackgroundFormLeftDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.8';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_ID_FORM]: number;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { MapBackgroundFormLeftDto } from '../../../dtos/blocks/map/map-background-form-left.dto';\n\nexport const TYPE_MAP_BACKGROUND_FORM_LEFT = 'map-background-form-left';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapBackgroundFormLeftService {\n private _text = 'wb.blocks.map-background-form-left.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_BACKGROUND_FORM_LEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_BACKGROUND_FORM_LEFT;\n }\n\n image() {\n return ':lang/Map_ImgBackground.png';\n }\n\n getForm(content: MapBackgroundFormLeftDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new MapBackgroundFormLeftDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_CONTENT,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_ID_FORM,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class MapBackgroundFormRightDto extends ParentBlockDto {\n [FORM_NAME_COORDINATE_X] = 0;\n [FORM_NAME_COORDINATE_Y] = 0;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.8';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_ID_FORM]: number;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { MapBackgroundFormRightDto } from '../../../dtos/blocks/map/map-background-form-right.dto';\n\nexport const TYPE_MAP_BACKGROUND_FORM_RIGHT = 'map-background-form-right';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapBackgroundFormRightService {\n private _text = 'wb.blocks.map-background-form-right.text';\n\n static selector() {\n return 'wb-' + TYPE_MAP_BACKGROUND_FORM_RIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP_BACKGROUND_FORM_RIGHT;\n }\n\n image() {\n return ':lang/Map_ImgRight.png';\n }\n\n getForm(content: MapBackgroundFormRightDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new MapBackgroundFormRightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_HOURS,\n FORM_NAME_ABSOLUTE,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_TITLE,\n FORM_NAME_FIRST_STEP,\n} from '../../forms/forms.dto';\n\nexport class TimerSimpleDto extends ParentBlockDto {\n [FORM_NAME_DATE] = new Date();\n [FORM_NAME_BACKGROUND_COLOR] = '#fff';\n [FORM_NAME_COLOR] = '#000';\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.30';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.31';\n [FORM_NAME_DAYS] = 0;\n [FORM_NAME_HOURS] = 0;\n [FORM_NAME_MINUTES] = 0;\n [FORM_NAME_SECONDS] = 0;\n [FORM_NAME_ABSOLUTE] = false;\n [FORM_NAME_FIRST_STEP] = true;\n}\n","import { Injectable } from '@angular/core';\nimport { TimerSimpleDto } from '../../../dtos/blocks/timer/timer-simple.dto';\nimport { FORM_NAME_BACKGROUND_COLOR, FORM_NAME_COLOR, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TIMER_SIMPLE = 'timer-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerSimpleService {\n private _text = 'wb.blocks.timer-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_TIMER_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER_SIMPLE;\n }\n\n image() {\n return ':lang/CompteARebours_Classic.png';\n }\n\n getForm(content: TimerSimpleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const backgroundContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#fff',\n ''\n );\n formsDto.forms.push(backgroundContentDto);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.80',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#000',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TimerSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_DATE,\n FORM_NAME_COLOR,\n FORM_NAME_IMAGE,\n FORM_NAME_TITLE,\n FORM_NAME_CONTENT,\n FORM_NAME_DAYS,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_FIRST_STEP,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class TimerBackgroundDto extends ParentBlockDto {\n [FORM_NAME_DATE] = new Date(new Date().valueOf() + 1000 * 3600 * 24).getTime();\n [FORM_NAME_COLOR] = '#fff';\n [FORM_NAME_TITLE] = 'wb.dto.CONTENT.29';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.28';\n [FORM_NAME_DAYS] = 0;\n [FORM_NAME_HOURS] = 0;\n [FORM_NAME_MINUTES] = 0;\n [FORM_NAME_SECONDS] = 0;\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_FIRST_STEP] = true;\n}\n","import { Injectable } from '@angular/core';\nimport { TimerBackgroundDto } from '../../../dtos/blocks/timer/timer-background.dto';\nimport { FORM_NAME_COLOR, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TIMER_BACKGROUND = 'timer-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerBackgroundService {\n private _text = 'wb.blocks.timer-background.text';\n\n static selector() {\n return 'wb-' + TYPE_TIMER_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER_BACKGROUND;\n }\n\n image() {\n return ':lang/CompteARebours_Image.png';\n }\n\n getForm(content: TimerBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.80',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#fff',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TimerBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class TimerAirportDto extends ParentBlockDto {\n [FORM_NAME_DATE] = new Date();\n [FORM_NAME_BACKGROUND_COLOR] = '#fff';\n [FORM_NAME_COLOR] = '#000';\n [FORM_NAME_DAYS] = 0;\n [FORM_NAME_HOURS] = 0;\n [FORM_NAME_MINUTES] = 0;\n [FORM_NAME_SECONDS] = 0;\n [FORM_NAME_ABSOLUTE] = false;\n [FORM_NAME_FIRST_STEP] = true;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.30';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.31';\n}\n","import { Injectable } from '@angular/core';\nimport { TimerAirportDto } from '../../../dtos/blocks/timer/timer-airport.dto';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TIMER_AIRPORT = 'timer-airport';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerAirportService {\n private _text = 'wb.blocks.timer-airport.text';\n\n static selector() {\n return 'wb-' + TYPE_TIMER_AIRPORT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER_AIRPORT;\n }\n\n getForm(content: TimerAirportDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n return formsDto;\n }\n\n image() {\n return ':lang/CompteARebours_Airport.png';\n }\n\n getConfig() {\n return new TimerAirportDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_DATE,\n FORM_NAME_COLOR,\n FORM_NAME_IMAGE,\n FORM_NAME_DAYS,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_FIRST_STEP\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class TimerClockDto extends ParentBlockDto {\n [FORM_NAME_DATE] = new Date(new Date().valueOf() + 1000 * 3600 * 24).getTime();\n [FORM_NAME_COLOR] = '#fff';\n [FORM_NAME_DAYS] = 0;\n [FORM_NAME_HOURS] = 0;\n [FORM_NAME_MINUTES] = 0;\n [FORM_NAME_SECONDS] = 0;\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_FIRST_STEP] = true;\n}\n","import { Injectable } from '@angular/core';\nimport { TimerClockDto } from '../../../dtos/blocks/timer/timer-clock.dto';\nimport { FORM_NAME_COLOR, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TIMER_CLOCK = 'timer-clock';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerClockService {\n private _text = 'wb.blocks.timer-clock.text';\n\n static selector() {\n return 'wb-' + TYPE_TIMER_CLOCK;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER_CLOCK;\n }\n\n image() {\n return ':lang/CompteARebours_Watch.png';\n }\n\n getForm(content: TimerClockDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.80',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#fff',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TimerClockDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_DATE,\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_DAYS,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_MIDDLE_TOP,\n FORM_NAME_IMAGE_MIDDLE_BOTTOM,\n FORM_NAME_IMAGE_LEFT_TOP,\n FORM_NAME_IMAGE_LEFT_BOTTOM,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TITLE,\n FORM_NAME_HREF,\n FORM_NAME_BACKGROUND_COLOR_BUTTON,\n FORM_NAME_COLOR_BUTTON,\n FORM_NAME_TARGET,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class TimerMultipleImgDto extends ParentBlockDto {\n [FORM_NAME_DATE] = new Date(new Date().valueOf() + 1000 * 3600 * 24).getTime();\n [FORM_NAME_COLOR] = '#23272b';\n [FORM_NAME_IMG_MASK] = 'large';\n [FORM_NAME_BACKGROUND_COLOR] = '#fff';\n [FORM_NAME_BACKGROUND_COLOR_BUTTON] = '#e25657';\n [FORM_NAME_COLOR_BUTTON] = '#fff';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.32';\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.31';\n [FORM_NAME_DAYS] = 0;\n [FORM_NAME_HOURS] = 0;\n [FORM_NAME_MINUTES] = 0;\n [FORM_NAME_SECONDS] = 0;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_BOTTOM]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT_BOTTOM]: ImageMediaDto;\n [FORM_NAME_FIRST_STEP] = true;\n [FORM_NAME_HREF] = '';\n [FORM_NAME_TARGET] = false;\n}\n","import { Injectable } from '@angular/core';\nimport { TimerMultipleImgDto } from '../../../dtos/blocks/timer/timer-multiple-img.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n FORM_NAME_CONTENT,\n FORM_TYPE_TEXT,\n FORM_NAME_TITLE,\n FORM_NAME_BACKGROUND_COLOR_BUTTON,\n FORM_NAME_COLOR_BUTTON,\n FORM_NAME_HREF,\n FORM_NAME_DOTS,\n FORM_TYPE_CHECKBOX,\n FORM_NAME_TARGET,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TIMER_MULTIPLE_IMG = 'timer-multiple-img';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerMultipleImgService {\n private _text = 'wb.blocks.timer-multiple-img.text';\n\n static selector() {\n return 'wb-' + TYPE_TIMER_MULTIPLE_IMG;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER_MULTIPLE_IMG;\n }\n\n image() {\n return 'CompteARebours_MultipleImg.png';\n }\n\n getForm(content: TimerMultipleImgDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.80',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#fff',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n const backgroundColorContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.81',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#fff',\n ''\n );\n formsDto.forms.push(backgroundColorContentDto);\n\n const buttonBackgroundColorContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR_BUTTON,\n 'wb.blocks.FormContentDto.22',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR_BUTTON],\n '#fff',\n ''\n );\n formsDto.forms.push(buttonBackgroundColorContentDto);\n\n const buttonColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR_BUTTON,\n 'wb.blocks.FormContentDto.21',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_BUTTON],\n '#fff',\n ''\n );\n formsDto.forms.push(buttonColorContentDto);\n\n const inputTextDto = new FormsContentDto(\n FORM_NAME_TITLE,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TITLE],\n 'wb.blocks.FormContentDto.2',\n ''\n );\n formsDto.forms.push(inputTextDto);\n\n const hrefDto = new FormsContentDto(\n FORM_NAME_HREF,\n 'wb.blocks.FormContentDto.82',\n FORM_TYPE_TEXT,\n content[FORM_NAME_HREF],\n 'wb.blocks.FormContentDto.82',\n ''\n );\n formsDto.forms.push(hrefDto);\n\n const newTabsDto = new FormsContentDto(\n FORM_NAME_TARGET,\n 'wb.blocks.FormContentDto.83',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_DOTS],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(newTabsDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TimerMultipleImgDto(this.type());\n }\n}\n","import {\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class QuotesSimpleDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.19';\n [FORM_NAME_AUTHOR] = 'wb.dto.AUTHOR.18';\n [FORM_NAME_TEXT_COLOR] = '#23272b';\n [FORM_NAME_SECONDARY_COLOR] = '#6c6c6c';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { QuotesSimpleDto } from '../../../dtos/blocks/quotes/quotes-simple.dto';\n\nexport const TYPE_QUOTES_SIMPLE = 'quotes-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuotesSimpleService {\n private _text = 'wb.blocks.quotes-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_QUOTES_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_QUOTES_SIMPLE;\n }\n\n image() {\n return ':lang/Citation_Simple.png';\n }\n\n getForm(content: QuotesSimpleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.35',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorDto);\n\n const colorTextDto = new FormsContentDto(\n FORM_NAME_TEXT_COLOR,\n 'wb.blocks.FormContentDto.36',\n FORM_TYPE_COLOR,\n content[FORM_NAME_TEXT_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorTextDto);\n\n const colorSecondaryDto = new FormsContentDto(\n FORM_NAME_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.37',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorSecondaryDto);\n\n const inputTextDto = new FormsContentDto(\n FORM_NAME_CONTENT,\n 'wb.blocks.FormContentDto.38',\n FORM_TYPE_TEXT,\n content[FORM_NAME_CONTENT],\n 'wb.blocks.FormContentDto.39',\n ''\n );\n formsDto.forms.push(inputTextDto);\n\n const authorTextDto = new FormsContentDto(\n FORM_NAME_AUTHOR,\n 'wb.blocks.FormContentDto.40',\n FORM_TYPE_TEXT,\n content[FORM_NAME_AUTHOR],\n 'wb.blocks.FormContentDto.41',\n ''\n );\n formsDto.forms.push(authorTextDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new QuotesSimpleDto(this.type());\n }\n}\n","import {\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_IMAGE,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class QuotesAuthorDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.19';\n [FORM_NAME_AUTHOR] = 'wb.dto.AUTHOR.18';\n [FORM_NAME_TEXT_COLOR] = '#23272b';\n [FORM_NAME_SECONDARY_COLOR] = '#6c6c6c';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_IMAGE]: MediaDto;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { QuotesAuthorDto } from '../../../dtos/blocks/quotes/quotes-author.dto';\n\nexport const TYPE_QUOTES_AUTHOR = 'quotes-author';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuotesAuthorService {\n private _text = 'wb.blocks.quotes-author.text';\n\n static selector() {\n return 'wb-' + TYPE_QUOTES_AUTHOR;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_QUOTES_AUTHOR;\n }\n\n image() {\n return ':lang/Citation_Avatar.png';\n }\n\n getForm(content: QuotesAuthorDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.35',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorDto);\n\n const colorTextDto = new FormsContentDto(\n FORM_NAME_TEXT_COLOR,\n 'wb.blocks.FormContentDto.36',\n FORM_TYPE_COLOR,\n content[FORM_NAME_TEXT_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorTextDto);\n\n const colorSecondaryDto = new FormsContentDto(\n FORM_NAME_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.37',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorSecondaryDto);\n\n const inputTextDto = new FormsContentDto(\n FORM_NAME_CONTENT,\n 'wb.blocks.FormContentDto.38',\n FORM_TYPE_TEXT,\n content[FORM_NAME_CONTENT],\n 'wb.blocks.FormContentDto.39',\n ''\n );\n formsDto.forms.push(inputTextDto);\n\n const authorTextDto = new FormsContentDto(\n FORM_NAME_AUTHOR,\n 'wb.blocks.FormContentDto.40',\n FORM_TYPE_TEXT,\n content[FORM_NAME_AUTHOR],\n 'wb.blocks.FormContentDto.41',\n ''\n );\n formsDto.forms.push(authorTextDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new QuotesAuthorDto(this.type());\n }\n}\n","import {\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_IMAGE,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class QuotesSimpleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.19';\n [FORM_NAME_AUTHOR] = 'wb.dto.AUTHOR.18';\n [FORM_NAME_TEXT_COLOR] = '#ffffff';\n [FORM_NAME_SECONDARY_COLOR] = '#ffffff';\n [FORM_NAME_IMAGE]: MediaDto;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_AUTHOR,\n FORM_NAME_CONTENT,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { QuotesSimpleBackgroundDto } from '../../../dtos/blocks/quotes/quotes-simple-background.dto';\n\nexport const TYPE_QUOTES_SIMPLE_BACKGROUND = 'quotes-simple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuotesSimpleBackgroundService {\n private _text = 'wb.blocks.quotes-simple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_QUOTES_SIMPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_QUOTES_SIMPLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Citation_CentreAvecImage.png';\n }\n\n getForm(content: QuotesSimpleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorTextDto = new FormsContentDto(\n FORM_NAME_TEXT_COLOR,\n 'wb.blocks.FormContentDto.36',\n FORM_TYPE_COLOR,\n content[FORM_NAME_TEXT_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorTextDto);\n\n const colorSecondaryDto = new FormsContentDto(\n FORM_NAME_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.37',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorSecondaryDto);\n\n const inputTextDto = new FormsContentDto(\n FORM_NAME_CONTENT,\n 'wb.blocks.FormContentDto.38',\n FORM_TYPE_TEXT,\n content[FORM_NAME_CONTENT],\n 'wb.blocks.FormContentDto.39',\n ''\n );\n formsDto.forms.push(inputTextDto);\n\n const authorTextDto = new FormsContentDto(\n FORM_NAME_AUTHOR,\n 'wb.blocks.FormContentDto.40',\n FORM_TYPE_TEXT,\n content[FORM_NAME_AUTHOR],\n 'wb.blocks.FormContentDto.41',\n ''\n );\n formsDto.forms.push(authorTextDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new QuotesSimpleBackgroundDto(this.type());\n }\n}\n","import {\n FORM_NAME_COLOR,\n FORM_NAME_RATINGS_LINK,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_STAR_COLOR,\n FORM_NAME_STAR_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class ReviewsSimpleDto extends ParentBlockDto {\n [FORM_NAME_COLOR] = '#ffffff';\n [FORM_NAME_TEXT_COLOR] = '#23272b';\n [FORM_NAME_SECONDARY_COLOR] = '#6c6c6c';\n [FORM_NAME_STAR_SECONDARY_COLOR] = '#d8d8d8';\n [FORM_NAME_STAR_COLOR] = '#e95656';\n [FORM_NAME_RATINGS_LINK] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_STAR_COLOR,\n FORM_NAME_STAR_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_NAME_RATINGS_LINK,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ReviewsSimpleDto } from '../../../dtos/blocks/reviews/reviews-simple.dto';\n\nexport const TYPE_REVIEWS_SIMPLE = 'reviews-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReviewsSimpleService {\n private _text = 'wb.blocks.reviews-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_REVIEWS_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_REVIEWS_SIMPLE;\n }\n\n image() {\n return 'AvisClient_Classic.png';\n }\n\n getForm(content: ReviewsSimpleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.35',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorDto);\n\n const colorTextDto = new FormsContentDto(\n FORM_NAME_TEXT_COLOR,\n 'wb.blocks.FormContentDto.48',\n FORM_TYPE_COLOR,\n content[FORM_NAME_TEXT_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorTextDto);\n\n const colorSecondaryDto = new FormsContentDto(\n FORM_NAME_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.49',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorSecondaryDto);\n\n const colorStarDto = new FormsContentDto(\n FORM_NAME_STAR_COLOR,\n 'wb.blocks.FormContentDto.50',\n FORM_TYPE_COLOR,\n content[FORM_NAME_STAR_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorStarDto);\n\n const colorStarSecondaryDto = new FormsContentDto(\n FORM_NAME_STAR_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.51',\n FORM_TYPE_COLOR,\n content[FORM_NAME_STAR_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorStarSecondaryDto);\n\n const ratingsLinkDto = new FormsContentDto(\n FORM_NAME_RATINGS_LINK,\n 'wb.blocks.FormContentDto.52',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_RATINGS_LINK],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(ratingsLinkDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ReviewsSimpleDto(this.type());\n }\n}\n","import {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_RATINGS_LINK,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_STAR_COLOR,\n FORM_NAME_STAR_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class ReviewsWaterfallDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.28';\n [FORM_NAME_COLOR] = '#ffffff';\n [FORM_NAME_BACKGROUND_COLOR] = '#EAEDED';\n [FORM_NAME_TEXT_COLOR] = '#23272b';\n [FORM_NAME_SECONDARY_COLOR] = '#6c6c6c';\n [FORM_NAME_STAR_SECONDARY_COLOR] = '#d8d8d8';\n [FORM_NAME_STAR_COLOR] = '#e95656';\n [FORM_NAME_RATINGS_LINK] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_RATINGS_LINK,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_STAR_COLOR,\n FORM_NAME_STAR_SECONDARY_COLOR,\n FORM_NAME_TEXT_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ReviewsWaterfallDto } from '../../../dtos/blocks/reviews/reviews-waterfall.dto';\n\nexport const TYPE_REVIEWS_WATERFALL = 'reviews-waterfall';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReviewsWaterfallService {\n private _text = 'wb.blocks.reviews-waterfall.text';\n\n static selector() {\n return 'wb-' + TYPE_REVIEWS_WATERFALL;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_REVIEWS_WATERFALL;\n }\n\n image() {\n return ':lang/AvisClient_Classic-1.png';\n }\n\n getForm(content: ReviewsWaterfallDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.53',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorDto);\n\n const colorTextDto = new FormsContentDto(\n FORM_NAME_TEXT_COLOR,\n 'wb.blocks.FormContentDto.48',\n FORM_TYPE_COLOR,\n content[FORM_NAME_TEXT_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorTextDto);\n\n const colorSecondaryDto = new FormsContentDto(\n FORM_NAME_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.49',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorSecondaryDto);\n\n const colorBackgroundDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.35',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorBackgroundDto);\n\n const colorStarDto = new FormsContentDto(\n FORM_NAME_STAR_COLOR,\n 'wb.blocks.FormContentDto.50',\n FORM_TYPE_COLOR,\n content[FORM_NAME_STAR_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorStarDto);\n\n const colorStarSecondaryDto = new FormsContentDto(\n FORM_NAME_STAR_SECONDARY_COLOR,\n 'wb.blocks.FormContentDto.51',\n FORM_TYPE_COLOR,\n content[FORM_NAME_STAR_SECONDARY_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorStarSecondaryDto);\n\n const ratingsLinkDto = new FormsContentDto(\n FORM_NAME_RATINGS_LINK,\n 'wb.blocks.FormContentDto.52',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_RATINGS_LINK],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(ratingsLinkDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ReviewsWaterfallDto(this.type());\n }\n}\n","import { FORM_NAME_TEXT, FORM_NAME_URL, FORM_NAME_URL_TARGET } from '../../forms/forms.dto';\n\nexport class ButtonDto {\n constructor(button = '') {\n this[FORM_NAME_TEXT] = button;\n }\n\n [FORM_NAME_TEXT] = '';\n [FORM_NAME_URL] = '';\n [FORM_NAME_URL_TARGET] = '_self';\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n FORM_NAME_URL_LEFT,\n FORM_NAME_URL_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class WitnessTwiceDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_URL_LEFT] = new ButtonDto();\n [FORM_NAME_URL_RIGHT] = new ButtonDto();\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_COLOR_LEFT, FORM_NAME_COLOR_RIGHT, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { WitnessTwiceDto } from '../../../dtos/blocks/witness/witness-twice.dto';\n\nexport const TYPE_WITNESS_TWICE = 'witness-twice';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessTwiceService {\n private _text = 'wb.blocks.witness-twice.text';\n\n static selector() {\n return 'wb-' + TYPE_WITNESS_TWICE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS_TWICE;\n }\n\n image() {\n return 'Temoignages_2col.png';\n }\n\n getForm(content: WitnessTwiceDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new WitnessTwiceDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n FORM_NAME_URL_LEFT,\n FORM_NAME_URL_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_IMAGE_CENTER,\n FORM_NAME_CONTENT_CENTER,\n FORM_NAME_TITLE_CENTER,\n FORM_NAME_URL_CENTER,\n FORM_NAME_COLOR_CENTER,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class WitnessTripleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_CENTER]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_CONTENT_CENTER] = 'wb.dto.CONTENT.35';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.37';\n [FORM_NAME_TITLE_CENTER] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_URL_LEFT] = new ButtonDto();\n [FORM_NAME_URL_RIGHT] = new ButtonDto();\n [FORM_NAME_URL_CENTER] = new ButtonDto();\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n [FORM_NAME_COLOR_CENTER] = '#f7f7f7';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_COLOR_CENTER,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { WitnessTripleDto } from '../../../dtos/blocks/witness/witness-triple.dto';\nexport const TYPE_WITNESS_TRIPLE = 'witness-triple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessTripleService {\n private _text = 'wb.blocks.witness-triple.text';\n\n static selector() {\n return 'wb-' + TYPE_WITNESS_TRIPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS_TRIPLE;\n }\n\n image() {\n return 'Temoignages_3col.png';\n }\n\n getForm(content: WitnessTripleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentCenterDto = new FormsContentDto(\n FORM_NAME_COLOR_CENTER,\n 'wb.blocks.FormContentDto.92',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_CENTER],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentCenterDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new WitnessTripleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n FORM_NAME_URL_LEFT,\n FORM_NAME_URL_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_IMAGE_CENTER_RIGHT,\n FORM_NAME_CONTENT_CENTER_RIGHT,\n FORM_NAME_TITLE_CENTER_RIGHT,\n FORM_NAME_URL_CENTER_RIGHT,\n FORM_NAME_COLOR_CENTER_RIGHT,\n FORM_NAME_IMAGE_CENTER_LEFT,\n FORM_NAME_CONTENT_CENTER_LEFT,\n FORM_NAME_TITLE_CENTER_LEFT,\n FORM_NAME_URL_CENTER_LEFT,\n FORM_NAME_COLOR_CENTER_LEFT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class WitnessQuadrupleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_CENTER_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_CENTER_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_TITLE_CENTER_LEFT] = 'wb.dto.TITLE.37';\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.37';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.37';\n [FORM_NAME_TITLE_CENTER_RIGHT] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_CONTENT_CENTER_RIGHT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_CONTENT_CENTER_LEFT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_URL_LEFT] = new ButtonDto();\n [FORM_NAME_URL_RIGHT] = new ButtonDto();\n [FORM_NAME_URL_CENTER_RIGHT] = new ButtonDto();\n [FORM_NAME_URL_CENTER_LEFT] = new ButtonDto();\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n [FORM_NAME_COLOR_CENTER_RIGHT] = '#f7f7f7';\n [FORM_NAME_COLOR_CENTER_LEFT] = '#f7f7f7';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_COLOR_CENTER_LEFT,\n FORM_NAME_COLOR_CENTER_RIGHT,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { WitnessQuadrupleDto } from '../../../dtos/blocks/witness/witness-quadruple.dto';\nexport const TYPE_WITNESS_QUADRUPLE = 'witness-quadruple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessQuadrupleService {\n private _text = 'wb.blocks.witness-quadruple.text';\n\n static selector() {\n return 'wb-' + TYPE_WITNESS_QUADRUPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS_QUADRUPLE;\n }\n\n image() {\n return 'Temoignages_4col.png';\n }\n\n getForm(content: WitnessQuadrupleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentCenterLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_CENTER_LEFT,\n 'wb.blocks.FormContentDto.90',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_CENTER_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentCenterLeftDto);\n\n const colorContentCenterRightDto = new FormsContentDto(\n FORM_NAME_COLOR_CENTER_RIGHT,\n 'wb.blocks.FormContentDto.91',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_CENTER_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentCenterRightDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new WitnessQuadrupleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { FORM_NAME_CONTENT, FORM_NAME_IMAGE, FORM_NAME_TITLE, FORM_NAME_URL, FORM_NAME_COLOR } from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class WitnessBackgroundOneDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.37';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.36';\n [FORM_NAME_URL] = new ButtonDto();\n [FORM_NAME_COLOR] = '#FFFFFF';\n}\n","import { Injectable } from '@angular/core';\nimport { WitnessBackgroundOneDto } from '../../../dtos/blocks/witness/witness-background-one.dto';\nimport { FORM_NAME_COLOR, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_WITNESS_BACKGROUND_ONE = 'witness-background-one';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessBackgroundOneService {\n private _text = 'wb.blocks.witness-background-one.text';\n\n static selector() {\n return 'wb-' + TYPE_WITNESS_BACKGROUND_ONE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS_BACKGROUND_ONE;\n }\n\n image() {\n return 'Temoignages_-1.png?1';\n }\n\n getForm(content: WitnessBackgroundOneDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.89',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#888888',\n ''\n );\n formsDto.forms.push(colorDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new WitnessBackgroundOneDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_BACKGROUND,\n FORM_NAME_TITLE,\n FORM_NAME_AUTHOR_LEFT,\n FORM_NAME_AUTHOR_RIGHT,\n FORM_NAME_URL_LEFT,\n FORM_NAME_URL_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class WitnessBackgroundDoubleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_BACKGROUND]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.35';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.35';\n [FORM_NAME_URL_LEFT] = new ButtonDto();\n [FORM_NAME_URL_RIGHT] = new ButtonDto();\n [FORM_NAME_AUTHOR_LEFT] = 'wb.dto.AUTHOR.36';\n [FORM_NAME_AUTHOR_RIGHT] = 'wb.dto.AUTHOR.36';\n}\n","import { Injectable } from '@angular/core';\nimport { WitnessBackgroundDoubleDto } from '../../../dtos/blocks/witness/witness-background-double.dto';\nimport { FORM_TYPE_CHECKBOX, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_WITNESS_BACKGROUND_DOUBLE = 'witness-background-double';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessBackgroundDoubleService {\n private _text = 'wb.blocks.witness-background-double.text';\n\n static selector() {\n return 'wb-' + TYPE_WITNESS_BACKGROUND_DOUBLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS_BACKGROUND_DOUBLE;\n }\n\n image() {\n return ':lang/Temoignages_2colNavigation.png';\n }\n\n getForm(content: WitnessBackgroundDoubleDto = this.getConfig()) {\n const WitnessBackgroundDoubleFormDto = new FormsDto(content);\n\n return WitnessBackgroundDoubleFormDto;\n }\n\n getConfig() {\n return new WitnessBackgroundDoubleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_IMAGE, FORM_NAME_PLACEHOLDER, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class NewsletterAlignedCenterImageDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.12';\n [FORM_NAME_PLACEHOLDER] = 'wb.dto.PLACEHOLDER.13';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_PLACEHOLDER, FORM_TYPE_TEXT, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { NewsletterAlignedCenterImageDto } from '../../../dtos/blocks/newsletter/newsletter-aligned-center-image.dto';\n\nexport const TYPE_NEWSLETTER_ALIGNED_CENTER_IMAGE = 'newsletter-aligned-center-image';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsletterAlignedCenterImageService {\n private _text = 'wb.blocks.newsletter-aligned-center-image.text';\n\n static selector() {\n return 'wb-' + TYPE_NEWSLETTER_ALIGNED_CENTER_IMAGE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_NEWSLETTER_ALIGNED_CENTER_IMAGE;\n }\n\n image() {\n return ':lang/Newsletter_InlineImg.png';\n }\n\n getForm(content: NewsletterAlignedCenterImageDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const formPlaceholderContentDto = new FormsContentDto(\n FORM_NAME_PLACEHOLDER,\n 'wb.blocks.FormContentDto.27',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PLACEHOLDER],\n '',\n ''\n );\n formsDto.forms.push(formPlaceholderContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new NewsletterAlignedCenterImageDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_COLOR, FORM_NAME_PLACEHOLDER, FORM_NAME_TITLE } from '../../forms/forms.dto';\n\nexport class NewsletterAlignedCenterBackgroundDto extends ParentBlockDto {\n [FORM_NAME_COLOR] = '#E95656';\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.12';\n [FORM_NAME_PLACEHOLDER] = 'wb.dto.PLACEHOLDER.13';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_PLACEHOLDER,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { NewsletterAlignedCenterBackgroundDto } from '../../../dtos/blocks/newsletter/newsletter-aligned-center-background.dto';\n\nexport const TYPE_NEWSLETTER_ALIGNED_CENTER_BACKGROUND = 'newsletter-aligned-center-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsletterAlignedCenterBackgroundService {\n private _text = 'wb.blocks.newsletter-aligned-center-background.text';\n\n static selector() {\n return 'wb-' + TYPE_NEWSLETTER_ALIGNED_CENTER_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_NEWSLETTER_ALIGNED_CENTER_BACKGROUND;\n }\n\n image() {\n return ':lang/Newsletter_InlineColor.png';\n }\n\n getForm(content: NewsletterAlignedCenterBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const formPlaceholderContentDto = new FormsContentDto(\n FORM_NAME_PLACEHOLDER,\n 'wb.blocks.FormContentDto.27',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PLACEHOLDER],\n '',\n ''\n );\n formsDto.forms.push(formPlaceholderContentDto);\n\n const formColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.28',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n formsDto.forms.push(formColorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new NewsletterAlignedCenterBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_IMAGE,\n FORM_NAME_PLACEHOLDER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class NewsletterCenterImageDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_COLOR] = '#E95656';\n [FORM_NAME_BUTTON_TEXT] = 'wb.dto.BUTTON_TEXT.14';\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.15';\n [FORM_NAME_PLACEHOLDER] = 'wb.dto.PLACEHOLDER.13';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.10';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_COLOR,\n FORM_NAME_PLACEHOLDER,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { NewsletterCenterImageDto } from '../../../dtos/blocks/newsletter/newsletter-center-image.dto';\n\nexport const TYPE_NEWSLETTER_CENTER_IMAGE = 'newsletter-center-image';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsletterCenterImageService {\n private _text = 'wb.blocks.newsletter-center-image.text';\n\n static selector() {\n return 'wb-' + TYPE_NEWSLETTER_CENTER_IMAGE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_NEWSLETTER_CENTER_IMAGE;\n }\n\n image() {\n return ':lang/Newsletter_ImgCenter.png';\n }\n\n getForm(content: NewsletterCenterImageDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const formPlaceholderContentDto = new FormsContentDto(\n FORM_NAME_PLACEHOLDER,\n 'wb.blocks.FormContentDto.27',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PLACEHOLDER],\n '',\n ''\n );\n formsDto.forms.push(formPlaceholderContentDto);\n\n const formColorButtonContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.29',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n formsDto.forms.push(formColorButtonContentDto);\n\n const formButtonTxtContentDto = new FormsContentDto(\n FORM_NAME_BUTTON_TEXT,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_BUTTON_TEXT],\n '',\n ''\n );\n formsDto.forms.push(formButtonTxtContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new NewsletterCenterImageDto(this.type());\n }\n}\n","import { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\nimport {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LEFT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_MIDDLE_LEFT,\n FORM_NAME_ICON_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_NAME_IMAGE,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class RassurancesTripleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_ICON_COLOR_LEFT] = '#ffffff';\n [FORM_NAME_ICON_LINK_LEFT] = '';\n [FORM_NAME_ICON_TARGET_LEFT] = false;\n [FORM_NAME_ICON_COLOR_RIGHT] = '#ffffff';\n [FORM_NAME_ICON_LINK_RIGHT] = '';\n [FORM_NAME_ICON_TARGET_RIGHT] = false;\n [FORM_NAME_ICON_COLOR_MIDDLE_LEFT] = '#ffffff';\n [FORM_NAME_ICON_LINK_MIDDLE_LEFT] = '';\n [FORM_NAME_ICON_TARGET_MIDDLE_LEFT] = false;\n [FORM_NAME_ICON_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-unlock-alt');\n [FORM_NAME_ICON_MIDDLE_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-box-open');\n [FORM_NAME_ICON_RIGHT]: FontOrMediaDto = new FontOrMediaDto('fas fa-star');\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.27';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.28';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.27';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.28';\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.27';\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.28';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { RassurancesTripleBackgroundDto } from '../../../dtos/blocks/rassurances/rassurances-triple-background.dto';\n\nexport const TYPE_RASSURANCES_TRIPLE_BACKGROUND = 'rassurances-triple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RassurancesTripleBackgroundService {\n private _text = 'wb.blocks.rassurances-triple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_RASSURANCES_TRIPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_RASSURANCES_TRIPLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Rassurances_3-Img.png';\n }\n\n getForm(content: RassurancesTripleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_LEFT,\n 'wb.blocks.FormContentDto.31',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const linkContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_LEFT,\n 'wb.blocks.FormContentDto.42',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentLeftDto);\n\n const targetContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentLeftDto);\n\n const colorContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.32',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleLeftDto);\n\n const linkContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.45',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_MIDDLE_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentMiddleLeftDto);\n\n const targetContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_MIDDLE_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentMiddleLeftDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.33',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const linkContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_RIGHT,\n 'wb.blocks.FormContentDto.46',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_RIGHT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentRightDto);\n\n const targetContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_RIGHT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_RIGHT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new RassurancesTripleBackgroundDto(this.type());\n }\n}\n","import {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LEFT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_MIDDLE_LEFT,\n FORM_NAME_ICON_MIDDLE_RIGHT,\n FORM_NAME_ICON_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\n\nexport class RassurancesQuadrupleAlignedDto extends ParentBlockDto {\n [FORM_NAME_ICON_COLOR_LEFT] = '#23272b';\n [FORM_NAME_ICON_LINK_LEFT] = '';\n [FORM_NAME_ICON_TARGET_LEFT] = false;\n [FORM_NAME_ICON_COLOR_RIGHT] = '#23272b';\n [FORM_NAME_ICON_LINK_RIGHT] = '';\n [FORM_NAME_ICON_TARGET_RIGHT] = false;\n [FORM_NAME_ICON_COLOR_MIDDLE_LEFT] = '#23272b';\n [FORM_NAME_ICON_LINK_MIDDLE_LEFT] = '';\n [FORM_NAME_ICON_TARGET_MIDDLE_LEFT] = false;\n [FORM_NAME_ICON_COLOR_MIDDLE_RIGHT] = '#23272b';\n [FORM_NAME_ICON_LINK_MIDDLE_RIGHT] = '';\n [FORM_NAME_ICON_TARGET_MIDDLE_RIGHT] = false;\n [FORM_NAME_ICON_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-unlock-alt');\n [FORM_NAME_ICON_MIDDLE_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-phone');\n [FORM_NAME_ICON_RIGHT]: FontOrMediaDto = new FontOrMediaDto('fas fa-box-open');\n [FORM_NAME_ICON_MIDDLE_RIGHT]: FontOrMediaDto = new FontOrMediaDto('fas fa-star');\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.19';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.20';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.20';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.21';\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.21';\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.22';\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.22';\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.23';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { RassurancesQuadrupleAlignedDto } from '../../../dtos/blocks/rassurances/rassurances-quadruple-aligned.dto';\n\nexport const TYPE_RASSURANCES_QUADRUPLE_ALIGNED = 'rassurances-quadruple-aligned';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RassurancesQuadrupleAlignedService {\n private _text = 'wb.blocks.rassurances-quadruple-aligned.text';\n\n static selector() {\n return 'wb-' + TYPE_RASSURANCES_QUADRUPLE_ALIGNED;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n type() {\n return TYPE_RASSURANCES_QUADRUPLE_ALIGNED;\n }\n\n image() {\n return ':lang/Rassurances_4Inline.png';\n }\n\n getForm(content: RassurancesQuadrupleAlignedDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_LEFT,\n 'wb.blocks.FormContentDto.31',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const linkContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_LEFT,\n 'wb.blocks.FormContentDto.42',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentLeftDto);\n\n const targetContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentLeftDto);\n\n const colorContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.32',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleLeftDto);\n\n const linkContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.45',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_MIDDLE_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentMiddleLeftDto);\n\n const targetContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_MIDDLE_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentMiddleLeftDto);\n\n const colorContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.33',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleRightDto);\n\n const linkContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.46',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_MIDDLE_RIGHT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentMiddleRightDto);\n\n const targetContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_MIDDLE_RIGHT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentMiddleRightDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.34',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const linkContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_RIGHT,\n 'wb.blocks.FormContentDto.47',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_RIGHT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentRightDto);\n\n const targetContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_RIGHT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_RIGHT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new RassurancesQuadrupleAlignedDto(this.type());\n }\n}\n","import {\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LEFT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_MIDDLE_LEFT,\n FORM_NAME_ICON_MIDDLE_RIGHT,\n FORM_NAME_ICON_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_NAME_IMAGE,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class RassurancesQuadrupleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_ICON_LINK_LEFT] = '';\n [FORM_NAME_ICON_TARGET_LEFT] = false;\n [FORM_NAME_ICON_COLOR_RIGHT] = '#ffffff';\n [FORM_NAME_ICON_COLOR_LEFT] = '#ffffff';\n [FORM_NAME_ICON_LINK_RIGHT] = '';\n [FORM_NAME_ICON_TARGET_RIGHT] = false;\n [FORM_NAME_ICON_COLOR_MIDDLE_LEFT] = '#ffffff';\n [FORM_NAME_ICON_LINK_MIDDLE_LEFT] = '';\n [FORM_NAME_ICON_TARGET_MIDDLE_LEFT] = false;\n [FORM_NAME_ICON_COLOR_MIDDLE_RIGHT] = '#ffffff';\n [FORM_NAME_ICON_LINK_MIDDLE_RIGHT] = '';\n [FORM_NAME_ICON_TARGET_MIDDLE_RIGHT] = false;\n [FORM_NAME_ICON_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-unlock-alt');\n [FORM_NAME_ICON_MIDDLE_LEFT]: FontOrMediaDto = new FontOrMediaDto('fas fa-box-open');\n [FORM_NAME_ICON_RIGHT]: FontOrMediaDto = new FontOrMediaDto('fas fa-star');\n [FORM_NAME_ICON_MIDDLE_RIGHT]: FontOrMediaDto = new FontOrMediaDto('fas fa-phone');\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.23';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.24';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.24';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.25';\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.25';\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.26';\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.26';\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.27';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_LINK_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n FORM_NAME_ICON_LINK_RIGHT,\n FORM_NAME_ICON_TARGET_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n FORM_NAME_ICON_TARGET_RIGHT,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { RassurancesQuadrupleBackgroundDto } from '../../../dtos/blocks/rassurances/rassurances-quadruple-background.dto';\n\nexport const TYPE_RASSURANCES_QUADRUPLE_BACKGROUND = 'rassurances-quadruple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RassurancesQuadrupleBackgroundService {\n private _text = 'wb.blocks.rassurances-quadruple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_RASSURANCES_QUADRUPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_RASSURANCES_QUADRUPLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Rassurances_4InlineBg.png';\n }\n\n getForm(content: RassurancesQuadrupleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_LEFT,\n 'wb.blocks.FormContentDto.31',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const linkContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_LEFT,\n 'wb.blocks.FormContentDto.42',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentLeftDto);\n\n const targetContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentLeftDto);\n\n const colorContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.32',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleLeftDto);\n\n const linkContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.45',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_MIDDLE_LEFT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentMiddleLeftDto);\n\n const targetContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_MIDDLE_LEFT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentMiddleLeftDto);\n\n const colorContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.33',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleRightDto);\n\n const linkContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.46',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_MIDDLE_RIGHT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentMiddleRightDto);\n\n const targetContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_MIDDLE_RIGHT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentMiddleRightDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.34',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const linkContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_LINK_RIGHT,\n 'wb.blocks.FormContentDto.47',\n FORM_TYPE_TEXT,\n content[FORM_NAME_ICON_LINK_RIGHT],\n 'wb.blocks.FormContentDto.43',\n ''\n );\n formsDto.forms.push(linkContentRightDto);\n\n const targetContentRightDto = new FormsContentDto(\n FORM_NAME_ICON_TARGET_RIGHT,\n 'wb.blocks.FormContentDto.44',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ICON_TARGET_RIGHT],\n '',\n '',\n [],\n [],\n ['_blank', '_self']\n );\n formsDto.forms.push(targetContentRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new RassurancesQuadrupleBackgroundDto(this.type());\n }\n}\n","import { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class SocialsLikeDto extends ParentBlockDto {\n [FORM_NAME_APP_ID]: string;\n [FORM_NAME_URL]: string;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_TYPE_TEXT, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { SocialsLikeDto } from '../../../dtos/blocks/socials/socials-like.dto';\n\nexport const TYPE_SOCIALS_LIKE = 'socials-like';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocialsLikeService {\n private _text = 'wb.blocks.socials-like.text';\n\n static selector() {\n return 'wb-' + TYPE_SOCIALS_LIKE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SOCIALS_LIKE;\n }\n\n image() {\n return ':lang/SocialNetw_Facebook-LikeBtn.png';\n }\n\n getForm(content: SocialsLikeDto = this.getConfig()) {\n const formDto = new FormsDto(content);\n\n const contentDto = new FormsContentDto(\n FORM_NAME_APP_ID,\n 'wb.blocks.FormContentDto.63',\n FORM_TYPE_TEXT,\n content[FORM_NAME_APP_ID],\n '215645212148745',\n 'wb.blocks.FormContentDto.93'\n );\n formDto.forms.push(contentDto);\n\n return formDto;\n }\n\n getConfig() {\n return new SocialsLikeDto(this.type());\n }\n}\n","import { FORM_NAME_FACEBOOK, FORM_NAME_INSTAGRAM, FORM_NAME_PINTEREST, FORM_NAME_TWITTER } from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class SocialsNetworkDto extends ParentBlockDto {\n [FORM_NAME_FACEBOOK]: string;\n [FORM_NAME_TWITTER]: string;\n [FORM_NAME_INSTAGRAM]: string;\n [FORM_NAME_PINTEREST]: string;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FACEBOOK,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_PINTEREST,\n FORM_NAME_TWITTER,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { SocialsNetworkDto } from '../../../dtos/blocks/socials/socials-network.dto';\n\nexport const TYPE_SOCIALS_NETWORK = 'socials-network';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocialsNetworkService {\n private _text = 'wb.blocks.socials-network.text';\n\n static selector() {\n return 'wb-' + TYPE_SOCIALS_NETWORK;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SOCIALS_NETWORK;\n }\n\n image() {\n return 'SocialNetw_AllButtons.png';\n }\n\n getForm(content: SocialsNetworkDto = this.getConfig()) {\n const formDto = new FormsDto(content);\n\n const facebookContentDto = new FormsContentDto(\n FORM_NAME_FACEBOOK,\n 'wb.blocks.FormContentDto.23',\n FORM_TYPE_TEXT,\n content[FORM_NAME_FACEBOOK],\n 'wb.blocks.FormContentDto.65',\n ''\n );\n formDto.forms.push(facebookContentDto);\n\n const twitterContentDto = new FormsContentDto(\n FORM_NAME_TWITTER,\n 'wb.blocks.FormContentDto.24',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TWITTER],\n 'wb.blocks.FormContentDto.66',\n ''\n );\n formDto.forms.push(twitterContentDto);\n\n const instagramContentDto = new FormsContentDto(\n FORM_NAME_INSTAGRAM,\n 'wb.blocks.FormContentDto.26',\n FORM_TYPE_TEXT,\n content[FORM_NAME_INSTAGRAM],\n 'wb.blocks.FormContentDto.67',\n ''\n );\n formDto.forms.push(instagramContentDto);\n\n const contentDto = new FormsContentDto(\n FORM_NAME_PINTEREST,\n 'wb.blocks.FormContentDto.25',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PINTEREST],\n 'wb.blocks.FormContentDto.68',\n ''\n );\n formDto.forms.push(contentDto);\n\n return formDto;\n }\n\n getConfig() {\n return new SocialsNetworkDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n FORM_NAME_TYPE_PRODUCT,\n} from '../../forms/forms.dto';\n\nexport const TYPE_PRODUCT_SELECTION = 'selection';\n\nexport class ProductsListClassicDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_TYPE_PRODUCT]: string = TYPE_PRODUCT_SELECTION;\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { ProductsListClassicDto } from '../../../dtos/blocks/products-list/products-list-classic.dto';\nimport { FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_PRODUCTS_LIST_CLASSIC = 'products-list-classic';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductsListClassicService {\n private _text = 'wb.blocks.products-list-classic.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCTS_LIST_CLASSIC;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCTS_LIST_CLASSIC;\n }\n\n image() {\n return ':lang/ListProd_Classic.png';\n }\n\n getForm(content: ProductsListClassicDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductsListClassicDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n FORM_NAME_TYPE_PRODUCT,\n} from '../../forms/forms.dto';\nimport { TYPE_PRODUCT_SELECTION } from './products-list-classic.dto';\n\nexport class ProductsListSelectedDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_TYPE_PRODUCT]: string = TYPE_PRODUCT_SELECTION;\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductsListSelectedDto } from '../../../dtos/blocks/products-list/products-list-selected.dto';\nimport { ProductsListClassicDto } from '../../../dtos/blocks/products-list/products-list-classic.dto';\n\nexport const TYPE_PRODUCTS_LIST_SELECTED = 'products-list-selected';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductsListSelectedService {\n private _text = 'wb.blocks.products-list-selected.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCTS_LIST_SELECTED;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCTS_LIST_SELECTED;\n }\n\n image() {\n return 'ListProd_MiseEnAvant.png';\n }\n\n getForm(content: ProductsListSelectedDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductsListSelectedDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n FORM_NAME_TYPE_PRODUCT,\n} from '../../forms/forms.dto';\nimport { TYPE_PRODUCT_SELECTION } from './products-list-classic.dto';\n\nexport class ProductsListSimpleDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_TYPE_PRODUCT]: string = TYPE_PRODUCT_SELECTION;\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductsListSimpleDto } from '../../../dtos/blocks/products-list/products-list-simple.dto';\nimport { ProductsListClassicDto } from '../../../dtos/blocks/products-list/products-list-classic.dto';\n\nexport const TYPE_PRODUCTS_LIST_SIMPLE = 'products-list-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductsListSimpleService {\n private _text = 'wb.blocks.products-list-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCTS_LIST_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCTS_LIST_SIMPLE;\n }\n\n image() {\n return ':lang/ListProd_ClearTexteHover.png';\n }\n\n getForm(content: ProductsListSimpleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductsListSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsBigLeftTextRightDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsBigLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-big-left-text-right.dto';\n\nexport const TYPE_IMAGES_TEXTS_BIG_LEFT_TEXT_RIGHT = 'images-texts-big-left-text-right';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsBigLeftTextRightService {\n private _text = 'wb.blocks.images-texts-big-left-text-right.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_BIG_LEFT_TEXT_RIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_BIG_LEFT_TEXT_RIGHT;\n }\n\n image() {\n return ':lang/ImageTexte_Image70-Texte30.png';\n }\n\n getForm(content: ImagesTextsBigLeftTextRightDto = this.getConfig()) {\n const ImgTextsBigLeftTextFormDto = new FormsDto(content);\n\n const maskTextsBigLeftTextContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n\n const centerAlignTextsBigLeftTextContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgTextsBigLeftTextFormDto.forms.push(maskTextsBigLeftTextContentDto);\n ImgTextsBigLeftTextFormDto.forms.push(centerAlignTextsBigLeftTextContentDto);\n\n return ImgTextsBigLeftTextFormDto;\n }\n\n getConfig() {\n return new ImagesTextsBigLeftTextRightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsBigRightTextLeftDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsBigRightTextLeftDto } from '../../../dtos/blocks/images-texts/images-texts-big-right-text-left.dto';\n\nexport const TYPE_IMAGES_TEXTS_BIG_RIGHT_TEXT_LEFT = 'images-texts-big-right-text-left';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsBigRightTextLeftService {\n private _text = 'wb.blocks.images-texts-big-right-text-left.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_BIG_RIGHT_TEXT_LEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_BIG_RIGHT_TEXT_LEFT;\n }\n\n image() {\n return ':lang/ImageTexte_Texte30-Image70.png';\n }\n\n getForm(content: ImagesTextsBigRightTextLeftDto = this.getConfig()) {\n const ImgTextsBigRightTextLeftFormDto = new FormsDto(content);\n\n const maskTextsBigRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignTextsBigRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgTextsBigRightTextLeftFormDto.forms.push(maskTextsBigRightTextLeftContentDto);\n ImgTextsBigRightTextLeftFormDto.forms.push(centerAlignTextsBigRightTextLeftContentDto);\n\n return ImgTextsBigRightTextLeftFormDto;\n }\n\n getConfig() {\n return new ImagesTextsBigRightTextLeftDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsLeftTextRightDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-left-text-right.dto';\n\nexport const TYPE_IMAGES_TEXTS_LEFT_TEXT_RIGHT = 'images-texts-left-text-right';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsLeftTextRightService {\n private _text = 'wb.blocks.images-texts-left-text-right.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_LEFT_TEXT_RIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_LEFT_TEXT_RIGHT;\n }\n\n image() {\n return ':lang/ImageTexte_Image50-Texte50.png';\n }\n\n getForm(content: ImagesTextsLeftTextRightDto = this.getConfig()) {\n const ImgImagesTextsLeftTextRightFormDto = new FormsDto(content);\n\n const maskImagesTextsLeftTextRightContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsLeftTextRightContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsLeftTextRightFormDto.forms.push(maskImagesTextsLeftTextRightContentDto);\n ImgImagesTextsLeftTextRightFormDto.forms.push(centerAlignImagesTextsLeftTextRightContentDto);\n\n return ImgImagesTextsLeftTextRightFormDto;\n }\n\n getConfig() {\n return new ImagesTextsLeftTextRightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsOneTextOneDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_BUTTON]: ButtonDto = new ButtonDto();\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.5';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.8';\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsOneTextOneDto } from '../../../dtos/blocks/images-texts/images-texts-one-text-one.dto';\n\nexport const TYPE_IMAGES_TEXTS_ONE_TEXT_ONE = 'images-texts-one-text-one';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsOneTextOneService {\n private _text = 'wb.blocks.images-texts-one-text-one.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_ONE_TEXT_ONE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_ONE_TEXT_ONE;\n }\n\n image() {\n return ':lang/ImageTexte_Image-Texte-Image.png';\n }\n\n getForm(content: ImagesTextsOneTextOneDto = this.getConfig()) {\n const ImgImagesTextsOneTextOneFormDto = new FormsDto(content);\n\n const maskImagesTextsOneTextOneContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsOneTextOneContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsOneTextOneFormDto.forms.push(maskImagesTextsOneTextOneContentDto);\n ImgImagesTextsOneTextOneFormDto.forms.push(centerAlignImagesTextsOneTextOneContentDto);\n\n return ImgImagesTextsOneTextOneFormDto;\n }\n\n getConfig() {\n return new ImagesTextsOneTextOneDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsRightTextLeftDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsRightTextLeftDto } from '../../../dtos/blocks/images-texts/images-texts-right-text-left.dto';\n\nexport const TYPE_IMAGES_TEXTS_RIGHT_TEXT_LEFT = 'images-texts-right-text-left';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsRightTextLeftService {\n private _text = 'wb.blocks.images-texts-right-text-left.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_RIGHT_TEXT_LEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_RIGHT_TEXT_LEFT;\n }\n\n image() {\n return ':lang/ImageTexte_Texte50-Image50.png';\n }\n\n getForm(content: ImagesTextsRightTextLeftDto = this.getConfig()) {\n const ImgImagesTextsRightTextLeftFormDto = new FormsDto(content);\n\n const maskImagesTextsRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsRightTextLeftFormDto.forms.push(maskImagesTextsRightTextLeftContentDto);\n ImgImagesTextsRightTextLeftFormDto.forms.push(centerAlignImagesTextsRightTextLeftContentDto);\n\n return ImgImagesTextsRightTextLeftFormDto;\n }\n\n getConfig() {\n return new ImagesTextsRightTextLeftDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsSmallLeftTextRightDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsSmallLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-small-left-text-right.dto';\n\nexport const TYPE_IMAGES_TEXTS_SMALL_LEFT_TEXT_RIGHT = 'images-texts-small-left-text-right';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsSmallLeftTextRightService {\n private _text = 'wb.blocks.images-texts-small-left-text-right.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_SMALL_LEFT_TEXT_RIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_SMALL_LEFT_TEXT_RIGHT;\n }\n\n image() {\n return ':lang/ImageTexte_Image30-Texte70.png';\n }\n\n getForm(content: ImagesTextsSmallLeftTextRightDto = this.getConfig()) {\n const ImgImagesTextsSmallLeftTextRightFormDto = new FormsDto(content);\n\n const maskImagesTextsSmallLeftTextRightContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsSmallLeftTextRightContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsSmallLeftTextRightFormDto.forms.push(maskImagesTextsSmallLeftTextRightContentDto);\n ImgImagesTextsSmallLeftTextRightFormDto.forms.push(centerAlignImagesTextsSmallLeftTextRightContentDto);\n\n return ImgImagesTextsSmallLeftTextRightFormDto;\n }\n\n getConfig() {\n return new ImagesTextsSmallLeftTextRightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsSmallRightTextLeftDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsSmallRightTextLeftDto } from '../../../dtos/blocks/images-texts/images-texts-small-right-text-left.dto';\n\nexport const TYPE_IMAGES_TEXTS_SMALL_RIGHT_TEXT_LEFT = 'images-texts-small-right-text-left';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsSmallRightTextLeftService {\n private _text = 'wb.blocks.images-texts-small-right-text-left.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_SMALL_RIGHT_TEXT_LEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_SMALL_RIGHT_TEXT_LEFT;\n }\n\n image() {\n return ':lang/ImageTexte_Texte70-Image30.png';\n }\n\n getForm(content: ImagesTextsSmallRightTextLeftDto = this.getConfig()) {\n const ImgImagesTextsSmallRightTextLeftFormDto = new FormsDto(content);\n\n const maskImagesTextsSmallRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsSmallRightTextLeftContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsSmallRightTextLeftFormDto.forms.push(maskImagesTextsSmallRightTextLeftContentDto);\n ImgImagesTextsSmallRightTextLeftFormDto.forms.push(centerAlignImagesTextsSmallRightTextLeftContentDto);\n\n return ImgImagesTextsSmallRightTextLeftFormDto;\n }\n\n getConfig() {\n return new ImagesTextsSmallRightTextLeftDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class ImagesTextsTextOneTextDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_BUTTON_LEFT]: ButtonDto = new ButtonDto();\n [FORM_NAME_BUTTON_RIGHT]: ButtonDto = new ButtonDto();\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.5';\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.8';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.5';\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.8';\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_TEXT_CENTER] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_TEXT_CENTER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ImagesTextsTextOneTextDto } from '../../../dtos/blocks/images-texts/images-texts-text-one-text.dto';\n\nexport const TYPE_IMAGES_TEXTS_TEXT_ONE_TEXT = 'images-texts-text-one-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsTextOneTextService {\n private _text = 'wb.blocks.images-texts-text-one-text.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TEXTS_TEXT_ONE_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS_TEXT_ONE_TEXT;\n }\n\n image() {\n return ':lang/ImageTexte_Texte-Image-Texte.png';\n }\n\n getForm(content: ImagesTextsTextOneTextDto = this.getConfig()) {\n const ImgImagesTextsTextOneTextFormDto = new FormsDto(content);\n\n const maskImagesTextsTextOneTextContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n const centerAlignImagesTextsTextOneTextContentDto = new FormsContentDto(\n FORM_NAME_TEXT_CENTER,\n 'wb.blocks.FormContentDto.120',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_TEXT_CENTER],\n '',\n 'wb.blocks.FormContentDto.121',\n [],\n [],\n [true, false],\n true\n );\n ImgImagesTextsTextOneTextFormDto.forms.push(maskImagesTextsTextOneTextContentDto);\n ImgImagesTextsTextOneTextFormDto.forms.push(centerAlignImagesTextsTextOneTextContentDto);\n\n return ImgImagesTextsTextOneTextFormDto;\n }\n\n getConfig() {\n return new ImagesTextsTextOneTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_ELEMENTS, FORM_NAME_FULLPAGE, FORM_NAME_IMG_MASK, FORM_NAME_INIT } from '../../forms/forms.dto';\nimport { FourImagesTitleElementDto } from '../../configs/images/four-images-title-element.dto';\n\nexport class FourImagesTitleDto extends ParentBlockDto {\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_ELEMENTS]: FourImagesTitleElementDto[] = [];\n [FORM_NAME_INIT] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FourImagesTitleDto } from '../../../dtos/blocks/images/four-images-title.dto';\n\nexport const TYPE_FOUR_IMAGES_TITLE = 'images-quadruple-with-title';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FourImagesTitleService {\n private _text = 'wb.blocks.images.fourImagesTitle';\n\n static selector() {\n return 'wb-' + TYPE_FOUR_IMAGES_TITLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FOUR_IMAGES_TITLE;\n }\n\n image() {\n return 'Image_4ImgTitre.png';\n }\n\n getForm(content: FourImagesTitleDto = this.getConfig()) {\n const FourImagesTitleFormDto = new FormsDto(content);\n\n const maskFourImagesTitleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n FourImagesTitleFormDto.forms.push(maskFourImagesTitleContentDto);\n\n const fullpageFourImagesTitleContentDto = new FormsContentDto(\n FORM_NAME_FULLPAGE,\n 'wb.blocks.FormContentDto.16',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_FULLPAGE],\n '',\n '',\n [],\n [],\n [true, false]\n );\n FourImagesTitleFormDto.forms.push(fullpageFourImagesTitleContentDto);\n\n return FourImagesTitleFormDto;\n }\n\n getConfig() {\n return new FourImagesTitleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_NAME_PARALLAX_INVERTED,\n FORM_NAME_PARALLAX_SPEED,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesSimpleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_PARALLAX_SPEED] = '0';\n [FORM_NAME_PARALLAX_INVERTED] = false;\n}\n","import { Injectable } from '@angular/core';\nimport { ImagesSimpleDto } from '../../../dtos/blocks/images/images-simple.dto';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_PARALLAX_INVERTED,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_IMAGES_SIMPLE = 'images-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesSimpleService {\n private _text = 'wb.blocks.images-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_SIMPLE;\n }\n\n image() {\n return 'Image_1img.png';\n }\n\n getForm(content: ImagesSimpleDto = this.getConfig()) {\n const imgSimpleFormDto = new FormsDto(content);\n\n const maskImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgSimpleFormDto.forms.push(maskImgSimpleContentDto);\n\n if (typeof content[FORM_NAME_PARALLAX_SPEED] === typeof undefined) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n } else {\n if (\n content[FORM_NAME_PARALLAX_SPEED] !== '0' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.25' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.5' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '1'\n ) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n }\n }\n\n const parallaxSpeedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_SPEED,\n 'wb.blocks.FormContentDto.113',\n FORM_TYPE_TAG,\n content[FORM_NAME_PARALLAX_SPEED],\n '',\n 'wb.forms.FormsContentDto.14',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.115',\n 'wb.blocks.FormContentDto.116',\n 'wb.blocks.FormContentDto.117',\n ],\n ['0', '0.25', '0.5', '1']\n );\n imgSimpleFormDto.forms.push(parallaxSpeedImgSimpleContentDto);\n\n const parallaxInvertedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_INVERTED,\n 'wb.blocks.FormContentDto.114',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_PARALLAX_INVERTED],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.28'\n );\n imgSimpleFormDto.forms.push(parallaxInvertedImgSimpleContentDto);\n\n return imgSimpleFormDto;\n }\n\n getConfig() {\n return new ImagesSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_FULLPAGE, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_RIGHT, FORM_NAME_IMG_MASK } from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesDoubleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesDoubleDto } from '../../../dtos/blocks/images/images-double.dto';\n\nexport const TYPE_IMAGES_DOUBLE = 'images-double';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesDoubleService {\n private _text = 'wb.blocks.images-double.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_DOUBLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_DOUBLE;\n }\n\n image() {\n return 'Image_2img.png';\n }\n\n getForm(content: ImagesDoubleDto = this.getConfig()) {\n const imgDoubleFormDto = new FormsDto(content);\n\n const maskImgDoubleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgDoubleFormDto.forms.push(maskImgDoubleContentDto);\n\n return imgDoubleFormDto;\n }\n\n getConfig() {\n return new ImagesDoubleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_LEFT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesTripleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesTripleDto } from '../../../dtos/blocks/images/images-triple.dto';\n\nexport const TYPE_IMAGES_TRIPLE = 'images-triple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTripleService {\n private _text = 'wb.blocks.images-triple.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_TRIPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TRIPLE;\n }\n\n image() {\n return 'Image_3img.png';\n }\n\n getForm(content: ImagesTripleDto = this.getConfig()) {\n const imgTripleFormDto = new FormsDto(content);\n\n const maskImgTripleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgTripleFormDto.forms.push(maskImgTripleContentDto);\n\n return imgTripleFormDto;\n }\n\n getConfig() {\n return new ImagesTripleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_RIGHT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesQuadrupleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesQuadrupleDto } from '../../../dtos/blocks/images/images-quadruple.dto';\n\nexport const TYPE_IMAGES_QUADRUPLE = 'images-quadruple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesQuadrupleService {\n private _text = 'wb.blocks.images-quadruple.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_QUADRUPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_QUADRUPLE;\n }\n\n image() {\n return 'Image_4img.png';\n }\n\n getForm(content: ImagesQuadrupleDto = this.getConfig()) {\n const imgQuadrupleFormDto = new FormsDto(content);\n\n const maskImgQuadrupleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgQuadrupleFormDto.forms.push(maskImgQuadrupleContentDto);\n\n return imgQuadrupleFormDto;\n }\n\n getConfig() {\n return new ImagesQuadrupleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_MIDDLE_TOP,\n FORM_NAME_IMAGE_MIDDLE_BOTTOM,\n FORM_NAME_IMAGE_LEFT_TOP,\n FORM_NAME_IMAGE_LEFT_BOTTOM,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesQuadrupleLeftOneRightDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_BOTTOM]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT_BOTTOM]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesQuadrupleLeftOneRightDto } from '../../../dtos/blocks/images/images-quadruple-left-one-right.dto';\n\nexport const TYPE_IMAGES_QUADRUPLE_LEFT_ONE_RIGHT = 'images-quadruple-left-one-right';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesQuadrupleLeftOneRightService {\n private _text = 'wb.blocks.images-quadruple-left-one-right.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_QUADRUPLE_LEFT_ONE_RIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_QUADRUPLE_LEFT_ONE_RIGHT;\n }\n\n image() {\n return 'Image_4imgleft_1right.png';\n }\n\n getForm(content: ImagesQuadrupleLeftOneRightDto = this.getConfig()) {\n const ImgQuadrupleLeftOneRightFormDto = new FormsDto(content);\n\n const maskImgQuadrupleLeftOneRightContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n ImgQuadrupleLeftOneRightFormDto.forms.push(maskImgQuadrupleLeftOneRightContentDto);\n\n return ImgQuadrupleLeftOneRightFormDto;\n }\n\n getConfig() {\n return new ImagesQuadrupleLeftOneRightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_BOTTOM,\n FORM_NAME_IMAGE_MIDDLE_TOP,\n FORM_NAME_IMG_MASK\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesBigAndDoubleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_MIDDLE_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_BOTTOM]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesBigAndDoubleDto } from '../../../dtos/blocks/images/images-big-and-double.dto';\n\nexport const TYPE_IMAGES_BIG_AND_DOUBLE = 'image-big-and-double';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesBigAndDoubleService {\n private _text = 'wb.blocks.images-big-and-double.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_BIG_AND_DOUBLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_BIG_AND_DOUBLE;\n }\n\n image() {\n return 'Image_1-2Img.png';\n }\n\n getForm(content: ImagesBigAndDoubleDto = this.getConfig()) {\n const imgQuadrupleFormDto = new FormsDto(content);\n\n const maskImgQuadrupleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgQuadrupleFormDto.forms.push(maskImgQuadrupleContentDto);\n\n return imgQuadrupleFormDto;\n }\n\n getConfig() {\n return new ImagesBigAndDoubleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_BOTTOM,\n FORM_NAME_IMAGE_MIDDLE_TOP,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class ImagesBigsAndDoubleMiddleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE_MIDDLE_TOP]: ImageMediaDto;\n [FORM_NAME_IMAGE_MIDDLE_BOTTOM]: ImageMediaDto;\n [FORM_NAME_IMAGE_LEFT]: ImageMediaDto;\n [FORM_NAME_IMAGE_RIGHT]: ImageMediaDto;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ImagesBigsAndDoubleMiddleDto } from '../../../dtos/blocks/images/images-bigs-and-double-middle.dto';\n\nexport const TYPE_IMAGES_BIGS_AND_DOUBLE_MIDDLE = 'images-bigs-and-double-middle';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesBigsAndDoubleMiddleService {\n private _text = 'wb.blocks.images-bigs-and-double-middle.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_BIGS_AND_DOUBLE_MIDDLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_BIGS_AND_DOUBLE_MIDDLE;\n }\n\n image() {\n return 'Image_1-2-1Img.png';\n }\n\n getForm(content: ImagesBigsAndDoubleMiddleDto = this.getConfig()) {\n const imgBigAndDoubleMiddleFormDto = new FormsDto(content);\n\n const maskImgBigAndDoubleMiddleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n imgBigAndDoubleMiddleFormDto.forms.push(maskImgBigAndDoubleMiddleContentDto);\n\n return imgBigAndDoubleMiddleFormDto;\n }\n\n getConfig() {\n return new ImagesBigsAndDoubleMiddleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_BUTTON, FORM_NAME_CONTENT, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsOneDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { TextsOneDto } from '../../../dtos/blocks/texts/texts-one.dto';\n\nexport const TYPE_TEXTS_ONE = 'texts-one';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsOneService {\n private _text = 'wb.blocks.texts-one.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_ONE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_ONE;\n }\n\n image() {\n return ':lang/Texte_1.png';\n }\n\n getForm(content: TextsOneDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new TextsOneDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_BUTTON, FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_PADDING, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsOneBackgroundDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.4';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_COLOR] = '#f7f7f7';\n [FORM_NAME_PADDING] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_PADDING,\n FORM_TYPE_COLOR,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsOneBackgroundDto } from '../../../dtos/blocks/texts/texts-one-background.dto';\n\nexport const TYPE_TEXTS_ONE_BACKGROUND = 'texts-one-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsOneBackgroundService {\n private _text = 'wb.blocks.texts-one-background.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_ONE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_ONE_BACKGROUND;\n }\n\n image() {\n return ':lang/Texte_1Background.png';\n }\n\n getForm(content: TextsOneBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const paddingContentDto = new FormsContentDto(\n FORM_NAME_PADDING,\n 'wb.blocks.FormContentDto.69',\n FORM_TYPE_TAG,\n content[FORM_NAME_PADDING],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n formsDto.forms.push(paddingContentDto);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsOneBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsDoubleDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.4';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.4';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_PADDING,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsDoubleDto } from '../../../dtos/blocks/texts/texts-double.dto';\n\nexport const TYPE_TEXTS_DOUBLE = 'texts-double';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsDoubleService {\n private _text = 'wb.blocks.texts-double.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_DOUBLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_DOUBLE;\n }\n\n image() {\n return ':lang/Texte_2.png';\n }\n\n getForm(content: TextsDoubleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsDoubleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_PADDING,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsDoubleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.4';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.4';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n\n [FORM_NAME_PADDING] = 'small';\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_PADDING,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsDoubleBackgroundDto } from '../../../dtos/blocks/texts/texts-double-background.dto';\n\nexport const TYPE_TEXTS_DOUBLE_BACKGROUND = 'texts-double-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsDoubleBackgroundService {\n private _text = 'wb.blocks.texts-double-background.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_DOUBLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_DOUBLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Texte_2Background.png';\n }\n\n getForm(content: TextsDoubleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const paddingContentDto = new FormsContentDto(\n FORM_NAME_PADDING,\n 'wb.blocks.FormContentDto.69',\n FORM_TYPE_TAG,\n content[FORM_NAME_PADDING],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large'],\n []\n );\n formsDto.forms.push(paddingContentDto);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsDoubleBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_MIDDLE_LEFT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsTripleDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_LEFT] = new ButtonDto();\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_ALIGN_BUTTON, FORM_TYPE_CHECKBOX, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { TextsTripleDto } from '../../../dtos/blocks/texts/texts-triple.dto';\nimport { TextsDoubleDto } from '../../../dtos/blocks/texts/texts-double.dto';\n\nexport const TYPE_TEXTS_TRIPLE = 'texts-triple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsTripleService {\n private _text = 'wb.blocks.texts-triple.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_TRIPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_TRIPLE;\n }\n\n image() {\n return ':lang/Texte_3.png';\n }\n\n getForm(content: TextsTripleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsTripleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_MIDDLE_LEFT,\n FORM_NAME_BUTTON_MIDDLE_RIGHT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_MIDDLE_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsTripleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_LEFT] = new ButtonDto();\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_RIGHT] = new ButtonDto();\n\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_MIDDLE_LEFT] = '#f7f7f7';\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_MIDDLE_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsTripleBackgroundDto } from '../../../dtos/blocks/texts/texts-triple-background.dto';\n\nexport const TYPE_TEXTS_TRIPLE_BACKGROUND = 'texts-triple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsTripleBackgroundService {\n private _text = 'wb.blocks.texts-triple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_TRIPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_TRIPLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Texte_3Background.png';\n }\n\n getForm(content: TextsTripleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentMiddleDto = new FormsContentDto(\n FORM_NAME_COLOR_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.79',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_MIDDLE_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsTripleBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_MIDDLE_LEFT,\n FORM_NAME_BUTTON_MIDDLE_RIGHT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsQuadrupleDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_LEFT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_RIGHT] = new ButtonDto();\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_ALIGN_BUTTON, FORM_TYPE_CHECKBOX, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { TextsQuadrupleDto } from '../../../dtos/blocks/texts/texts-quadruple.dto';\nimport { TextsTripleDto } from '../../../dtos/blocks/texts/texts-triple.dto';\n\nexport const TYPE_TEXTS_QUADRUPLE = 'texts-quadruple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsQuadrupleService {\n private _text = 'wb.blocks.texts-quadruple.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_QUADRUPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_QUADRUPLE;\n }\n\n image() {\n return ':lang/Texte_4.png';\n }\n\n getForm(content: TextsQuadrupleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsQuadrupleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_MIDDLE_LEFT,\n FORM_NAME_BUTTON_MIDDLE_RIGHT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_MIDDLE_LEFT,\n FORM_NAME_COLOR_MIDDLE_RIGHT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextsQuadrupleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_LEFT] = new ButtonDto();\n\n [FORM_NAME_BUTTON_RIGHT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_LEFT] = new ButtonDto();\n\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.3';\n\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.7';\n\n [FORM_NAME_BUTTON_MIDDLE_RIGHT] = new ButtonDto();\n\n [FORM_NAME_COLOR_LEFT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_RIGHT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_MIDDLE_LEFT] = '#f7f7f7';\n\n [FORM_NAME_COLOR_MIDDLE_RIGHT] = '#f7f7f7';\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_MIDDLE_LEFT,\n FORM_NAME_COLOR_MIDDLE_RIGHT,\n FORM_NAME_COLOR_RIGHT,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsQuadrupleBackgroundDto } from '../../../dtos/blocks/texts/texts-quadruple-background.dto';\n\nexport const TYPE_TEXTS_QUADRUPLE_BACKGROUND = 'texts-quadruple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsQuadrupleBackgroundService {\n private _text = 'wb.blocks.texts-quadruple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_QUADRUPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_QUADRUPLE_BACKGROUND;\n }\n\n image() {\n return ':lang/Texte_4Background.png';\n }\n\n getForm(content: TextsQuadrupleBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_LEFT,\n 'wb.blocks.FormContentDto.70',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentLeftDto);\n\n const colorContentMiddleLeftDto = new FormsContentDto(\n FORM_NAME_COLOR_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.72',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_MIDDLE_LEFT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleLeftDto);\n\n const colorContentMiddleRightDto = new FormsContentDto(\n FORM_NAME_COLOR_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.73',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_MIDDLE_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleRightDto);\n\n const colorContentRightDto = new FormsContentDto(\n FORM_NAME_COLOR_RIGHT,\n 'wb.blocks.FormContentDto.71',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR_RIGHT],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentRightDto);\n\n const alignButtonContentDto = new FormsContentDto(\n FORM_NAME_ALIGN_BUTTON,\n 'wb.forms.FormsContentDto.3',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ALIGN_BUTTON],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(alignButtonContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsQuadrupleBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT, FORM_NAME_ID_FORM, FORM_NAME_TITLE } from '../../forms/forms.dto';\n\nexport class FormsSimpleDto extends ParentBlockDto {\n [FORM_NAME_ID_FORM]: number;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.3';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { FormsSimpleDto } from '../../../dtos/blocks/forms/forms-simple.dto';\n\nexport const TYPE_FORMS_SIMPLE = 'forms-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsSimpleService {\n private _text = 'wb.blocks.forms-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_FORMS_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS_SIMPLE;\n }\n\n image() {\n return ':lang/Formulaire_Simple.png';\n }\n\n getForm(content: FormsSimpleDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new FormsSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT, FORM_NAME_ID_FORM, FORM_NAME_IMAGE, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class FormsBackgroundDto extends ParentBlockDto {\n [FORM_NAME_ID_FORM]: number;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.3';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_IMAGE]: MediaDto;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { FormsBackgroundDto } from '../../../dtos/blocks/forms/forms-background.dto';\n\nexport const TYPE_FORMS_BACKGROUND = 'forms-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsBackgroundService {\n private _text = 'wb.blocks.forms-background.text';\n\n static selector() {\n return 'wb-' + TYPE_FORMS_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS_BACKGROUND;\n }\n\n image() {\n return ':lang/Formulaire_ImgBackground.png';\n }\n\n getForm(content: FormsBackgroundDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new FormsBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT, FORM_NAME_ID_FORM, FORM_NAME_IMAGE, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class FormsImageleftDto extends ParentBlockDto {\n [FORM_NAME_ID_FORM]: number;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.3';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_IMAGE]: ImageMediaDto;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { FormsImageleftDto } from '../../../dtos/blocks/forms/forms-imageleft.dto';\n\nexport const TYPE_FORMS_IMAGELEFT = 'forms-imageleft';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsImageleftService {\n private _text = 'wb.blocks.forms-imageleft.text';\n\n static selector() {\n return 'wb-' + TYPE_FORMS_IMAGELEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS_IMAGELEFT;\n }\n\n image() {\n return ':lang/Formulaire_ImgLeft.png';\n }\n\n getForm(content: FormsImageleftDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new FormsImageleftDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT, FORM_NAME_ID_FORM, FORM_NAME_IMAGE, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class FormsImagerightDto extends ParentBlockDto {\n [FORM_NAME_ID_FORM]: number;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.3';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.7';\n [FORM_NAME_IMAGE]: ImageMediaDto;\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { FormsImagerightDto } from '../../../dtos/blocks/forms/forms-imageright.dto';\n\nexport const TYPE_FORMS_IMAGERIGHT = 'forms-imageright';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsImagerightService {\n private _text = 'wb.blocks.forms-imageright.text';\n\n static selector() {\n return 'wb-' + TYPE_FORMS_IMAGERIGHT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS_IMAGERIGHT;\n }\n\n image() {\n return ':lang/Formulaire_ImgRight.png';\n }\n\n getForm(content: FormsImagerightDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new FormsImagerightDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_NAME_PARALLAX_INVERTED,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextBackgroundsSimpleDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.CONTENT.29';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.28';\n [FORM_NAME_BUTTON]: ButtonDto = new ButtonDto();\n [FORM_NAME_PARALLAX_SPEED] = '0';\n [FORM_NAME_PARALLAX_INVERTED] = false;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_PARALLAX_INVERTED,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsSimpleDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-simple.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_SIMPLE = 'text-backgrounds-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsSimpleService {\n private _text = 'wb.blocks.text-backgrounds-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_SIMPLE;\n }\n\n image() {\n return ':lang/TxtImgFond_AvecTxt-1.png';\n }\n\n getForm(content: TextBackgroundsSimpleDto = this.getConfig()) {\n const TextBackgroundsSimpleFormDto = new FormsDto(content);\n\n const maskTextBackgroundsSimpleContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n TextBackgroundsSimpleFormDto.forms.push(maskTextBackgroundsSimpleContentDto);\n\n if (typeof content[FORM_NAME_PARALLAX_SPEED] === typeof undefined) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n } else {\n if (\n content[FORM_NAME_PARALLAX_SPEED] !== '0' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.25' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.5' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '1'\n ) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n }\n }\n\n const parallaxSpeedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_SPEED,\n 'wb.blocks.FormContentDto.113',\n FORM_TYPE_TAG,\n content[FORM_NAME_PARALLAX_SPEED],\n '',\n 'wb.forms.FormsContentDto.14',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.115',\n 'wb.blocks.FormContentDto.116',\n 'wb.blocks.FormContentDto.117',\n ],\n ['0', '0.25', '0.5', '1']\n );\n TextBackgroundsSimpleFormDto.forms.push(parallaxSpeedImgSimpleContentDto);\n\n const parallaxInvertedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_INVERTED,\n 'wb.blocks.FormContentDto.114',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_PARALLAX_INVERTED],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.28'\n );\n TextBackgroundsSimpleFormDto.forms.push(parallaxInvertedImgSimpleContentDto);\n\n return TextBackgroundsSimpleFormDto;\n }\n\n getConfig() {\n return new TextBackgroundsSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BUTTON,\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_NAME_PARALLAX_INVERTED,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\nimport { ButtonDto } from '../../configs/buttons/button.dto';\n\nexport class TextBackgroundsWithTxtDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.5';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.8';\n [FORM_NAME_BUTTON] = new ButtonDto();\n [FORM_NAME_COLOR] = '#ffffff';\n [FORM_NAME_PARALLAX_SPEED] = '0';\n [FORM_NAME_PARALLAX_INVERTED] = false;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_PARALLAX_INVERTED,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsWithTxtDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-with-txt.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_WITH_TXT = 'text-backgrounds-with-txt';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsWithTxtService {\n private _text = 'wb.blocks.text-backgrounds-with-txt.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_WITH_TXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_WITH_TXT;\n }\n\n image() {\n return ':lang/TxtImgFond_AvecTxt.png';\n }\n\n getForm(content: TextBackgroundsWithTxtDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n const maskTextBackgroundsWithTxtContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n formsDto.forms.push(maskTextBackgroundsWithTxtContentDto);\n\n if (typeof content[FORM_NAME_PARALLAX_SPEED] === typeof undefined) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n } else {\n if (\n content[FORM_NAME_PARALLAX_SPEED] !== '0' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.25' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.5' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '1'\n ) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n }\n }\n\n const parallaxSpeedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_SPEED,\n 'wb.blocks.FormContentDto.113',\n FORM_TYPE_TAG,\n content[FORM_NAME_PARALLAX_SPEED],\n '',\n 'wb.forms.FormsContentDto.14',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.115',\n 'wb.blocks.FormContentDto.116',\n 'wb.blocks.FormContentDto.117',\n ],\n ['0', '0.25', '0.5', '1']\n );\n formsDto.forms.push(parallaxSpeedImgSimpleContentDto);\n\n const parallaxInvertedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_INVERTED,\n 'wb.blocks.FormContentDto.114',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_PARALLAX_INVERTED],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.28'\n );\n formsDto.forms.push(parallaxInvertedImgSimpleContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextBackgroundsWithTxtDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_NAME_PARALLAX_INVERTED,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_TEXT,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class TextBackgroundsWithBannerDto extends ParentBlockDto {\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.39';\n [FORM_NAME_TEXT] = 'wb.dto.TEXT.2';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.37';\n [FORM_NAME_COLOR] = '#74b4c0';\n [FORM_NAME_PARALLAX_SPEED] = '0';\n [FORM_NAME_PARALLAX_INVERTED] = false;\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { TextBackgroundsWithBannerDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-with-banner.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_PARALLAX,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n FORM_NAME_PARALLAX_SPEED,\n FORM_NAME_PARALLAX_INVERTED,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_WITH_BANNER = 'text-backgrounds-with-banner';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsWithBannerService {\n private _text = 'wb.blocks.text-backgrounds-with-banner';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_WITH_BANNER;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_WITH_BANNER;\n }\n\n image() {\n return ':lang/TxtImgFond_AvecTxtBanniere.png';\n }\n\n getForm(content: TextBackgroundsWithBannerDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const maskTextBackgroundsWithTxtContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n formsDto.forms.push(maskTextBackgroundsWithTxtContentDto);\n\n const fullpageTextBackgroundsWithTxtContentDto = new FormsContentDto(\n FORM_NAME_FULLPAGE,\n 'wb.blocks.FormContentDto.16',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_FULLPAGE],\n '',\n '',\n [],\n [],\n [true, false]\n );\n formsDto.forms.push(fullpageTextBackgroundsWithTxtContentDto);\n\n if (typeof content[FORM_NAME_PARALLAX_SPEED] === typeof undefined) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n } else {\n if (\n content[FORM_NAME_PARALLAX_SPEED] !== '0' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.25' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.5' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '1'\n ) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n }\n }\n\n const parallaxSpeedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_SPEED,\n 'wb.blocks.FormContentDto.113',\n FORM_TYPE_TAG,\n content[FORM_NAME_PARALLAX_SPEED],\n '',\n 'wb.forms.FormsContentDto.14',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.115',\n 'wb.blocks.FormContentDto.116',\n 'wb.blocks.FormContentDto.117',\n ],\n ['0', '0.25', '0.5', '1']\n );\n formsDto.forms.push(parallaxSpeedImgSimpleContentDto);\n\n const parallaxInvertedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_INVERTED,\n 'wb.blocks.FormContentDto.114',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_PARALLAX_INVERTED],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.28'\n );\n formsDto.forms.push(parallaxInvertedImgSimpleContentDto);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.112',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextBackgroundsWithBannerDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_AUTOPLAY,\n FORM_NAME_CONTROL,\n FORM_NAME_FULLPAGE,\n FORM_NAME_LINK,\n FORM_NAME_LOOP,\n FORM_NAME_MUTE,\n FORM_NAME_TYPE_VIDEO\n} from '../../forms/forms.dto';\n\nexport const TYPE_YOUTUBE = 'youtube';\nexport const TYPE_VIMEO = 'vimeo';\n\nexport class VideosSimpleDto extends ParentBlockDto {\n [FORM_NAME_CONTROL] = true;\n\n [FORM_NAME_AUTOPLAY] = false;\n\n [FORM_NAME_FULLPAGE] = true;\n\n [FORM_NAME_MUTE] = true;\n\n [FORM_NAME_LOOP] = true;\n\n [FORM_NAME_LINK] = '';\n\n [FORM_NAME_TYPE_VIDEO] = TYPE_YOUTUBE;\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\nimport { TYPE_YOUTUBE } from '../videos/videos-simple.dto';\nimport {\n FORM_NAME_CONTROL,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMAGE,\n FORM_NAME_LINK,\n FORM_NAME_MUTE,\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_TYPE_VIDEO,\n FORM_NAME_COLOR,\n} from '../../forms/forms.dto';\n\nexport class LaunchVideosButtonDto extends ParentBlockDto {\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_MUTE] = true;\n [FORM_NAME_CONTROL] = false;\n [FORM_NAME_BUTTON_TEXT] = 'wb.dto.BUTTON_TEXT.6';\n [FORM_NAME_LINK] = '';\n [FORM_NAME_IMAGE]: MediaDto;\n [FORM_NAME_TYPE_VIDEO] = TYPE_YOUTUBE;\n [FORM_NAME_COLOR] = '#ffffff';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_COLOR,\n FORM_NAME_LINK,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { LaunchVideosButtonDto } from '../../../dtos/blocks/launch-videos/launch-videos-button.dto';\n\nexport const TYPE_LAUNCH_VIDEOS_BUTTON = 'launch-videos-button';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LaunchVideosButtonService {\n private _text = 'wb.blocks.launch-videos-button.text';\n\n static selector() {\n return 'wb-' + TYPE_LAUNCH_VIDEOS_BUTTON;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_LAUNCH_VIDEOS_BUTTON;\n }\n\n image() {\n return ':lang/LancerVideo_Simple.png';\n }\n\n getForm(content: LaunchVideosButtonDto = this.getConfig()) {\n const launchVideosFormDto = new FormsDto(content);\n\n const linkLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n launchVideosFormDto.forms.push(linkLaunchVideosContentDto);\n\n const muteLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n launchVideosFormDto.forms.push(muteLaunchVideosContentDto);\n\n const colorLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.20',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#ffffff',\n ''\n );\n launchVideosFormDto.forms.push(colorLaunchVideosContentDto);\n\n const textBtnLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_BUTTON_TEXT,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_BUTTON_TEXT],\n '',\n ''\n );\n launchVideosFormDto.forms.push(textBtnLaunchVideosContentDto);\n\n return launchVideosFormDto;\n }\n\n getConfig() {\n return new LaunchVideosButtonDto(this.type());\n }\n}\n","import { FORM_NAME_TITLE, FORM_NAME_CONTENT, FORM_NAME_COLOR, FORM_NAME_BACKGROUND_COLOR } from '../../forms/forms.dto';\nimport { LaunchVideosButtonDto } from './launch-videos-button.dto';\n\nexport class LaunchVideosButtontxtDto extends LaunchVideosButtonDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.7';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.9';\n [FORM_NAME_COLOR] = '#ffffff';\n [FORM_NAME_BACKGROUND_COLOR] = '#4baed0';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_COLOR,\n FORM_NAME_CONTROL,\n FORM_NAME_LINK,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { LaunchVideosButtontxtDto } from '../../../dtos/blocks/launch-videos/launch-videos-buttontxt.dto';\n\nexport const TYPE_LAUNCH_VIDEOS_BUTTONTXT = 'launch-videos-buttontxt';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LaunchVideosButtontxtService {\n private _text = 'wb.blocks.launch-videos-buttontxt.text';\n\n static selector() {\n return 'wb-' + TYPE_LAUNCH_VIDEOS_BUTTONTXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_LAUNCH_VIDEOS_BUTTONTXT;\n }\n\n image() {\n return ':lang/LancerVideo_AvecTxt.png';\n }\n\n getForm(content: LaunchVideosButtontxtDto = this.getConfig()) {\n const launchVideosFormDto = new FormsDto(content);\n\n const linkLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n launchVideosFormDto.forms.push(linkLaunchVideosContentDto);\n\n const muteLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n launchVideosFormDto.forms.push(muteLaunchVideosContentDto);\n\n const colorLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.21',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#ffffff',\n ''\n );\n launchVideosFormDto.forms.push(colorLaunchVideosContentDto);\n\n const backgroundLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.22',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#ffffff',\n ''\n );\n launchVideosFormDto.forms.push(backgroundLaunchVideosContentDto);\n\n const textBtnLaunchVideosContentDto = new FormsContentDto(\n FORM_NAME_BUTTON_TEXT,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_BUTTON_TEXT],\n '',\n ''\n );\n launchVideosFormDto.forms.push(textBtnLaunchVideosContentDto);\n\n return launchVideosFormDto;\n }\n\n getConfig() {\n return new LaunchVideosButtontxtDto(this.type());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { VideosSimpleDto } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport {\n FORM_NAME_AUTOPLAY,\n FORM_NAME_CONTROL,\n FORM_NAME_LINK,\n FORM_NAME_LOOP,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_VIDEOS_SIMPLE = 'videos-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VideosSimpleService {\n private _text = 'wb.blocks.videos-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_VIDEOS_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_VIDEOS_SIMPLE;\n }\n\n image() {\n return 'Video_Simple.png';\n }\n\n getForm(content: VideosSimpleDto = this.getConfig()) {\n const videosFormDto = new FormsDto(content);\n\n const linkVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n videosFormDto.forms.push(linkVideosContentDto);\n\n const controlVideosContentDto = new FormsContentDto(\n FORM_NAME_CONTROL,\n 'wb.forms.FormsContentDto.17',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_CONTROL],\n '100ms',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.18'\n );\n videosFormDto.forms.push(controlVideosContentDto);\n\n const autoplayVideosContentDto = new FormsContentDto(\n FORM_NAME_AUTOPLAY,\n 'wb.forms.FormsContentDto.19',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_AUTOPLAY],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.20'\n );\n videosFormDto.forms.push(autoplayVideosContentDto);\n\n const muteVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n videosFormDto.forms.push(muteVideosContentDto);\n\n const loopVideosContentDto = new FormsContentDto(\n FORM_NAME_LOOP,\n 'wb.forms.FormsContentDto.23',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_LOOP],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.24'\n );\n videosFormDto.forms.push(loopVideosContentDto);\n\n return videosFormDto;\n }\n\n getConfig() {\n return new VideosSimpleDto(this.type());\n }\n}\n","import { VideosSimpleDto } from './videos-simple.dto';\nimport { FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_TITLE } from '../../forms/forms.dto';\n\nexport class VideosTxtDto extends VideosSimpleDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.33';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.34';\n [FORM_NAME_COLOR] = 'rgba(255,255,255,0)';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_AUTOPLAY,\n FORM_NAME_CONTROL,\n FORM_NAME_LINK,\n FORM_NAME_LOOP,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { VideosTxtDto } from '../../../dtos/blocks/videos/videos-txt.dto';\n\nexport const TYPE_VIDEOS_TXT = 'videos-txt';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VideosTxtService {\n private _text = 'wb.blocks.videos-txt.text';\n\n static selector() {\n return 'wb-' + TYPE_VIDEOS_TXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_VIDEOS_TXT;\n }\n\n image() {\n return ':lang/Video_AvecTxt.png';\n }\n\n getForm(content: VideosTxtDto = this.getConfig()) {\n const videosFormDto = new FormsDto(content);\n\n const linkVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n videosFormDto.forms.push(linkVideosContentDto);\n\n const controlVideosContentDto = new FormsContentDto(\n FORM_NAME_CONTROL,\n 'wb.forms.FormsContentDto.17',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_CONTROL],\n '100ms',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.18'\n );\n videosFormDto.forms.push(controlVideosContentDto);\n\n const autoplayVideosContentDto = new FormsContentDto(\n FORM_NAME_AUTOPLAY,\n 'wb.forms.FormsContentDto.19',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_AUTOPLAY],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.20'\n );\n videosFormDto.forms.push(autoplayVideosContentDto);\n\n const muteVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n videosFormDto.forms.push(muteVideosContentDto);\n\n const loopVideosContentDto = new FormsContentDto(\n FORM_NAME_LOOP,\n 'wb.forms.FormsContentDto.23',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_LOOP],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.24'\n );\n videosFormDto.forms.push(loopVideosContentDto);\n\n return videosFormDto;\n }\n\n getConfig() {\n return new VideosTxtDto(this.type());\n }\n}\n","import { VideosSimpleDto } from './videos-simple.dto';\nimport { FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_TITLE } from '../../forms/forms.dto';\n\nexport class VideosTxtContentDto extends VideosSimpleDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.32';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.33';\n [FORM_NAME_COLOR] = '#ffffff';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_AUTOPLAY,\n FORM_NAME_COLOR,\n FORM_NAME_CONTROL,\n FORM_NAME_LINK,\n FORM_NAME_LOOP,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { VideosTxtContentDto } from '../../../dtos/blocks/videos/videos-txt-content.dto';\n\nexport const TYPE_VIDEOS_TXT_CONTENT = 'videos-txt-content';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VideosTxtContentService {\n private _text = 'wb.blocks.videos-txt-content.text';\n\n static selector() {\n return 'wb-' + TYPE_VIDEOS_TXT_CONTENT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_VIDEOS_TXT_CONTENT;\n }\n\n image() {\n return ':lang/Video_TexteContent.png';\n }\n\n getForm(content: VideosTxtContentDto = this.getConfig()) {\n const videosFormDto = new FormsDto(content);\n\n const linkVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n videosFormDto.forms.push(linkVideosContentDto);\n\n const controlVideosContentDto = new FormsContentDto(\n FORM_NAME_CONTROL,\n 'wb.forms.FormsContentDto.17',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_CONTROL],\n '100ms',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.18'\n );\n videosFormDto.forms.push(controlVideosContentDto);\n\n const autoplayVideosContentDto = new FormsContentDto(\n FORM_NAME_AUTOPLAY,\n 'wb.forms.FormsContentDto.19',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_AUTOPLAY],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.20'\n );\n videosFormDto.forms.push(autoplayVideosContentDto);\n\n const muteVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n videosFormDto.forms.push(muteVideosContentDto);\n\n const loopVideosContentDto = new FormsContentDto(\n FORM_NAME_LOOP,\n 'wb.forms.FormsContentDto.23',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_LOOP],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.24'\n );\n videosFormDto.forms.push(loopVideosContentDto);\n\n const colorVideosContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n videosFormDto.forms.push(colorVideosContentDto);\n\n return videosFormDto;\n }\n\n getConfig() {\n return new VideosTxtContentDto(this.type());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { VideosTxtContentDto } from '../../../dtos/blocks/videos/videos-txt-content.dto';\nimport {\n FORM_NAME_AUTOPLAY,\n FORM_NAME_COLOR,\n FORM_NAME_CONTROL,\n FORM_NAME_LINK,\n FORM_NAME_LOOP,\n FORM_NAME_MUTE,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_VIDEOS_TXT_LEFT = 'videos-txt-left';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VideosTxtLeftService {\n private _text = 'wb.blocks.videos-txt-left.text';\n\n static selector() {\n return 'wb-' + TYPE_VIDEOS_TXT_LEFT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_VIDEOS_TXT_LEFT;\n }\n\n image() {\n return ':lang/Video_TexteLeft.png';\n }\n\n getForm(content: VideosTxtContentDto = this.getConfig()) {\n const videosFormDto = new FormsDto(content);\n\n const linkVideosContentDto = new FormsContentDto(\n FORM_NAME_LINK,\n 'wb.blocks.FormContentDto.18',\n FORM_TYPE_TEXT,\n content[FORM_NAME_LINK],\n '',\n ''\n );\n videosFormDto.forms.push(linkVideosContentDto);\n\n const controlVideosContentDto = new FormsContentDto(\n FORM_NAME_CONTROL,\n 'wb.forms.FormsContentDto.17',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_CONTROL],\n '100ms',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.18'\n );\n videosFormDto.forms.push(controlVideosContentDto);\n\n const autoplayVideosContentDto = new FormsContentDto(\n FORM_NAME_AUTOPLAY,\n 'wb.forms.FormsContentDto.19',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_AUTOPLAY],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.20'\n );\n videosFormDto.forms.push(autoplayVideosContentDto);\n\n const muteVideosContentDto = new FormsContentDto(\n FORM_NAME_MUTE,\n 'wb.forms.FormsContentDto.21',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_MUTE],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.22'\n );\n videosFormDto.forms.push(muteVideosContentDto);\n\n const loopVideosContentDto = new FormsContentDto(\n FORM_NAME_LOOP,\n 'wb.forms.FormsContentDto.23',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_LOOP],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.24'\n );\n videosFormDto.forms.push(loopVideosContentDto);\n\n const colorVideosContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n videosFormDto.forms.push(colorVideosContentDto);\n\n return videosFormDto;\n }\n\n getConfig() {\n return new VideosTxtContentDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT } from '../../forms/forms.dto';\n\nexport class CodeJavascriptDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.4';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { CodeJavascriptDto } from '../../../dtos/blocks/code/code-javascript.dto';\n\nexport const TYPE_CODE_JAVASCRIPT = 'code-javascript';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CodeJavascriptService {\n private _text = 'wb.blocks.code-javascript.text';\n\n static selector() {\n return 'wb-' + TYPE_CODE_JAVASCRIPT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_CODE_JAVASCRIPT;\n }\n\n image() {\n return 'Html_Classic.png';\n }\n\n getForm(content: CodeJavascriptDto = this.getConfig()) {\n return new FormsDto(content, false);\n }\n\n getConfig() {\n return new CodeJavascriptDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_CONTENT } from '../../forms/forms.dto';\n\nexport class CodeStylesheetDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.5';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { CodeStylesheetDto } from '../../../dtos/blocks/code/code-stylesheet.dto';\n\nexport const TYPE_CODE_STYLESHEET = 'code-stylesheet';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CodeStylesheetService {\n private _text = 'wb.blocks.code-stylesheet.text';\n\n static selector() {\n return 'wb-' + TYPE_CODE_STYLESHEET;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_CODE_STYLESHEET;\n }\n\n image() {\n return 'Html_Classic.png';\n }\n\n getForm(content: CodeStylesheetDto = this.getConfig()) {\n return new FormsDto(content, false);\n }\n\n getConfig() {\n return new CodeStylesheetDto(this.type());\n }\n}\n","import { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class SocialsPageSimpleDto extends ParentBlockDto {\n [FORM_NAME_APP_ID]: string;\n [FORM_NAME_URL]: string;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_TYPE_TEXT, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { SocialsLikeDto } from '../../../dtos/blocks/socials/socials-like.dto';\nimport { SocialsPageSimpleDto } from '../../../dtos/blocks/socials/socials-page-simple.dto';\n\nexport const TYPE_SOCIALS_PAGE_SIMPLE = 'socials-page-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocialsPageSimpleService {\n private _text = 'wb.blocks.socials-page-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_SOCIALS_PAGE_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SOCIALS_PAGE_SIMPLE;\n }\n\n image() {\n return ':lang/SocialNetw_Facebook-HeaderMini.png';\n }\n\n getForm(content: SocialsLikeDto = this.getConfig()) {\n const formDto = new FormsDto(content);\n\n const contentDto = new FormsContentDto(\n FORM_NAME_APP_ID,\n 'wb.blocks.FormContentDto.63',\n FORM_TYPE_TEXT,\n content[FORM_NAME_APP_ID],\n '215645212148745',\n 'wb.blocks.FormContentDto.93'\n );\n formDto.forms.push(contentDto);\n\n return formDto;\n }\n\n getConfig() {\n return new SocialsPageSimpleDto(this.type());\n }\n}\n","import { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../forms/forms.dto';\nimport { ParentBlockDto } from '../parent-block.dto';\n\nexport class SocialsPageComplexDto extends ParentBlockDto {\n [FORM_NAME_APP_ID]: string;\n [FORM_NAME_URL]: string;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_TYPE_TEXT, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { SocialsLikeDto } from '../../../dtos/blocks/socials/socials-like.dto';\nimport { SocialsPageComplexDto } from '../../../dtos/blocks/socials/socials-page-complex.dto';\n\nexport const TYPE_SOCIALS_PAGE_COMPLEX = 'socials-page-complex';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocialsPageComplexService {\n private _text = 'wb.blocks.socials-page-complex.text';\n\n static selector() {\n return 'wb-' + TYPE_SOCIALS_PAGE_COMPLEX;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SOCIALS_PAGE_COMPLEX;\n }\n\n image() {\n return ':lang/SocialNetw_Facebook-TimelineMessages.png';\n }\n\n getForm(content: SocialsLikeDto = this.getConfig()) {\n const formDto = new FormsDto(content);\n\n const contentDto = new FormsContentDto(\n FORM_NAME_APP_ID,\n 'wb.blocks.FormContentDto.63',\n FORM_TYPE_TEXT,\n content[FORM_NAME_APP_ID],\n '215645212148745',\n 'wb.blocks.FormContentDto.93'\n );\n formDto.forms.push(contentDto);\n\n return formDto;\n }\n\n getConfig() {\n return new SocialsPageComplexDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class ProductZoomDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.1';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductZoomDto } from '../../../dtos/blocks/product/product-zoom.dto';\n\nexport const TYPE_PRODUCT_ZOOM = 'product-zoom';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomService {\n private _text = 'wb.blocks.product-zoom.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM;\n }\n\n image() {\n return ':lang/ZoomProduct_Classic.png';\n }\n\n getForm(content: ProductZoomDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new ProductZoomDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class ProductZoomSelectedDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.2';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductZoomSelectedDto } from '../../../dtos/blocks/product/product-zoom-selected.dto';\n\nexport const TYPE_PRODUCT_ZOOM_SELECTED = 'product-zoom-selected';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomSelectedService {\n private _text = 'wb.blocks.product-zoom-selected.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_SELECTED;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_SELECTED;\n }\n\n image() {\n return ':lang/ZoomProduct_ImgCenter.png';\n }\n\n getForm(content: ProductZoomSelectedDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new ProductZoomSelectedDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class ProductZoomMoreDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.1';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductZoomMoreDto } from '../../../dtos/blocks/product/product-zoom-more.dto';\n\nexport const TYPE_PRODUCT_ZOOM_MORE = 'product-zoom-more';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomMoreService {\n private _text = 'wb.blocks.product-zoom-more.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_MORE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_MORE;\n }\n\n image() {\n return ':lang/ZoomProduct_3img.png';\n }\n\n getForm(content: ProductZoomMoreDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new ProductZoomMoreDto(this.type());\n }\n}\n","import { MediaDto } from '../media.dto';\nimport { FORM_NAME_PAYMENT } from '../../../forms/forms.dto';\n\nexport class PaymentOrMediaDto extends MediaDto {\n constructor(paymentLink = '') {\n super();\n this[FORM_NAME_PAYMENT] = paymentLink;\n }\n\n [FORM_NAME_PAYMENT] = '';\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_CONTENT,\n FORM_NAME_CONTENT_MIDDLE_BOTTOM,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_MIDDLE_TOP,\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n FORM_NAME_ICON_MIDDLE_BOTTOM,\n FORM_NAME_ICON_MIDDLE_TOP,\n FORM_NAME_ID_PRODUCT,\n FORM_NAME_PAYMENT_OR_MEDIA,\n} from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\nimport { PaymentOrMediaDto } from '../../configs/medias/image/payment-or-media.dto';\n\nexport class ProductZoomCompleteDto extends ParentBlockDto {\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.13';\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.14';\n [FORM_NAME_CONTENT_MIDDLE_BOTTOM] = 'wb.dto.CONTENT.15';\n [FORM_NAME_CONTENT_MIDDLE_TOP] = 'wb.dto.CONTENT.16';\n [FORM_NAME_ICON_MIDDLE_TOP] = new FontOrMediaDto('far fa-stopwatch');\n [FORM_NAME_ICON_COLOR_MIDDLE_TOP] = '#e25657';\n [FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM] = '#e25657';\n [FORM_NAME_ICON_MIDDLE_BOTTOM] = new FontOrMediaDto('fas fa-bolt');\n [FORM_NAME_PAYMENT_OR_MEDIA] = new PaymentOrMediaDto('//img.wizishop.com/a/site/cards/CB-Visa-MCard.svg');\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.18';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ProductZoomCompleteDto } from '../../../dtos/blocks/product/product-zoom-complete.dto';\n\nexport const TYPE_PRODUCT_ZOOM_COMPLETE = 'product-zoom-complete';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomCompleteService {\n private _text = 'wb.blocks.product-zoom-complete.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_COMPLETE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_COMPLETE;\n }\n\n image() {\n return ':lang/ZoomProduct_Multiple.png';\n }\n\n getForm(content: ProductZoomCompleteDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentMiddleTopDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n 'wb.blocks.FormContentDto.31',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_TOP],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleTopDto);\n\n const colorContentMiddleBottomDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n 'wb.blocks.FormContentDto.32',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleBottomDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductZoomCompleteDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_ID_PRODUCT,\n FORM_NAME_IMAGE,\n FORM_NAME_PAYMENT_OR_MEDIA,\n} from '../../forms/forms.dto';\nimport { PaymentOrMediaDto } from '../../configs/medias/image/payment-or-media.dto';\nimport { MediaDto } from '../../configs/medias/media.dto';\n\nexport class ProductZoomCompleteBackgroundDto extends ParentBlockDto {\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.11';\n [FORM_NAME_PAYMENT_OR_MEDIA] = new PaymentOrMediaDto('//img.wizishop.com/a/site/cards/CB-Visa-MCard.svg');\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.12';\n [FORM_NAME_ID_PRODUCT] = '';\n [FORM_NAME_IMAGE] = new MediaDto();\n [FORM_NAME_COLOR] = '#ffffff';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_COLOR, FORM_TYPE_COLOR, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductZoomCompleteBackgroundDto } from '../../../dtos/blocks/product/product-zoom-complete-background.dto';\n\nexport const TYPE_PRODUCT_ZOOM_COMPLETE_BACKGROUND = 'product-zoom-complete-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomCompleteBackgroundService {\n private _text = 'wb.blocks.product-zoom-complete-background.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_COMPLETE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_COMPLETE_BACKGROUND;\n }\n\n image() {\n return ':lang/ZoomProduct_ImgFond.png';\n }\n\n getForm(content: ProductZoomCompleteBackgroundDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentMiddleTopDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.30',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleTopDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductZoomCompleteBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_CONTENT_BOTTOM_LEFT,\n FORM_NAME_CONTENT_BOTTOM_RIGHT,\n FORM_NAME_CONTENT_MIDDLE_BOTTOM,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_MIDDLE_TOP,\n FORM_NAME_ICON_BOTTOM_LEFT,\n FORM_NAME_ICON_BOTTOM_RIGHT,\n FORM_NAME_ICON_COLOR_BOTTOM_LEFT,\n FORM_NAME_ICON_COLOR_BOTTOM_RIGHT,\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n FORM_NAME_ICON_MIDDLE_BOTTOM,\n FORM_NAME_ICON_MIDDLE_TOP,\n FORM_NAME_ID_PRODUCT,\n FORM_NAME_PAYMENT_OR_MEDIA,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\nimport { PaymentOrMediaDto } from '../../configs/medias/image/payment-or-media.dto';\n\nexport class ProductZoomCompleteSliderDto extends ParentBlockDto {\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.13';\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.14';\n [FORM_NAME_CONTENT_MIDDLE_BOTTOM] = 'wb.dto.CONTENT.15';\n [FORM_NAME_CONTENT_MIDDLE_TOP] = 'wb.dto.CONTENT.16';\n [FORM_NAME_ICON_MIDDLE_TOP] = new FontOrMediaDto('far fa-stopwatch');\n [FORM_NAME_ICON_COLOR_MIDDLE_TOP] = '#e25657';\n [FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM] = '#e25657';\n [FORM_NAME_ICON_MIDDLE_BOTTOM] = new FontOrMediaDto('fas fa-bolt');\n [FORM_NAME_ICON_BOTTOM_LEFT] = new FontOrMediaDto('fas fa-tshirt');\n [FORM_NAME_ICON_BOTTOM_RIGHT] = new FontOrMediaDto('fas fa-tshirt');\n [FORM_NAME_PAYMENT_OR_MEDIA] = new PaymentOrMediaDto('//img.wizishop.com/a/site/cards/CB-Visa-MCard.svg');\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.16';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.17';\n [FORM_NAME_CONTENT_BOTTOM_LEFT] = 'wb.dto.CONTENT.17';\n [FORM_NAME_CONTENT_BOTTOM_RIGHT] = 'wb.dto.CONTENT.17';\n [FORM_NAME_ICON_COLOR_BOTTOM_RIGHT] = '#444444';\n [FORM_NAME_ICON_COLOR_BOTTOM_LEFT] = '#444444';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR_BOTTOM_LEFT,\n FORM_NAME_ICON_COLOR_BOTTOM_RIGHT,\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ProductZoomCompleteSliderDto } from '../../../dtos/blocks/product/product-zoom-complete-slider.dto';\n\nexport const TYPE_PRODUCT_ZOOM_COMPLETE_SLIDER = 'product-zoom-complete-slider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomCompleteSliderService {\n private _text = 'wb.blocks.product-zoom-complete-slider.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_COMPLETE_SLIDER;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_COMPLETE_SLIDER;\n }\n\n image() {\n return ':lang/ZoomProduct_Arguments.png';\n }\n\n getForm(content: ProductZoomCompleteSliderDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentMiddleTopDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n 'wb.blocks.FormContentDto.31',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_TOP],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleTopDto);\n\n const colorContentMiddleBottomDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n 'wb.blocks.FormContentDto.32',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM],\n '#122231',\n ''\n );\n formsDto.forms.push(colorContentMiddleBottomDto);\n\n const colorContentBottomLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_BOTTOM_LEFT,\n 'wb.blocks.FormContentDto.33',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_BOTTOM_LEFT],\n '#444444',\n ''\n );\n formsDto.forms.push(colorContentBottomLeftDto);\n\n const colorContentBottomRightDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR_BOTTOM_RIGHT,\n 'wb.blocks.FormContentDto.34',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR_BOTTOM_RIGHT],\n '#444444',\n ''\n );\n formsDto.forms.push(colorContentBottomRightDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductZoomCompleteSliderDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_CONTENT,\n FORM_NAME_CONTENT_MIDDLE_BOTTOM,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_MIDDLE_TOP,\n FORM_NAME_ID_PRODUCT,\n FORM_NAME_PAYMENT_OR_MEDIA,\n} from '../../forms/forms.dto';\nimport { PaymentOrMediaDto } from '../../configs/medias/image/payment-or-media.dto';\n\nexport class ProductZoomSimpleDto extends ParentBlockDto {\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.13';\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.14';\n [FORM_NAME_CONTENT_MIDDLE_BOTTOM] = 'wb.dto.CONTENT.15';\n [FORM_NAME_CONTENT_MIDDLE_TOP] = 'wb.dto.CONTENT.16';\n [FORM_NAME_PAYMENT_OR_MEDIA] = new PaymentOrMediaDto('//img.wizishop.com/a/site/cards/CB-Visa-MCard.svg');\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.18';\n [FORM_NAME_ID_PRODUCT] = '';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { ProductZoomSimpleDto } from '../../../dtos/blocks/product/product-zoom-simple.dto';\n\nexport const TYPE_PRODUCT_ZOOM_SIMPLE = 'product-zoom-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomSimpleService {\n private _text = 'wb.blocks.product-zoom-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_SIMPLE;\n }\n\n image() {\n return ':lang/ZoomProduct_Clean.png';\n }\n\n getForm(content: ProductZoomSimpleDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new ProductZoomSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class AmplifyProductZoomDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.1';\n [FORM_NAME_ID_PRODUCT] = '';\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductZoomDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom.dto';\n\nexport const TYPE_AMPLIFY_PRODUCT_ZOOM = 'amplify-product-zoom';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductZoomService {\n private _text = 'wb.blocks.amplify-product-zoom.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCT_ZOOM;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCT_ZOOM;\n }\n\n image() {\n return ':lang/ZoomProduct_Classic.png';\n }\n\n getForm(content: AmplifyProductZoomDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new AmplifyProductZoomDto(this.type());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductZoomDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom.dto';\n\nexport const TYPE_AMPLIFY_PRODUCT_ZOOM_MORE = 'amplify-product-zoom-more';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductZoomMoreService {\n private _text = 'wb.blocks.amplify-product-zoom-more.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCT_ZOOM_MORE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCT_ZOOM_MORE;\n }\n\n image() {\n return ':lang/ZoomProduct_3img.png';\n }\n\n getForm(content: AmplifyProductZoomDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new AmplifyProductZoomDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class AmplifyProductZoomSelectedDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.2';\n [FORM_NAME_ID_PRODUCT] = '';\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n}\n","import { Injectable } from '@angular/core';\nimport { FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductZoomSelectedDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom-selected.dto';\n\nexport const TYPE_AMPLIFY_PRODUCT_ZOOM_SELECTED = 'amplify-product-zoom-selected';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductZoomSelectedService {\n private _text = 'wb.blocks.amplify-product-zoom-selected.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCT_ZOOM_SELECTED;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCT_ZOOM_SELECTED;\n }\n\n image() {\n return ':lang/ZoomProduct_ImgCenter.png';\n }\n\n getForm(content: AmplifyProductZoomSelectedDto = this.getConfig()) {\n return new FormsDto(content);\n }\n\n getConfig() {\n return new AmplifyProductZoomSelectedDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_AMPLIFY_CATEGORY,\n FORM_NAME_AMPLIFY_NBLIGNE,\n FORM_NAME_AMPLIFY_TYPE,\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class AmplifyProductsListClassicDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_AMPLIFY_CATEGORY] = '';\n\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_AMPLIFY_NBLIGNE, FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductsListClassicDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-classic.dto';\n\nexport const TYPE_AMPLIFY_PRODUCTS_LIST_CLASSIC = 'amplify-products-list-classic';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductsListClassicService {\n private _text = 'wb.blocks.amplify-products-list-classic.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCTS_LIST_CLASSIC;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCTS_LIST_CLASSIC;\n }\n\n image() {\n return ':lang/ListProd_Classic.png';\n }\n\n getForm(content: AmplifyProductsListClassicDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new AmplifyProductsListClassicDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_AMPLIFY_CATEGORY,\n FORM_NAME_AMPLIFY_TYPE,\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class AmplifyProductsListSelectedDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_AMPLIFY_CATEGORY] = '';\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductsListSelectedDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-selected.dto';\n\nexport const TYPE_AMPLIFY_PRODUCTS_LIST_SELECTED = 'amplify-products-list-selected';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductsListSelectedService {\n private _text = 'wb.blocks.amplify-products-list-selected.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCTS_LIST_SELECTED;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCTS_LIST_SELECTED;\n }\n\n image() {\n return 'ListProd_MiseEnAvant.png';\n }\n\n getForm(content: AmplifyProductsListSelectedDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new AmplifyProductsListSelectedDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_AMPLIFY_CATEGORY,\n FORM_NAME_AMPLIFY_TYPE,\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_NBLIGNE,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class AmplifyProductsListSimpleDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.1';\n\n [FORM_NAME_AMPLIFY_CATEGORY] = '';\n\n [FORM_NAME_SHOW_TITLE] = true;\n\n [FORM_NAME_LIST_PRODUCT] = [];\n\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n\n [FORM_NAME_NBLIGNE] = '1';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_NBLIGNE, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductsListSimpleDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-simple.dto';\n\nexport const TYPE_AMPLIFY_PRODUCTS_LIST_SIMPLE = 'amplify-products-list-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductsListSimpleService {\n private _text = 'wb.blocks.amplify-products-list-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCTS_LIST_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCTS_LIST_SIMPLE;\n }\n\n image() {\n return ':lang/ListProd_ClearTexteHover.png';\n }\n\n getForm(content: AmplifyProductsListSimpleDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const nbLigneContentDto = new FormsContentDto(\n FORM_NAME_NBLIGNE,\n 'wb.blocks.FormContentDto.3',\n FORM_TYPE_TAG,\n content[FORM_NAME_NBLIGNE],\n 'wb.blocks.FormContentDto.4',\n '',\n ['wb.blocks.FormContentDto.104', 'wb.blocks.FormContentDto.105', 'wb.blocks.FormContentDto.106'],\n ['1', '2', '3']\n );\n formsDto.forms.push(nbLigneContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new AmplifyProductsListSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT } from '../../forms/forms.dto';\n\nexport class ProductZoomTripleColumnDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.1';\n [FORM_NAME_ID_PRODUCT] = '';\n [FORM_NAME_COLOR] = '#dddddd';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_TEXT,\n FORM_NAME_TITLE,\n FORM_TYPE_COLOR,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { ProductZoomTripleColumnDto } from '../../../dtos/blocks/product/product-zoom-triple-column.dto';\nimport { TextsDoubleBackgroundDto } from '../../../dtos/blocks/texts/texts-double-background.dto';\n\nexport const TYPE_PRODUCT_ZOOM_TRIPLE_COLUMN = 'product-zoom-triple-column';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductZoomTripleColumnService {\n private _text = 'wb.blocks.product-zoom-triple-column.text';\n\n static selector() {\n return 'wb-' + TYPE_PRODUCT_ZOOM_TRIPLE_COLUMN;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCT_ZOOM_TRIPLE_COLUMN;\n }\n\n image() {\n return ':lang/ZoomProduct_Triple.png';\n }\n\n getForm(content: ProductZoomTripleColumnDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.1',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#dddddd',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new ProductZoomTripleColumnDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_AMPLIFY_TYPE, FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_ID_PRODUCT, FORM_NAME_TEXT } from '../../forms/forms.dto';\n\nexport class AmplifyProductZoomTripleColumnDto extends ParentBlockDto {\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.1';\n [FORM_NAME_ID_PRODUCT] = '';\n [FORM_NAME_COLOR] = '#dddddd';\n [FORM_NAME_TEXT] = 'wb.dto.TEXT.1';\n [FORM_NAME_AMPLIFY_TYPE] = 'amplify';\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_COLOR, FORM_NAME_TEXT, FORM_TYPE_COLOR, FORM_TYPE_TEXT, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { AmplifyProductZoomTripleColumnDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom-triple-column.dto';\n\nexport const TYPE_AMPLIFY_PRODUCT_ZOOM_TRIPLE_COLUMN = 'amplify-product-zoom-triple-column';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductZoomTripleColumnService {\n private _text = 'wb.blocks.amplify-product-zoom-triple-column.text';\n\n static selector() {\n return 'wb-' + TYPE_AMPLIFY_PRODUCT_ZOOM_TRIPLE_COLUMN;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCT_ZOOM_TRIPLE_COLUMN;\n }\n\n image() {\n return 'ZoomProduct_Triple.png';\n }\n\n getForm(content: AmplifyProductZoomTripleColumnDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.1',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#dddddd',\n ''\n );\n formsDto.forms.push(colorContentDto);\n\n const inputTextDto = new FormsContentDto(\n FORM_NAME_TEXT,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TEXT],\n 'wb.blocks.FormContentDto.2',\n ''\n );\n formsDto.forms.push(inputTextDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new AmplifyProductZoomTripleColumnDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\n\nexport class TextsQuadrupleNumbersDto extends ParentBlockDto {\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.29';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.30';\n\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.29';\n\n [FORM_NAME_CONTENT_LEFT] = 'wb.dto.CONTENT.30';\n\n [FORM_NAME_TITLE_MIDDLE_LEFT] = 'wb.dto.TITLE.29';\n\n [FORM_NAME_CONTENT_MIDDLE_LEFT] = 'wb.dto.CONTENT.30';\n\n [FORM_NAME_TITLE_MIDDLE_RIGHT] = 'wb.dto.TITLE.29';\n\n [FORM_NAME_CONTENT_MIDDLE_RIGHT] = 'wb.dto.CONTENT.30';\n\n [FORM_NAME_CONTENT_RIGHT] = 'wb.dto.CONTENT.30';\n\n [FORM_NAME_ALIGN_BUTTON] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n FORM_TYPE_NUMBER,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextsQuadrupleNumbersDto } from '../../../dtos/blocks/texts/texts-quadruple-numbers.dto';\n\nexport const TYPE_TEXTS_QUADRUPLE_NUMBERS = 'texts-quadruple-numbers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsQuadrupleNumbersService {\n private _text = 'wb.blocks.texts-quadruple-numbers.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXTS_QUADRUPLE_NUMBERS;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS_QUADRUPLE_NUMBERS;\n }\n\n image() {\n return 'Text_4Numbers.svg';\n }\n\n getForm(content: TextsQuadrupleNumbersDto = this.getConfig()) {\n const formsDto = new FormsDto(content);\n\n const inputOneTextDto = new FormsContentDto(\n FORM_NAME_TITLE_LEFT,\n 'wb.blocks.FormContentDto.74',\n FORM_TYPE_NUMBER,\n content[FORM_NAME_TITLE_LEFT],\n 'wb.blocks.FormContentDto.75',\n ''\n );\n formsDto.forms.push(inputOneTextDto);\n\n const inputTwoTextDto = new FormsContentDto(\n FORM_NAME_TITLE_MIDDLE_LEFT,\n 'wb.blocks.FormContentDto.76',\n FORM_TYPE_NUMBER,\n content[FORM_NAME_TITLE_MIDDLE_LEFT],\n 'wb.blocks.FormContentDto.75',\n ''\n );\n formsDto.forms.push(inputTwoTextDto);\n\n const inputThreeTextDto = new FormsContentDto(\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n 'wb.blocks.FormContentDto.77',\n FORM_TYPE_NUMBER,\n content[FORM_NAME_TITLE_MIDDLE_RIGHT],\n 'wb.blocks.FormContentDto.75',\n ''\n );\n formsDto.forms.push(inputThreeTextDto);\n\n const inputFourTextDto = new FormsContentDto(\n FORM_NAME_TITLE_RIGHT,\n 'wb.blocks.FormContentDto.78',\n FORM_TYPE_NUMBER,\n content[FORM_NAME_TITLE_RIGHT],\n 'wb.blocks.FormContentDto.75',\n ''\n );\n formsDto.forms.push(inputFourTextDto);\n\n return formsDto;\n }\n\n getConfig() {\n return new TextsQuadrupleNumbersDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { AboutElementDto } from '../../configs/witness/about-element.dto';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_ELEMENTS,\n FORM_NAME_INIT,\n FORM_NAME_TITLE,\n FORM_NAME_UNDERLINE_COLOR,\n} from '../../forms/forms.dto';\n\nexport class AboutBlockDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.34';\n [FORM_NAME_BACKGROUND_COLOR] = '#F6F6F6';\n [FORM_NAME_UNDERLINE_COLOR] = '#DDDDDD';\n [FORM_NAME_ELEMENTS]: AboutElementDto[] = [];\n [FORM_NAME_INIT] = true;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_UNDERLINE_COLOR,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { AboutBlockDto } from '../../../dtos/blocks/witness/about-block.dto';\n\nexport const TYPE_ABOUT_BLOCK = 'about-block';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AboutBlockService {\n private _text = 'wb.blocks.about-block.text';\n\n static selector() {\n return 'wb-' + TYPE_ABOUT_BLOCK;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_ABOUT_BLOCK;\n }\n\n image() {\n return 'Temoignages_APropos.png';\n }\n\n getForm(content: AboutBlockDto = this.getConfig()) {\n const aboutFormDto = new FormsDto(content);\n\n const backgroundColorContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.87',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#F6F6F6',\n ''\n );\n aboutFormDto.forms.push(backgroundColorContentDto);\n\n const underlineColorContentDto = new FormsContentDto(\n FORM_NAME_UNDERLINE_COLOR,\n 'wb.blocks.FormContentDto.88',\n FORM_TYPE_COLOR,\n content[FORM_NAME_UNDERLINE_COLOR],\n '#DDDDDD',\n ''\n );\n aboutFormDto.forms.push(underlineColorContentDto);\n\n return aboutFormDto;\n }\n\n getConfig(): AboutBlockDto {\n return new AboutBlockDto(this.type());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ImagesSimpleDto } from '../../../dtos/blocks/images/images-simple.dto';\nimport {\n FORM_NAME_PARALLAX,\n FORM_TYPE_CHECKBOX,\n FormsContentDto,\n FormsDto,\n FORM_NAME_PARALLAX_INVERTED,\n FORM_NAME_PARALLAX_SPEED,\n FORM_TYPE_TAG,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_IMAGES_BANNER = 'images-banner';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesBannerService {\n private _text = 'wb.blocks.images-banner.text';\n\n static selector() {\n return 'wb-' + TYPE_IMAGES_BANNER;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_BANNER;\n }\n\n image() {\n return 'Image_banner.png';\n }\n\n getForm(content: ImagesSimpleDto = this.getConfig()) {\n const imgBannerFormDto = new FormsDto(content);\n\n if (typeof content[FORM_NAME_PARALLAX_SPEED] === typeof undefined) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n } else {\n if (\n content[FORM_NAME_PARALLAX_SPEED] !== '0' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.25' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '0.5' &&\n content[FORM_NAME_PARALLAX_SPEED] !== '1'\n ) {\n content[FORM_NAME_PARALLAX_SPEED] = '0';\n }\n }\n\n const parallaxSpeedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_SPEED,\n 'wb.blocks.FormContentDto.113',\n FORM_TYPE_TAG,\n content[FORM_NAME_PARALLAX_SPEED],\n '',\n 'wb.forms.FormsContentDto.14',\n [\n 'wb.blocks.FormContentDto.101',\n 'wb.blocks.FormContentDto.115',\n 'wb.blocks.FormContentDto.116',\n 'wb.blocks.FormContentDto.117',\n ],\n ['0', '0.25', '0.5', '1']\n );\n imgBannerFormDto.forms.push(parallaxSpeedImgSimpleContentDto);\n\n const parallaxInvertedImgSimpleContentDto = new FormsContentDto(\n FORM_NAME_PARALLAX_INVERTED,\n 'wb.blocks.FormContentDto.114',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_PARALLAX_INVERTED],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.28'\n );\n imgBannerFormDto.forms.push(parallaxInvertedImgSimpleContentDto);\n\n return imgBannerFormDto;\n }\n\n getConfig() {\n return new ImagesSimpleDto(this.type());\n }\n}\n","import { FORM_NAME_CONTENT, FORM_NAME_ICON, FORM_NAME_OPEN, FORM_NAME_TITLE } from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\n\nexport class FaqDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.2';\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.6';\n [FORM_NAME_OPEN] = true;\n [FORM_NAME_ICON] = new FontOrMediaDto('far fa-question-circle');\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FaqDto } from './faq.dto';\nimport { FORM_NAME_ACCORDION, FORM_NAME_BORDER_COLOR, FORM_NAME_COLOR, FORM_NAME_FAQ } from '../../forms/forms.dto';\n\nexport class FaqSimpleDto extends ParentBlockDto {\n [FORM_NAME_FAQ]: Array<FaqDto> = [new FaqDto()];\n [FORM_NAME_COLOR] = '#e95656';\n [FORM_NAME_BORDER_COLOR] = '#dce0e3';\n [FORM_NAME_ACCORDION] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FaqSimpleDto } from '../../../dtos/blocks/faq/faq-simple.dto';\n\nexport const TYPE_FAQ_SIMPLE = 'faq-simple';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqSimpleService {\n private _text = 'wb.blocks.faq-simple.text';\n\n static selector() {\n return 'wb-' + TYPE_FAQ_SIMPLE;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_FAQ_SIMPLE;\n }\n\n image() {\n return 'Faq_Simple.svg';\n }\n\n getForm(content: FaqSimpleDto = this.getConfig()) {\n const faqSimpleFormDto = new FormsDto(content);\n const arrowColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.5',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n\n const borderColorContentDto = new FormsContentDto(\n FORM_NAME_BORDER_COLOR,\n 'wb.blocks.FormContentDto.8',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BORDER_COLOR],\n '',\n ''\n );\n\n const accordionContentDto = new FormsContentDto(\n FORM_NAME_ACCORDION,\n 'wb.blocks.FormContentDto.9',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ACCORDION],\n '',\n 'wb.blocks.FormContentDto.10',\n [],\n [],\n [true, false],\n true\n );\n\n faqSimpleFormDto.forms.push(arrowColorContentDto);\n faqSimpleFormDto.forms.push(borderColorContentDto);\n faqSimpleFormDto.forms.push(accordionContentDto);\n\n return faqSimpleFormDto;\n }\n\n getConfig() {\n return new FaqSimpleDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_FAQ\n} from '../../forms/forms.dto';\nimport { FaqDto } from './faq.dto';\n\nexport class FaqSimpleBackgroundDto extends ParentBlockDto {\n [FORM_NAME_FAQ]: Array<FaqDto> = [new FaqDto()];\n [FORM_NAME_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#f7f7f7';\n [FORM_NAME_BORDER_COLOR] = '#dce0e3';\n [FORM_NAME_ACCORDION] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FaqSimpleBackgroundDto } from '../../../dtos/blocks/faq/faq-simple-background.dto';\n\nexport const TYPE_FAQ_SIMPLE_BACKGROUND = 'faq-simple-background';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqSimpleBackgroundService {\n private _text = 'wb.blocks.faq-simple-background.text';\n\n static selector() {\n return 'wb-' + TYPE_FAQ_SIMPLE_BACKGROUND;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_FAQ_SIMPLE_BACKGROUND;\n }\n\n image() {\n return 'Faq_SimpleBackground.svg';\n }\n\n getForm(content: FaqSimpleBackgroundDto = this.getConfig()) {\n const faqSimpleBackgroundFormDto = new FormsDto(content);\n\n // Arrows color\n const arrowColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.5',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n\n // Border Color\n const borderColorContentDto = new FormsContentDto(\n FORM_NAME_BORDER_COLOR,\n 'wb.blocks.FormContentDto.8',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BORDER_COLOR],\n '',\n ''\n );\n\n // Background color\n const backgroundColorContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '',\n ''\n );\n\n const accordionContentDto = new FormsContentDto(\n FORM_NAME_ACCORDION,\n 'wb.blocks.FormContentDto.9',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ACCORDION],\n '',\n 'wb.blocks.FormContentDto.10',\n [],\n [],\n [true, false],\n true\n );\n\n faqSimpleBackgroundFormDto.forms.push(arrowColorContentDto);\n faqSimpleBackgroundFormDto.forms.push(borderColorContentDto);\n faqSimpleBackgroundFormDto.forms.push(backgroundColorContentDto);\n faqSimpleBackgroundFormDto.forms.push(accordionContentDto);\n\n return faqSimpleBackgroundFormDto;\n }\n\n getConfig() {\n return new FaqSimpleBackgroundDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FORM_NAME_FULLPAGE, FORM_NAME_TEXT_BACKGROUND, FORM_NAME_TEXT_BACKGROUND_LINK, FORM_NAME_CONTENT } from '../../forms/forms.dto';\nimport { ImageMediaAndTextDto } from '../../configs/medias/image/image-media-and-text.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class TextBackgroundsLinkDto extends ParentBlockDto {\n [FORM_NAME_TEXT_BACKGROUND_LINK]: ImageMediaAndTextDto[] = [];\n [FORM_NAME_TEXT_BACKGROUND]: ImageMediaDto;\n\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.29';\n [FORM_NAME_FULLPAGE] = true;\n}\n","import { Injectable } from '@angular/core';\nimport { FORM_NAME_IMG_MASK, FORM_TYPE_CHECKBOX, FORM_TYPE_TAG, FormsContentDto, FormsDto } from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsLinkDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-link.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_LINK = 'images-texts-link';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsLinkService {\n private _text = 'wb.blocks.text-backgrounds-link.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_LINK;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_LINK;\n }\n\n image() {\n return ':lang/TxtImgFond_Size.png';\n }\n\n getForm(content: TextBackgroundsLinkDto = this.getConfig()) {\n const ImgImagesTextsLinkFormDto = new FormsDto(content);\n\n return ImgImagesTextsLinkFormDto;\n }\n\n getConfig() {\n return new TextBackgroundsLinkDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FaqDto } from './faq.dto';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_FAQ,\n FORM_NAME_SHADOW_COLOR\n} from '../../forms/forms.dto';\n\nexport class FaqFrameDto extends ParentBlockDto {\n [FORM_NAME_FAQ]: Array<FaqDto> = [new FaqDto()];\n [FORM_NAME_COLOR] = '#e95656';\n [FORM_NAME_BORDER_COLOR] = '#dce0e3';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_SHADOW_COLOR] = '#ffd4d4';\n [FORM_NAME_ACCORDION] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_SHADOW_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FaqFrameDto } from '../../../dtos/blocks/faq/faq-frame.dto';\n\nexport const TYPE_FAQ_FRAME = 'faq-frame';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqFrameService {\n private _text = 'wb.blocks.faq-frame.text';\n\n static selector() {\n return 'wb-' + TYPE_FAQ_FRAME;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_FAQ_FRAME;\n }\n\n image() {\n return 'Faq_Frame.svg';\n }\n\n getForm(content: FaqFrameDto = this.getConfig()) {\n const faqFrameFormDto = new FormsDto(content);\n\n const arrowColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.5',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n\n const borderColorContentDto = new FormsContentDto(\n FORM_NAME_BORDER_COLOR,\n 'wb.blocks.FormContentDto.8',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BORDER_COLOR],\n '',\n ''\n );\n\n const backgroundContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '',\n ''\n );\n\n const shadowContentDto = new FormsContentDto(\n FORM_NAME_SHADOW_COLOR,\n 'wb.blocks.FormContentDto.12',\n FORM_TYPE_COLOR,\n content[FORM_NAME_SHADOW_COLOR],\n '',\n ''\n );\n\n const accordionContentDto = new FormsContentDto(\n FORM_NAME_ACCORDION,\n 'wb.blocks.FormContentDto.9',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ACCORDION],\n '',\n 'wb.blocks.FormContentDto.10',\n [],\n [],\n [true, false],\n true\n );\n\n faqFrameFormDto.forms.push(arrowColorContentDto);\n faqFrameFormDto.forms.push(borderColorContentDto);\n faqFrameFormDto.forms.push(backgroundContentDto);\n faqFrameFormDto.forms.push(shadowContentDto);\n faqFrameFormDto.forms.push(accordionContentDto);\n\n return faqFrameFormDto;\n }\n\n getConfig() {\n return new FaqFrameDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FaqDto } from './faq.dto';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BACKGROUND_COLOR_SECONDARY,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_NAME_FAQ\n} from '../../forms/forms.dto';\n\nexport class FaqAccordionDto extends ParentBlockDto {\n [FORM_NAME_FAQ]: Array<FaqDto> = [new FaqDto()];\n [FORM_NAME_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#fafafa';\n [FORM_NAME_BACKGROUND_COLOR_SECONDARY] = '#ffffff';\n [FORM_NAME_BORDER_COLOR] = '#dce0e3';\n [FORM_NAME_ACCORDION] = true;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ACCORDION,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BACKGROUND_COLOR_SECONDARY,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_COLOR,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FaqAccordionDto } from '../../../dtos/blocks/faq/faq-accordion.dto';\n\nexport const TYPE_FAQ_ACCORDION = 'faq-accordion';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqAccordionService {\n private _text = 'wb.blocks.faq-accordion.text';\n\n static selector() {\n return 'wb-' + TYPE_FAQ_ACCORDION;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_FAQ_ACCORDION;\n }\n\n image() {\n return 'Faq_Accordion.png';\n }\n\n getForm(content: FaqAccordionDto = this.getConfig()) {\n const faqAccordionFormDto = new FormsDto(content);\n\n const arrowColorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.5',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '',\n ''\n );\n\n const backgroundQuestionContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.6',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '',\n ''\n );\n\n const backgroundAnswerContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR_SECONDARY,\n 'wb.blocks.FormContentDto.7',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR_SECONDARY],\n '',\n ''\n );\n\n const shadowContentDto = new FormsContentDto(\n FORM_NAME_BORDER_COLOR,\n 'wb.blocks.FormContentDto.8',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BORDER_COLOR],\n '',\n ''\n );\n\n const accordionContentDto = new FormsContentDto(\n FORM_NAME_ACCORDION,\n 'wb.blocks.FormContentDto.9',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_ACCORDION],\n '',\n 'wb.blocks.FormContentDto.10',\n [],\n [],\n [true, false],\n true\n );\n\n faqAccordionFormDto.forms.push(arrowColorContentDto);\n faqAccordionFormDto.forms.push(backgroundQuestionContentDto);\n faqAccordionFormDto.forms.push(backgroundAnswerContentDto);\n faqAccordionFormDto.forms.push(shadowContentDto);\n faqAccordionFormDto.forms.push(accordionContentDto);\n\n return faqAccordionFormDto;\n }\n\n getConfig() {\n return new FaqAccordionDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { FaqDto } from './faq.dto';\nimport { FORM_NAME_BACKGROUND_COLOR, FORM_NAME_FAQ, FORM_NAME_ICON_COLOR } from '../../forms/forms.dto';\n\nexport class FaqListIconDto extends ParentBlockDto {\n [FORM_NAME_FAQ]: Array<FaqDto> = [new FaqDto()];\n [FORM_NAME_ICON_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_ICON_COLOR,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FaqListIconDto } from '../../../dtos/blocks/faq/faq-list-icon.dto';\n\nexport const TYPE_FAQ_LIST_ICON = 'faq-list-icon';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqListIconService {\n private _text = 'wb.blocks.faq-list-icon.text';\n\n static selector() {\n return 'wb-' + TYPE_FAQ_LIST_ICON;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_FAQ_LIST_ICON;\n }\n\n image() {\n return 'Faq_ListIcon.svg';\n }\n\n getForm(content: FaqListIconDto = this.getConfig()) {\n const faqListIconFormDto = new FormsDto(content);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR,\n 'wb.blocks.FormContentDto.13',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR],\n '#122231',\n ''\n );\n\n const backgroundContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '',\n ''\n );\n\n faqListIconFormDto.forms.push(colorContentLeftDto);\n faqListIconFormDto.forms.push(backgroundContentDto);\n\n return faqListIconFormDto;\n }\n\n getConfig() {\n return new FaqListIconDto(this.type());\n }\n}\n","import { MediaDto } from '../media.dto';\nimport { FORM_NAME_TITLE, FORM_NAME_URL, FORM_NAME_URL_TARGET } from '../../../forms/forms.dto';\n\nexport class ImageMediaDto extends MediaDto {\n [FORM_NAME_URL_TARGET] = '_self';\n [FORM_NAME_TITLE] = '';\n [FORM_NAME_URL] = '';\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_ICON_COLOR,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMG_MASK,\n FORM_NAME_INIT,\n FORM_NAME_TEXT_LEFT,\n FORM_NAME_TEXT_RIGHT,\n FORM_NAME_TITLE,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_RIGHT,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class TwoImagesTitleTextDto extends ParentBlockDto {\n [FORM_NAME_IMG_MASK] = 'small';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMAGE_LEFT] = new ImageMediaDto();\n [FORM_NAME_IMAGE_RIGHT] = new ImageMediaDto();\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.41';\n [FORM_NAME_TITLE_LEFT] = 'wb.dto.TITLE.42';\n [FORM_NAME_TITLE_RIGHT] = 'wb.dto.TITLE.42';\n [FORM_NAME_TEXT_LEFT] = 'wb.dto.TEXT.3';\n [FORM_NAME_TEXT_RIGHT] = 'wb.dto.TEXT.3';\n [FORM_NAME_ICON_COLOR] = '#e95656';\n [FORM_NAME_INIT] = false;\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n FORM_TYPE_COLOR,\n FORM_NAME_ICON_COLOR,\n} from '../../../dtos/forms/forms.dto';\nimport { TwoImagesTitleTextDto } from '../../../dtos/blocks/images/two-images-title-text.dto';\n\nexport const TYPE_TWO_IMAGES_TITLE_TEXT = 'images-two-title-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TwoImagesTitleTextService {\n private _text = 'wb.blocks.images.twoTitleText';\n\n static selector() {\n return 'wb-' + TYPE_TWO_IMAGES_TITLE_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TWO_IMAGES_TITLE_TEXT;\n }\n\n image() {\n return 'Image_2Img-TextBottom.svg';\n }\n\n getForm(content: TwoImagesTitleTextDto = this.getConfig()) {\n const TwoImagesTitleTextFormDto = new FormsDto(content);\n\n const maskTwoImagesTitleTextContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'Taille',\n '',\n ['Petit', 'Moyen', 'Grand'],\n ['small', 'medium', 'large']\n );\n TwoImagesTitleTextFormDto.forms.push(maskTwoImagesTitleTextContentDto);\n\n const fullpageTwoImagesTitleTextContentDto = new FormsContentDto(\n FORM_NAME_FULLPAGE,\n 'wb.blocks.FormContentDto.16',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_FULLPAGE],\n '',\n '',\n [],\n [],\n [true, false]\n );\n TwoImagesTitleTextFormDto.forms.push(fullpageTwoImagesTitleTextContentDto);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR,\n 'wb.blocks.FormContentDto.111',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR],\n '#122231',\n ''\n );\n TwoImagesTitleTextFormDto.forms.push(colorContentLeftDto);\n\n return TwoImagesTitleTextFormDto;\n }\n\n getConfig() {\n return new TwoImagesTitleTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_EXTERNAL,\n FORM_NAME_PADDING,\n FORM_NAME_PLACEHOLDER,\n FORM_NAME_TITLE,\n} from '../../forms/forms.dto';\n\nexport class FormsOnboardingDto extends ParentBlockDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.38';\n [FORM_NAME_PADDING] = 40;\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_EXTERNAL] = false;\n [FORM_NAME_BUTTON_TEXT] = 'wb.dto.BUTTON.15';\n [FORM_NAME_PLACEHOLDER] = 'enter.your.email.address';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_EXTERNAL,\n FORM_NAME_PADDING,\n FORM_NAME_PLACEHOLDER,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_COLOR,\n FORM_TYPE_NUMBER,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { FormsOnboardingDto } from '../../../dtos/blocks/onboarding/forms-onboarding.do';\n\nexport const TYPE_FORMS_ONBOARDING = 'forms-onboarding';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsOnboardingService {\n private _text = 'wb.blocks.forms-onboarding.text';\n\n static selector() {\n return 'wb-' + TYPE_FORMS_ONBOARDING;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS_ONBOARDING;\n }\n\n image() {\n return 'Formulaire_Onboarding.png';\n }\n\n getForm(content: FormsOnboardingDto = this.getConfig()) {\n const formsOnboardingFormDto = new FormsDto(content);\n\n const inputOneTextDto = new FormsContentDto(\n FORM_NAME_PADDING,\n 'wb.blocks.FormContentDto.102',\n FORM_TYPE_NUMBER,\n content[FORM_NAME_PADDING],\n '20px',\n ''\n );\n formsOnboardingFormDto.forms.push(inputOneTextDto);\n\n const inputTwoTextDto = new FormsContentDto(\n FORM_NAME_BUTTON_TEXT,\n 'wb.blocks.FormContentDto.2',\n FORM_TYPE_TEXT,\n content[FORM_NAME_BUTTON_TEXT],\n '',\n ''\n );\n formsOnboardingFormDto.forms.push(inputTwoTextDto);\n\n const placeholderDto = new FormsContentDto(\n FORM_NAME_PLACEHOLDER,\n 'block-page-edit-seo-meta-title-placeholder',\n FORM_TYPE_TEXT,\n content[FORM_NAME_PLACEHOLDER],\n '',\n ''\n );\n formsOnboardingFormDto.forms.push(placeholderDto);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_BACKGROUND_COLOR,\n 'wb.blocks.FormContentDto.11',\n FORM_TYPE_COLOR,\n content[FORM_NAME_BACKGROUND_COLOR],\n '#122231',\n ''\n );\n formsOnboardingFormDto.forms.push(colorContentDto);\n\n const externalContentDto = new FormsContentDto(\n FORM_NAME_EXTERNAL,\n 'wb.blocks.FormContentDto.103',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_EXTERNAL],\n '',\n ''\n );\n formsOnboardingFormDto.forms.push(externalContentDto);\n\n return formsOnboardingFormDto;\n }\n\n getConfig() {\n return new FormsOnboardingDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { TextBackgroundsRowsIconTextDto } from './text-backgrounds-rows-icon-text.dto';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_INIT,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_FAQ,\n FORM_NAME_ICON_COLOR,\n} from '../../forms/forms.dto';\n\nexport class TextBackgroundsThreeRowsIconTextDto extends ParentBlockDto {\n [FORM_NAME_INIT] = false;\n [FORM_NAME_ITEM_NUMBER] = 3;\n [FORM_NAME_LINE_NUMBER] = 0;\n [FORM_NAME_ROWS]: Array<TextBackgroundsRowsIconTextDto> = [];\n [FORM_NAME_ICON_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR,\n FORM_TYPE_COLOR,\n FORM_NAME_IMG_MASK,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsThreeRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_THREE_ROWS_ICON_TEXT = 'text-backgrounds-three-rows-icon-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsThreeRowsIconTextService {\n private _text = 'wb.blocks.text-backgrounds-three-rows-icon-text.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_THREE_ROWS_ICON_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_THREE_ROWS_ICON_TEXT;\n }\n\n image() {\n return 'TxtImgFond_6Img-IconsTxt.png';\n }\n\n getForm(content: TextBackgroundsThreeRowsIconTextDto = this.getConfig()) {\n const textBackgroundsThreeRowsIconTextFormDto = new FormsDto(content);\n\n const maskContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n textBackgroundsThreeRowsIconTextFormDto.forms.push(maskContentDto);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR,\n 'wb.blocks.FormContentDto.13',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR],\n '#122231',\n ''\n );\n textBackgroundsThreeRowsIconTextFormDto.forms.push(colorContentLeftDto);\n\n return textBackgroundsThreeRowsIconTextFormDto;\n }\n\n getConfig() {\n return new TextBackgroundsThreeRowsIconTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { TextBackgroundsRowsIconTextDto } from './text-backgrounds-rows-icon-text.dto';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_INIT,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_FAQ,\n FORM_NAME_ICON_COLOR,\n} from '../../forms/forms.dto';\n\nexport class TextBackgroundsFourRowsIconTextDto extends ParentBlockDto {\n [FORM_NAME_INIT] = false;\n [FORM_NAME_ITEM_NUMBER] = 4;\n [FORM_NAME_LINE_NUMBER] = 0;\n [FORM_NAME_ROWS]: Array<TextBackgroundsRowsIconTextDto> = [];\n [FORM_NAME_ICON_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport {\n FORM_NAME_ICON_COLOR,\n FORM_TYPE_COLOR,\n FormsContentDto,\n FormsDto,\n FORM_NAME_IMG_MASK,\n FORM_TYPE_TAG,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsFourRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_FOUR_ROWS_ICON_TEXT = 'text-backgrounds-four-rows-icon-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsFourRowsIconTextService {\n private _text = 'wb.blocks.text-backgrounds-four-rows-icon-text.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_FOUR_ROWS_ICON_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_FOUR_ROWS_ICON_TEXT;\n }\n\n image() {\n return 'TxtImgFond_4Img-IconsTxt.png';\n }\n\n getForm(content: TextBackgroundsFourRowsIconTextDto = this.getConfig()) {\n const textBackgroundsFourRowsIconTextFormDto = new FormsDto(content);\n\n const maskContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n textBackgroundsFourRowsIconTextFormDto.forms.push(maskContentDto);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR,\n 'wb.blocks.FormContentDto.13',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR],\n '#122231',\n ''\n );\n textBackgroundsFourRowsIconTextFormDto.forms.push(colorContentLeftDto);\n\n return textBackgroundsFourRowsIconTextFormDto;\n }\n\n getConfig() {\n return new TextBackgroundsFourRowsIconTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport { TextBackgroundsRowsIconTextDto } from './text-backgrounds-rows-icon-text.dto';\nimport {\n FORM_NAME_IMG_MASK,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_INIT,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_FAQ,\n FORM_NAME_ICON_COLOR,\n} from '../../forms/forms.dto';\n\nexport class TextBackgroundsTwoRowsIconTextDto extends ParentBlockDto {\n [FORM_NAME_INIT] = false;\n [FORM_NAME_ITEM_NUMBER] = 2;\n [FORM_NAME_LINE_NUMBER] = 0;\n [FORM_NAME_ROWS]: Array<TextBackgroundsRowsIconTextDto> = [];\n [FORM_NAME_ICON_COLOR] = '#e95656';\n [FORM_NAME_BACKGROUND_COLOR] = '#ffffff';\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { TextBackgroundsTwoRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.dto';\nimport {\n FORM_NAME_ICON_COLOR,\n FORM_TYPE_COLOR,\n FORM_NAME_IMG_MASK,\n FORM_TYPE_TAG,\n FormsContentDto,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS_TWO_ROWS_ICON_TEXT = 'text-backgrounds-two-rows-icon-text';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsTwoRowsIconTextService {\n private _text = 'wb.blocks.text-backgrounds-two-rows-icon-text.text';\n\n static selector() {\n return 'wb-' + TYPE_TEXT_BACKGROUNDS_TWO_ROWS_ICON_TEXT;\n }\n\n get text(): string {\n return this._text;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS_TWO_ROWS_ICON_TEXT;\n }\n\n image() {\n return 'TxtImgFond_2Img-IconsTxt.png';\n }\n\n getForm(content: TextBackgroundsTwoRowsIconTextDto = this.getConfig()) {\n const textBackgroundsTwoRowsIconTextFormDto = new FormsDto(content);\n\n const maskContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n textBackgroundsTwoRowsIconTextFormDto.forms.push(maskContentDto);\n\n const colorContentLeftDto = new FormsContentDto(\n FORM_NAME_ICON_COLOR,\n 'wb.blocks.FormContentDto.13',\n FORM_TYPE_COLOR,\n content[FORM_NAME_ICON_COLOR],\n '#122231',\n ''\n );\n textBackgroundsTwoRowsIconTextFormDto.forms.push(colorContentLeftDto);\n\n return textBackgroundsTwoRowsIconTextFormDto;\n }\n\n getConfig() {\n return new TextBackgroundsTwoRowsIconTextDto(this.type());\n }\n}\n","import { ParentBlockDto } from '../parent-block.dto';\nimport {\n FORM_NAME_COLOR,\n FORM_NAME_CONTENT,\n FORM_NAME_DOTS,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_SLIDER,\n FORM_NAME_TIME,\n} from '../../forms/forms.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class SliderWithBannerDto extends ParentBlockDto {\n [FORM_NAME_SLIDER]: ImageMediaDto[] = [];\n [FORM_NAME_TIME] = '4000';\n [FORM_NAME_DOTS] = true;\n [FORM_NAME_CONTENT] = 'wb.dto.CONTENT.37';\n [FORM_NAME_COLOR] = '#74b4c0';\n [FORM_NAME_FULLPAGE] = true;\n [FORM_NAME_IMG_MASK] = 'small';\n}\n","import { Injectable } from '@angular/core';\nimport { SliderWithBannerDto } from '../../../dtos/blocks/sliders/sliders-with-banner.dto';\nimport {\n FORM_NAME_DOTS,\n FORM_NAME_FULLPAGE,\n FORM_NAME_IMG_MASK,\n FORM_NAME_TIME,\n FORM_TYPE_CHECKBOX,\n FORM_TYPE_TAG,\n FORM_TYPE_TEXT,\n FormsContentDto,\n FormsDto,\n FORM_NAME_COLOR,\n FORM_TYPE_COLOR,\n} from '../../../dtos/forms/forms.dto';\n\nexport const TYPE_SLIDERS_WITH_BANNER = 'sliders-with-banner';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersWithBannerService {\n private _text = 'wb.blocks.sliders-with-banner.text';\n\n static selector() {\n return 'wb-' + TYPE_SLIDERS_WITH_BANNER;\n }\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS_WITH_BANNER;\n }\n\n image() {\n return 'Diaporama_FullSizeBanniere.png';\n }\n\n getForm(content: SliderWithBannerDto = this.getConfig()) {\n const sliderWithBannerFormDto = new FormsDto(content);\n\n const timeSliderWithBannerContentDto = new FormsContentDto(\n FORM_NAME_TIME,\n 'wb.blocks.FormContentDto.60',\n FORM_TYPE_TEXT,\n content[FORM_NAME_TIME],\n '100ms',\n ''\n );\n sliderWithBannerFormDto.forms.push(timeSliderWithBannerContentDto);\n\n const dotsSliderWithBannerContentDto = new FormsContentDto(\n FORM_NAME_DOTS,\n 'wb.forms.FormsContentDto.25',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_DOTS],\n '',\n '',\n [],\n [],\n [true, false],\n false,\n 'wb.forms.FormsContentDto.26'\n );\n sliderWithBannerFormDto.forms.push(dotsSliderWithBannerContentDto);\n\n const maskSliderWithBannerContentDto = new FormsContentDto(\n FORM_NAME_IMG_MASK,\n 'wb.blocks.FormContentDto.14',\n FORM_TYPE_TAG,\n content[FORM_NAME_IMG_MASK],\n 'wb.blocks.FormContentDto.15',\n '',\n ['wb.blocks.FormContentDto.94', 'wb.blocks.FormContentDto.95', 'wb.blocks.FormContentDto.96'],\n ['small', 'medium', 'large']\n );\n sliderWithBannerFormDto.forms.push(maskSliderWithBannerContentDto);\n\n const fullpageSliderWithBannerContentDto = new FormsContentDto(\n FORM_NAME_FULLPAGE,\n 'wb.blocks.FormContentDto.16',\n FORM_TYPE_CHECKBOX,\n content[FORM_NAME_FULLPAGE],\n '',\n '',\n [],\n [],\n [true, false]\n );\n sliderWithBannerFormDto.forms.push(fullpageSliderWithBannerContentDto);\n\n const colorContentDto = new FormsContentDto(\n FORM_NAME_COLOR,\n 'wb.blocks.FormContentDto.112',\n FORM_TYPE_COLOR,\n content[FORM_NAME_COLOR],\n '#122231',\n ''\n );\n sliderWithBannerFormDto.forms.push(colorContentDto);\n\n return sliderWithBannerFormDto;\n }\n\n getConfig(): SliderWithBannerDto {\n return new SliderWithBannerDto(this.type());\n }\n}\n","import { SlidersFullpageService } from '../../../services/blocks/sliders/sliders-fullpage.service';\nimport { SlidersLeftnavService } from '../../../services/blocks/sliders/sliders-leftnav.service';\nimport { SlidersImagerightService } from '../../../services/blocks/sliders/sliders-imageright.service';\nimport { SlidersDoubleImagerightService } from '../../../services/blocks/sliders/sliders-double-imageright.service';\nimport { SeparatorSimpleService } from '../../../services/blocks/separator/separator-simple.service';\nimport { CodeHtmlService } from '../../../services/blocks/code/code-html.service';\nimport { MapFullpageService } from '../../../services/blocks/map/map-fullpage.service';\nimport { MapLeftTextService } from '../../../services/blocks/map/map-left-text.service';\nimport { MapRightTextService } from '../../../services/blocks/map/map-right-text.service';\nimport { MapTextFormService } from '../../../services/blocks/map/map-text-form.service';\nimport { MapBackgroundFormLeftService } from '../../../services/blocks/map/map-background-form-left.service';\nimport { MapBackgroundFormRightService } from '../../../services/blocks/map/map-background-form-right.service';\nimport { TimerSimpleService } from '../../../services/blocks/timer/timer-simple.service';\nimport { TimerBackgroundService } from '../../../services/blocks/timer/timer-background.service';\nimport { TimerAirportService } from '../../../services/blocks/timer/timer-airport.service';\nimport { TimerClockService } from '../../../services/blocks/timer/timer-clock.service';\nimport { TimerMultipleImgService } from '../../../services/blocks/timer/timer-multiple-img.service';\nimport { QuotesSimpleService } from '../../../services/blocks/quotes/quotes-simple.service';\nimport { QuotesAuthorService } from '../../../services/blocks/quotes/quotes-author.service';\nimport { QuotesSimpleBackgroundService } from '../../../services/blocks/quotes/quotes-simple-background.service';\nimport { ReviewsSimpleService } from '../../../services/blocks/reviews/reviews-simple.service';\nimport { ReviewsWaterfallService } from '../../../services/blocks/reviews/reviews-waterfall.service';\nimport { WitnessTwiceService } from '../../../services/blocks/witness/witness-twice.service';\nimport { WitnessTripleService } from '../../../services/blocks/witness/witness-triple.service';\nimport { WitnessQuadrupleService } from '../../../services/blocks/witness/witness-quadruple.service';\nimport { WitnessBackgroundOneService } from '../../../services/blocks/witness/witness-background-one.service';\nimport { WitnessBackgroundDoubleService } from '../../../services/blocks/witness/witness-background-double.service';\nimport { NewsletterAlignedCenterImageService } from '../../../services/blocks/newsletter/newsletter-aligned-center-image.service';\nimport { NewsletterAlignedCenterBackgroundService } from '../../../services/blocks/newsletter/newsletter-aligned-center-background.service';\nimport { NewsletterCenterImageService } from '../../../services/blocks/newsletter/newsletter-center-image.service';\nimport { RassurancesTripleBackgroundService } from '../../../services/blocks/rassurances/rassurances-triple-background.service';\nimport { RassurancesQuadrupleAlignedService } from '../../../services/blocks/rassurances/rassurances-quadruple-aligned.service';\nimport { RassurancesQuadrupleBackgroundService } from '../../../services/blocks/rassurances/rassurances-quadruple-background.service';\nimport { SocialsLikeService } from '../../../services/blocks/socials/socials-like.service';\nimport { SocialsNetworkService } from '../../../services/blocks/socials/socials-network.service';\nimport { ProductsListClassicService } from '../../../services/blocks/products-list/products-list-classic.service';\nimport { ProductsListSelectedService } from '../../../services/blocks/products-list/products-list-selected.service';\nimport { ProductsListSimpleService } from '../../../services/blocks/products-list/products-list-simple.service';\nimport { ImagesTextsBigLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-big-left-text-right.service';\nimport { ImagesTextsBigRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-big-right-text-left.service';\nimport { ImagesTextsLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-left-text-right.service';\nimport { ImagesTextsOneTextOneService } from '../../../services/blocks/images-texts/images-texts-one-text-one.service';\nimport { ImagesTextsRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-right-text-left.service';\nimport { ImagesTextsSmallLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-small-left-text-right.service';\nimport { ImagesTextsSmallRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-small-right-text-left.service';\nimport { ImagesTextsTextOneTextService } from '../../../services/blocks/images-texts/images-texts-text-one-text.service';\nimport { FourImagesTitleService } from '../../../services/blocks/images/four-images-title.service';\nimport { ImagesSimpleService } from '../../../services/blocks/images/images-simple.service';\nimport { ImagesDoubleService } from '../../../services/blocks/images/images-double.service';\nimport { ImagesTripleService } from '../../../services/blocks/images/images-triple.service';\nimport { ImagesQuadrupleService } from '../../../services/blocks/images/images-quadruple.service';\nimport { ImagesQuadrupleLeftOneRightService } from '../../../services/blocks/images/images-quadruple-left-one-right.service';\nimport { ImagesBigAndDoubleService } from '../../../services/blocks/images/images-big-and-double.service';\nimport { ImagesBigsAndDoubleMiddleService } from '../../../services/blocks/images/images-bigs-and-double-middle.service';\nimport { TextsOneService } from '../../../services/blocks/texts/texts-one.service';\nimport { TextsOneBackgroundService } from '../../../services/blocks/texts/texts-one-background.service';\nimport { TextsDoubleService } from '../../../services/blocks/texts/texts-double.service';\nimport { TextsDoubleBackgroundService } from '../../../services/blocks/texts/texts-double-background.service';\nimport { TextsTripleService } from '../../../services/blocks/texts/texts-triple.service';\nimport { TextsTripleBackgroundService } from '../../../services/blocks/texts/texts-triple-background.service';\nimport { TextsQuadrupleService } from '../../../services/blocks/texts/texts-quadruple.service';\nimport { TextsQuadrupleBackgroundService } from '../../../services/blocks/texts/texts-quadruple-background.service';\nimport { FormsSimpleService } from '../../../services/blocks/forms/forms-simple.service';\nimport { FormsBackgroundService } from '../../../services/blocks/forms/forms-background.service';\nimport { FormsImageleftService } from '../../../services/blocks/forms/forms-imageleft.service';\nimport { FormsImagerightService } from '../../../services/blocks/forms/forms-imageright.service';\nimport { TextBackgroundsSimpleService } from '../../../services/blocks/text-backgrounds/text-backgrounds-simple.service';\nimport { TextBackgroundsWithTxtService } from '../../../services/blocks/text-backgrounds/text-backgrounds-with-txt.service';\nimport { TextBackgroundsWithBannerService } from '../../../services/blocks/text-backgrounds/text-backgrounds-with-banner.service';\nimport { LaunchVideosButtonService } from '../../../services/blocks/launch-videos/launch-videos-button.service';\nimport { LaunchVideosButtontxtService } from '../../../services/blocks/launch-videos/launch-videos-buttontxt.service';\nimport { VideosSimpleService } from '../../../services/blocks/videos/videos-simple.service';\nimport { VideosTxtService } from '../../../services/blocks/videos/videos-txt.service';\nimport { VideosTxtContentService } from '../../../services/blocks/videos/videos-txt-content.service';\nimport { VideosTxtLeftService } from '../../../services/blocks/videos/videos-txt-left.service';\nimport { CodeJavascriptService } from '../../../services/blocks/code/code-javascript.service';\nimport { CodeStylesheetService } from '../../../services/blocks/code/code-stylesheet.service';\nimport { SocialsPageSimpleService } from '../../../services/blocks/socials/socials-page-simple.service';\nimport { SocialsPageComplexService } from '../../../services/blocks/socials/socials-page-complex.service';\nimport { ProductZoomService } from '../../../services/blocks/product/product-zoom.service';\nimport { ProductZoomSelectedService } from '../../../services/blocks/product/product-zoom-selected.service';\nimport { ProductZoomMoreService } from '../../../services/blocks/product/product-zoom-more.service';\nimport { ProductZoomCompleteService } from '../../../services/blocks/product/product-zoom-complete.service';\nimport { ProductZoomCompleteBackgroundService } from '../../../services/blocks/product/product-zoom-complete-background.service';\nimport { ProductZoomCompleteSliderService } from '../../../services/blocks/product/product-zoom-complete-slider.service';\nimport { ProductZoomSimpleService } from '../../../services/blocks/product/product-zoom-simple.service';\nimport { AmplifyProductZoomService } from '../../../services/blocks/amplify-product/amplify-product-zoom.service';\nimport { AmplifyProductZoomMoreService } from '../../../services/blocks/amplify-product/amplify-product-zoom-more.service';\nimport { AmplifyProductZoomSelectedService } from '../../../services/blocks/amplify-product/amplify-product-zoom-selected.service';\nimport { AmplifyProductsListClassicService } from '../../../services/blocks/amplify-products-list/amplify-products-list-classic.service';\nimport { AmplifyProductsListSelectedService } from '../../../services/blocks/amplify-products-list/amplify-products-list-selected.service';\nimport { AmplifyProductsListSimpleService } from '../../../services/blocks/amplify-products-list/amplify-products-list-simple.service';\nimport { ProductZoomTripleColumnService } from '../../../services/blocks/product/product-zoom-triple-column.service';\nimport { AmplifyProductZoomTripleColumnService } from '../../../services/blocks/amplify-product/amplify-product-zoom-triple-column.service';\nimport { TextsQuadrupleNumbersService } from '../../../services/blocks/texts/texts-quadruple-numbers.service';\nimport { AboutBlockService } from '../../../services/blocks/witness/about-block.service';\nimport { ImagesBannerService } from '../../../services/blocks/images/images-banner.service';\nimport { FaqSimpleService } from '../../../services/blocks/faq/faq-simple.service';\nimport { FaqSimpleBackgroundService } from '../../../services/blocks/faq/faq-simple-background.service';\nimport { TextBackgroundsLinkService } from '../../../services/blocks/text-backgrounds/text-backgrounds-link.service';\nimport { FaqFrameService } from '../../../services/blocks/faq/faq-frame.service';\nimport { FaqAccordionService } from '../../../services/blocks/faq/faq-accordion.service';\nimport { FaqListIconService } from '../../../services/blocks/faq/faq-list-icon.service';\nimport { TwoImagesTitleTextService } from '../../../services/blocks/images/two-images-title-text.service';\nimport { FormsOnboardingService } from '../../../services/blocks/onboarding/forms-onboarding.service';\nimport { TextBackgroundsThreeRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.service';\nimport { TextBackgroundsFourRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.service';\nimport { TextBackgroundsTwoRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.service';\nimport { SlidersWithBannerService } from '../../../services/blocks/sliders/sliders-with-banner.service';\n\nexport const BlocksMapList = {\n slidersService: {\n slidersFullpageService: SlidersFullpageService,\n slidersLeftnavService: SlidersLeftnavService,\n slidersImagerightService: SlidersImagerightService,\n slidersDoubleImagerightService: SlidersDoubleImagerightService,\n sliderWithBannerService: SlidersWithBannerService,\n },\n separatorService: {\n separatorSimpleService: SeparatorSimpleService,\n },\n codeService: {\n htmlAddService: CodeHtmlService,\n htmlJavascriptService: CodeJavascriptService,\n htmlStylesheetService: CodeStylesheetService,\n },\n mapService: {\n mapFullpageService: MapFullpageService,\n mapLeftTextService: MapLeftTextService,\n mapRightTextService: MapRightTextService,\n mapTextFormService: MapTextFormService,\n mapBackgroundFormLeftService: MapBackgroundFormLeftService,\n mapBackgroundFormRightService: MapBackgroundFormRightService,\n },\n timerService: {\n timerSimpleService: TimerSimpleService,\n timerBackgroundService: TimerBackgroundService,\n timerAirportService: TimerAirportService,\n timerClockService: TimerClockService,\n TimerMultipleImgService: TimerMultipleImgService,\n },\n quotesService: {\n quotesSimpleService: QuotesSimpleService,\n quotesAuthorService: QuotesAuthorService,\n quotesSimpleBackgroundService: QuotesSimpleBackgroundService,\n },\n reviewsService: {\n reviewsSimpleService: ReviewsSimpleService,\n reviewsWaterfallService: ReviewsWaterfallService,\n },\n witnessService: {\n witnessTwiceService: WitnessTwiceService,\n witnessTripleService: WitnessTripleService,\n witnessQuadrupleService: WitnessQuadrupleService,\n witnessFullpageNavigationService: WitnessBackgroundOneService,\n witnessNavigationService: WitnessBackgroundDoubleService,\n aboutService: AboutBlockService,\n },\n newsletterService: {\n newsletterAlignedCenterImageService: NewsletterAlignedCenterImageService,\n newsletterAlignedCenterBackgroundService: NewsletterAlignedCenterBackgroundService,\n newsletterCenterImageService: NewsletterCenterImageService,\n // newsletterCenterImageInstagramService: NewsletterCenterImageInstagramService\n },\n rassurancesService: {\n rassurancesTripleBackgroundService: RassurancesTripleBackgroundService,\n rassurancesQuadrupleAlignedService: RassurancesQuadrupleAlignedService,\n rassurancesQuadrupleBackgroundService: RassurancesQuadrupleBackgroundService,\n },\n socialsService: {\n // socialsInstagramService: SocialsInstagramService,\n // socialsInstagramLeftService: SocialsInstagramLeftService,\n socialsLikeService: SocialsLikeService,\n socialsPageSimpleService: SocialsPageSimpleService,\n socialsPageComplexService: SocialsPageComplexService,\n socialsNetworkService: SocialsNetworkService,\n },\n amplifyProductService: {\n amplifyProductZoom: AmplifyProductZoomService,\n amplifyProductZoomMoreService: AmplifyProductZoomMoreService,\n amplifyProductZoomSelectedService: AmplifyProductZoomSelectedService,\n amplifyProductZoomTripleColumn: AmplifyProductZoomTripleColumnService,\n },\n productService: {\n productZoom: ProductZoomService,\n productZoomSelected: ProductZoomSelectedService,\n productZoomMore: ProductZoomMoreService,\n productZoomSimple: ProductZoomSimpleService,\n productZoomComplete: ProductZoomCompleteService,\n productZoomCompleteBackground: ProductZoomCompleteBackgroundService,\n productZoomTripleColumn: ProductZoomTripleColumnService,\n productZoomCompleteSlider: ProductZoomCompleteSliderService,\n },\n amplifyProductsListService: {\n amplifyProductsListClassicService: AmplifyProductsListClassicService,\n amplifyProductsListSelectedService: AmplifyProductsListSelectedService,\n amplifyProductsListSimpleService: AmplifyProductsListSimpleService,\n },\n productsListService: {\n productsListClassicService: ProductsListClassicService,\n productsListSelectedService: ProductsListSelectedService,\n productsListSimpleService: ProductsListSimpleService,\n },\n imagesTextsService: {\n imagesTextsBigLeftTextRightService: ImagesTextsBigLeftTextRightService,\n imagesTextsBigRightTextLeftService: ImagesTextsBigRightTextLeftService,\n imagesTextsLeftTextRightService: ImagesTextsLeftTextRightService,\n imagesTextsOneTextOneService: ImagesTextsOneTextOneService,\n imagesTextsRightTextLeftService: ImagesTextsRightTextLeftService,\n imagesTextsSmallLeftTextRightService: ImagesTextsSmallLeftTextRightService,\n imagesTextsSmallRightTextLeftService: ImagesTextsSmallRightTextLeftService,\n imagesTextsTextOneTextService: ImagesTextsTextOneTextService,\n },\n imagesService: {\n imagesSimpleService: ImagesSimpleService,\n imagesBannerService: ImagesBannerService,\n imagesDoubleService: ImagesDoubleService,\n imagesTripleService: ImagesTripleService,\n imagesQuadrupleService: ImagesQuadrupleService,\n imagesBigAndDoubleService: ImagesBigAndDoubleService,\n imagesBigsAndDoubleMiddleService: ImagesBigsAndDoubleMiddleService,\n imagesQuadrupleLeftOneRightService: ImagesQuadrupleLeftOneRightService,\n fourImagesTitleService: FourImagesTitleService,\n twoImagesTitleTextService: TwoImagesTitleTextService,\n },\n textsService: {\n textsOneService: TextsOneService,\n textsOneBackgroundService: TextsOneBackgroundService,\n textsDoubleService: TextsDoubleService,\n textsDoubleBackgroundService: TextsDoubleBackgroundService,\n textsTripleService: TextsTripleService,\n textsTripleBackgroundService: TextsTripleBackgroundService,\n textsQuadrupleService: TextsQuadrupleService,\n textsQuadrupleBackgroundService: TextsQuadrupleBackgroundService,\n textsQuadrupleNumbersService: TextsQuadrupleNumbersService,\n },\n textBackgroundsService: {\n textBackgroundsLinkService: TextBackgroundsLinkService,\n textBackgroundsSimpleService: TextBackgroundsSimpleService,\n textBackgroundsWithTxtService: TextBackgroundsWithTxtService,\n textBackgroundsWithBannerService: TextBackgroundsWithBannerService,\n textBackgroundsTwoRowsIconTextService: TextBackgroundsTwoRowsIconTextService,\n textBackgroundsThreeRowsIconTextService: TextBackgroundsThreeRowsIconTextService,\n textBackgroundsFourRowsIconTextService: TextBackgroundsFourRowsIconTextService,\n },\n formsService: {\n formsSimpleService: FormsSimpleService,\n formsBackgroundService: FormsBackgroundService,\n formsImageleftService: FormsImageleftService,\n formsImagerightService: FormsImagerightService,\n },\n onboardingService: {\n onboardingFormsService: FormsOnboardingService,\n },\n launchVideosService: {\n launchVideosButtonService: LaunchVideosButtonService,\n launchVideosButtontxtService: LaunchVideosButtontxtService,\n },\n videosService: {\n videosSimpleService: VideosSimpleService,\n videosTxtService: VideosTxtService,\n videosTxtContentService: VideosTxtContentService,\n videosTxtLeftService: VideosTxtLeftService,\n },\n faqService: {\n faqSimple: FaqSimpleService,\n faqSimpleBackground: FaqSimpleBackgroundService,\n faqFrame: FaqFrameService,\n faqAccordion: FaqAccordionService,\n faqListIcon: FaqListIconService,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_SLIDERS = 'sliders';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlidersService extends ParentStructuresService {\n private _text = 'wb.structures.sliders.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SLIDERS;\n }\n\n image() {\n return 'Icon_Diaporama.svg';\n }\n\n getConfig() {\n return BlocksMapList.slidersService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_SEPARATOR = 'separator';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeparatorService extends ParentStructuresService {\n private _text = 'wb.structures.separator.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_SEPARATOR;\n }\n\n image() {\n return 'Icon_Separateur.svg';\n }\n\n getConfig() {\n return BlocksMapList.separatorService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_CODE = 'code';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CodeService extends ParentStructuresService {\n private _text = 'wb.structures.code.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_CODE;\n }\n\n image() {\n return 'Icon_Html.svg';\n }\n\n getConfig() {\n return BlocksMapList.codeService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_MAP = 'map';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapService extends ParentStructuresService {\n private _text = 'wb.structures.map.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_MAP;\n }\n\n image() {\n return 'Icon_Map.svg';\n }\n\n getConfig() {\n return BlocksMapList.mapService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_TIMER = 'timer';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimerService extends ParentStructuresService {\n private _text = 'wb.structures.timer.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TIMER;\n }\n\n image() {\n return 'Icon_Timer.svg';\n }\n\n getConfig() {\n return BlocksMapList.timerService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_QUOTES = 'quotes';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuotesService extends ParentStructuresService {\n private _text = 'wb.structures.quotes.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_QUOTES;\n }\n\n image() {\n return 'Icon_Citation.svg';\n }\n\n getConfig() {\n return BlocksMapList.quotesService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_REVIEWS = 'reviews';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReviewsService extends ParentStructuresService {\n private _text = 'wb.structures.reviews.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_REVIEWS;\n }\n\n image() {\n return 'Icon_AvisClient.svg';\n }\n\n getConfig() {\n return BlocksMapList.reviewsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_WITNESS = 'witness';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessService extends ParentStructuresService {\n private _text = 'wb.structures.witness.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_WITNESS;\n }\n\n image() {\n return 'Icon_Temoignage.svg';\n }\n\n getConfig() {\n return BlocksMapList.witnessService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_NEWSLETTER = 'newsletter';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewsletterService extends ParentStructuresService {\n private _text = 'wb.structures.newsletter.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_NEWSLETTER;\n }\n\n image() {\n return 'Icon_Newsletter.svg';\n }\n\n getConfig() {\n return BlocksMapList.newsletterService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_RASSURANCES = 'rassurances';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RassurancesService extends ParentStructuresService {\n private _text = 'wb.structures.rassurances.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return 'rassurances';\n }\n\n image() {\n return 'Icon_Rassurances.svg';\n }\n\n getConfig() {\n return BlocksMapList.rassurancesService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_SOCIALS = 'socials';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocialsService extends ParentStructuresService {\n private _text = 'wb.structures.socials.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return 'socials';\n }\n\n image() {\n return 'Icon_ReseauxSociaux.svg';\n }\n\n getConfig() {\n return BlocksMapList.socialsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_PRODUCTS_LIST = 'products_list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductsListService extends ParentStructuresService {\n private _text = 'wb.structures.products-list.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_PRODUCTS_LIST;\n }\n\n image() {\n return 'Icon_ListProd.svg';\n }\n\n getConfig() {\n return BlocksMapList.productsListService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_IMAGES_TEXTS = 'images_texts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesTextsService extends ParentStructuresService {\n private _text = 'wb.structures.images-texts.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES_TEXTS;\n }\n\n image() {\n return 'Icon_ImgAvecTexte.svg';\n }\n\n getConfig() {\n return BlocksMapList.imagesTextsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_IMAGES = 'images';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImagesService extends ParentStructuresService {\n private _text = 'wb.structures.images.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_IMAGES;\n }\n\n image() {\n return 'Icon_PlusieursImg.svg';\n }\n\n getConfig() {\n return BlocksMapList.imagesService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_TEXTS = 'texts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextsService extends ParentStructuresService {\n private _text = 'wb.structures.texts.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXTS;\n }\n\n image() {\n return 'Icon_PlusieursTxt.svg';\n }\n\n getConfig() {\n return BlocksMapList.textsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_TEXT_BACKGROUNDS = 'text_backgrounds';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TextBackgroundsService extends ParentStructuresService {\n private _text = 'wb.structures.text-backgrounds.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_TEXT_BACKGROUNDS;\n }\n\n image() {\n return 'Icon_TxtDansImage.svg';\n }\n\n getConfig() {\n return BlocksMapList.textBackgroundsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_FORMS = 'forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsService extends ParentStructuresService {\n private _text = 'wb.structures.forms.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FORMS;\n }\n\n image() {\n return 'Icon_Formulaire.svg';\n }\n\n getConfig() {\n return BlocksMapList.formsService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_LAUNCH_VIDEOS = 'launch_videos';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LaunchVideosService extends ParentStructuresService {\n private _text = 'wb.structures.launch-videos.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_LAUNCH_VIDEOS;\n }\n\n image() {\n return 'Icon_LancerVideo.svg';\n }\n\n getConfig() {\n return BlocksMapList.launchVideosService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_VIDEO = 'video';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VideosService extends ParentStructuresService {\n private _text = 'wb.structures.videos.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_VIDEO;\n }\n\n image() {\n return 'Icon_VideoDeFond.svg';\n }\n\n getConfig() {\n return BlocksMapList.videosService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_PRODUCT = 'product';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductService extends ParentStructuresService {\n private _text = 'wb.structures.product.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return 'product';\n }\n\n image() {\n return 'Icon_ZoomProd.svg';\n }\n\n getConfig() {\n return BlocksMapList.productService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_AMPLIFY_PRODUCT = 'amplify_product';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductService extends ParentStructuresService {\n private _text = 'wb.structures.amplify-product.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCT;\n }\n\n image() {\n return 'Icon_ZoomProd.svg';\n }\n\n getConfig() {\n return BlocksMapList.amplifyProductService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_AMPLIFY_PRODUCTS_LIST = 'amplify_products_list';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmplifyProductsListService extends ParentStructuresService {\n private _text = 'wb.structures.amplify-products-list.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_AMPLIFY_PRODUCTS_LIST;\n }\n\n image() {\n return 'Icon_ListProd.svg';\n }\n\n getConfig() {\n return BlocksMapList.amplifyProductsListService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_FAQ = 'faq';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FaqService extends ParentStructuresService {\n private _text = 'wb.structures.faq.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_FAQ;\n }\n\n image() {\n return 'Icon_Faq.svg';\n }\n\n getConfig() {\n return BlocksMapList.faqService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ParentStructuresService } from '../parent-structures.service';\nimport { BlocksMapList } from '../../../dtos/configs/blocks/blocks-list.dto';\n\nexport const TYPE_ONBOARDING = 'onboarding';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingService extends ParentStructuresService {\n private _text = 'wb.structures.onboarding.text';\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n type() {\n return TYPE_ONBOARDING;\n }\n\n image() {\n return 'Icon_Onboarding.svg';\n }\n\n getConfig() {\n return BlocksMapList.onboardingService;\n }\n\n getComponents() {\n return super.getComponents(this.getConfig());\n }\n}\n","import { StructureConfigDto } from './structure-config.dto';\nimport { SlidersService } from '../../../services/structures/sliders/sliders.service';\nimport { SeparatorService } from '../../../services/structures/separator/separator.service';\nimport { CodeService } from '../../../services/structures/code/code.service';\nimport { MapService } from '../../../services/structures/map/map.service';\nimport { TimerService } from '../../../services/structures/timer/timer.service';\nimport { QuotesService } from '../../../services/structures/quotes/quotes.service';\nimport { ReviewsService } from '../../../services/structures/reviews/reviews.service';\nimport { WitnessService } from '../../../services/structures/witness/witness.service';\nimport { NewsletterService } from '../../../services/structures/newsletter/newsletter.service';\nimport { RassurancesService } from '../../../services/structures/rassurances/rassurances.service';\nimport { SocialsService } from '../../../services/structures/socials/socials.service';\nimport { ProductsListService } from '../../../services/structures/products-list/products-list.service';\nimport { ImagesTextsService } from '../../../services/structures/images-texts/images-texts.service';\nimport { ImagesService } from '../../../services/structures/images/images.service';\nimport { TextsService } from '../../../services/structures/texts/texts.service';\nimport { TextBackgroundsService } from '../../../services/structures/text-backgrounds/text-backgrounds.service';\nimport { FormsService } from '../../../services/structures/forms/forms.service';\nimport { LaunchVideosService } from '../../../services/structures/launch-videos/launch-videos.service';\nimport { VideosService } from '../../../services/structures/videos/videos.service';\nimport { ProductService } from '../../../services/structures/product/product.service';\nimport { AmplifyProductService } from '../../../services/structures/amplify-product/amplify-product.service';\nimport { AmplifyProductsListService } from '../../../services/structures/amplify-products-list/amplify-products-list.service';\nimport { FaqService } from '../../../services/structures/faq/faq.service';\nimport { OnboardingService } from '../../../services/structures/onboarding/onboarding.service';\n\nexport const StructuresMapList = {\n slidersService: SlidersService,\n separatorService: SeparatorService,\n codeService: CodeService,\n mapService: MapService,\n timerService: TimerService,\n quotesService: QuotesService,\n reviewsService: ReviewsService,\n witnessService: WitnessService,\n newsletterService: NewsletterService,\n rassurancesService: RassurancesService,\n socialsService: SocialsService,\n productsListService: ProductsListService,\n productService: ProductService,\n amplifyProductService: AmplifyProductService,\n amplifyProductsListService: AmplifyProductsListService,\n imagesTextsService: ImagesTextsService,\n imagesService: ImagesService,\n textsService: TextsService,\n textBackgroundsService: TextBackgroundsService,\n formsService: FormsService,\n launchVideosService: LaunchVideosService,\n videosService: VideosService,\n faqService: FaqService,\n onboardingService: OnboardingService,\n};\n\nexport class StructuresListDto {\n components: Array<StructureConfigDto> = [];\n}\n","import { BlockConfigDto } from '../blocks/block-config.dto';\n\nexport class StructureConfigDto {\n constructor(type, text, image?, contents?) {\n this.text = text;\n this.type = type;\n\n if (image) {\n this.image = image;\n }\n if (contents) {\n this.contents = contents;\n }\n }\n\n private _type: string;\n\n private _text: string;\n\n private _image: string;\n\n private _contents: Array<BlockConfigDto> = [];\n\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n this._text = value;\n }\n\n get image(): string {\n return this._image;\n }\n\n set image(value: string) {\n this._image = value;\n }\n\n get contents(): Array<any> {\n return this._contents;\n }\n\n set contents(value: Array<any>) {\n this._contents = value;\n }\n\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { TranslationsDto } from '../dtos/configs/translations/translations.dto';\nimport { StructuresListDto, StructuresMapList } from '../dtos/configs/structures/structures-list.dto';\nimport { StructureConfigDto } from '../dtos/configs/structures/structure-config.dto';\nimport { InjectorService } from './utils/injector.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WiziBlockService {\n _translations: TranslationsDto = new TranslationsDto();\n\n _components: StructuresListDto = new StructuresListDto();\n\n _blocksService: Array<any> = [];\n\n constructor(private injector: Injector) {\n InjectorService.Injector = this.injector;\n }\n\n setConfig(components: Array<string>, translation: TranslationsDto = null) {\n if (translation === null) {\n translation = new TranslationsDto();\n }\n // Manage translation and instanciation for blocks and structures\n Object.keys(StructuresMapList).map(objectKey => {\n const structure = this.injector.get(StructuresMapList[objectKey]);\n if (typeof translation.types[structure.type()] !== 'undefined' && translation.types[structure.type()] !== '') {\n structure.text = translation.types[structure.type()];\n }\n\n if (structure.getConfig()) {\n Object.keys(structure.getConfig()).map(objectBlockKey => {\n const block = this.injector.get(structure.getConfig()[objectBlockKey]);\n if (translation.blocks[block.type()] && translation.blocks[block.type()] !== '') {\n block.text = translation.blocks[block.type()];\n }\n this._blocksService.push(block);\n });\n }\n });\n\n Object.assign(this._translations, translation);\n\n this.setComponents(components);\n }\n\n getTranslation() {\n return this._translations;\n }\n\n getComponents() {\n return this._components;\n }\n\n getBlocksService() {\n return this._blocksService;\n }\n\n private setComponents(components) {\n if (this._components.components.length === 0) {\n components.forEach(v => {\n Object.keys(StructuresMapList).map(objectKey => {\n const structure = this.injector.get(StructuresMapList[objectKey]);\n if (v === structure.type()) {\n const component = new StructureConfigDto(structure.type(), structure.text, structure.image(), structure.getComponents());\n if (component !== null) {\n this._components.components.push(component);\n }\n }\n });\n });\n }\n }\n}\n","import { ApiDto } from '../apis/api.dto';\n\nexport class ExternalConfigDto {\n id: number = null;\n url_image = '';\n min_url_image = '';\n preview_url = '';\n devise = '€';\n algoliaApiKey = '290e5a0e33e751c85c36690d502991fc';\n algoliaAppId = 'pl9OI1NPY62Y';\n api: ApiDto;\n width_block = '';\n}\n","export class ApiDto {\n token: string;\n preview_url = '';\n amplify_product_route = '';\n amplify_specific_route = '';\n amplify_categories_route = '';\n catalog_selection_route = '';\n catalog_search_route = '';\n catalog_specific_route = '';\n form_route = '';\n form_detail_route = '';\n comment_list_route = '';\n currency_route = '';\n shop_info = '';\n}\n","import { TYPE_VIDEO } from '../../../services/structures/videos/videos.service';\nimport { TYPE_SLIDERS } from '../../../services/structures/sliders/sliders.service';\nimport { TYPE_LAUNCH_VIDEOS } from '../../../services/structures/launch-videos/launch-videos.service';\nimport { TYPE_FORMS } from '../../../services/structures/forms/forms.service';\nimport { TYPE_CODE } from '../../../services/structures/code/code.service';\nimport { TYPE_IMAGES } from '../../../services/structures/images/images.service';\nimport { TYPE_IMAGES_TEXTS } from '../../../services/structures/images-texts/images-texts.service';\nimport { TYPE_MAP } from '../../../services/structures/map/map.service';\nimport { TYPE_SEPARATOR } from '../../../services/structures/separator/separator.service';\nimport { TYPE_TIMER } from '../../../services/structures/timer/timer.service';\nimport { TYPE_QUOTES } from '../../../services/structures/quotes/quotes.service';\nimport { TYPE_REVIEWS } from '../../../services/structures/reviews/reviews.service';\nimport { TYPE_WITNESS } from '../../../services/structures/witness/witness.service';\nimport { TYPE_NEWSLETTER } from '../../../services/structures/newsletter/newsletter.service';\nimport { TYPE_RASSURANCES } from '../../../services/structures/rassurances/rassurances.service';\nimport { TYPE_SOCIALS } from '../../../services/structures/socials/socials.service';\nimport { TYPE_PRODUCT } from '../../../services/structures/product/product.service';\nimport { TYPE_PRODUCTS_LIST } from '../../../services/structures/products-list/products-list.service';\nimport { TYPE_TEXTS } from '../../../services/structures/texts/texts.service';\nimport { TYPE_TEXT_BACKGROUNDS } from '../../../services/structures/text-backgrounds/text-backgrounds.service';\nimport { TYPE_AMPLIFY_PRODUCT } from '../../../services/structures/amplify-product/amplify-product.service';\nimport { TYPE_AMPLIFY_PRODUCTS_LIST } from '../../../services/structures/amplify-products-list/amplify-products-list.service';\nimport { TYPE_FAQ } from '../../../services/structures/faq/faq.service';\nimport { TYPE_ONBOARDING } from '../../../services/structures/onboarding/onboarding.service';\n\nexport class Types {\n sliders = TYPE_SLIDERS;\n videos = TYPE_VIDEO;\n launch_videos = TYPE_LAUNCH_VIDEOS;\n images = TYPE_IMAGES;\n text_backgrounds = TYPE_TEXT_BACKGROUNDS;\n images_texts = TYPE_IMAGES_TEXTS;\n texts = TYPE_TEXTS;\n forms = TYPE_FORMS;\n products_list = TYPE_PRODUCTS_LIST;\n amplify_products_list = TYPE_AMPLIFY_PRODUCTS_LIST;\n amplify_product = TYPE_AMPLIFY_PRODUCT;\n product = TYPE_PRODUCT;\n socials = TYPE_SOCIALS;\n rassurances = TYPE_RASSURANCES;\n newsletter = TYPE_NEWSLETTER;\n witness = TYPE_WITNESS;\n reviews = TYPE_REVIEWS;\n quotes = TYPE_QUOTES;\n timer = TYPE_TIMER;\n map = TYPE_MAP;\n code = TYPE_CODE;\n separator = TYPE_SEPARATOR;\n faq = TYPE_FAQ;\n onboarding = TYPE_ONBOARDING;\n}\n\nexport const TypesDto = new Types();\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n private _config = null;\n\n private _hideConfig = null;\n\n private _isInDev = false;\n\n private configSource = new Subject();\n\n private configDone = this.configSource.asObservable();\n\n private hideConfigSource = new Subject();\n\n private hideConfigDone = this.hideConfigSource.asObservable();\n\n private documentEventMarvinSource = new Subject();\n\n private documentEventMarvinDone = this.documentEventMarvinSource.asObservable();\n\n private eventInitialisation: boolean = true;\n\n get isInDev() {\n return this._isInDev;\n }\n\n set isInDev(value) {\n this._isInDev = value;\n }\n\n get config() {\n return this._config;\n }\n\n set config(value) {\n this._config = value;\n this.configSource.next();\n }\n\n get hideConfig() {\n return this._hideConfig;\n }\n\n set hideConfig(value) {\n this._hideConfig = value;\n this.hideConfigSource.next();\n }\n\n configEvent() {\n return this.configDone;\n }\n\n configShowEvent() {\n return this.hideConfigDone;\n }\n\n documentEvent() {\n return this.documentEventMarvinDone;\n }\n\n setDocumentEventListener() {\n if (!this.eventInitialisation) {\n return;\n }\n this.eventInitialisation = false;\n document.body.addEventListener('click', (event) => {\n this.documentEventMarvinSource.next(event.target);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { FormsDto } from '../../dtos/forms/forms.dto';\nimport { ParentBlockDto } from '../../dtos/blocks/parent-block.dto';\nimport { v4 as uuidV4 } from 'uuid';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContentService {\n private _contents: FormsDto<ParentBlockDto>[] = [];\n\n private contentsSource = new Subject();\n\n private contentsDone = this.contentsSource.asObservable();\n\n get contents(): FormsDto<ParentBlockDto>[] {\n return this._contents;\n }\n\n set contents(value: FormsDto<ParentBlockDto>[]) {\n this._contents = value;\n\n this.contentsSource.next();\n }\n\n setContents(value) {\n this._contents.push(value);\n\n this.contentsSource.next();\n\n this.goToLastElement();\n }\n\n setContentsWithIndex(index, value) {\n this._contents.splice(index, 0, value);\n\n this.contentsSource.next();\n }\n\n reorderContents(previousIndex, currentIndex) {\n moveItemInArray(this._contents, previousIndex, currentIndex);\n\n this.contentsSource.next();\n }\n\n getContentByUUID(uuid) {\n let content = null;\n Object.keys(this._contents).map(k => {\n if (this._contents[k].block.uuid === uuid) {\n content = this._contents[k];\n }\n });\n\n return content;\n }\n\n updateByUUID(uuid, newContent) {\n Object.keys(this._contents).map(k => {\n if (this._contents[k].block.uuid === uuid) {\n this._contents[k] = newContent;\n }\n });\n\n this.contentsSource.next();\n }\n\n duplicateContentByUUID(uuid) {\n let keyToCopy = null;\n Object.keys(this._contents).forEach((value, index) => {\n if (this._contents[index].block.uuid === uuid) {\n keyToCopy = index;\n }\n });\n\n if (keyToCopy !== null) {\n const toCopy = this.deepCopy(this._contents[keyToCopy]);\n toCopy.block.uuid = uuidV4();\n this._contents.splice(keyToCopy + 1, 0, toCopy);\n }\n\n this.contentsSource.next();\n }\n\n removeContentByUUID(uuid) {\n const contents = [];\n Object.keys(this._contents).map(k => {\n if (this._contents[k].block.uuid !== uuid) {\n contents.push(this._contents[k]);\n }\n });\n\n this._contents = contents;\n this.contentsSource.next();\n }\n\n deleteAll() {\n this._contents = [];\n }\n\n contentEvent() {\n return this.contentsDone;\n }\n\n getParsedContent() {\n const content = [];\n\n this.contents.forEach(form => {\n content.push(form.block);\n });\n\n return content;\n }\n\n goToLastElement() {\n setTimeout(() => {\n const el = document.getElementById('wb-footer__block');\n el.scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'nearest' });\n }, 400);\n }\n\n deepCopy(obj) {\n let copy;\n\n if (null == obj || 'object' !== typeof obj) {\n return obj;\n }\n\n if (obj instanceof Date) {\n copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n if (obj instanceof Array) {\n copy = [];\n for (let i = 0, len = obj.length; i < len; i++) {\n copy[i] = this.deepCopy(obj[i]);\n }\n return copy;\n }\n\n if (obj instanceof Object) {\n copy = {};\n for (const attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = this.deepCopy(obj[attr]);\n }\n }\n return copy;\n }\n\n throw new Error('Unable to copy obj! Its type not supported.');\n }\n}\n","import { animate, animation, query, stagger, style, transition, trigger } from '@angular/animations';\n\nexport function animateListFromRight(passedTime = '.3s ease-in-out', staggerTime = '50ms') {\n return trigger('animateListFromRight', [\n transition('* => *', [\n animation(\n [\n query(':enter', [style({ position: 'relative', opacity: 0, right: '-60px' })], { optional: true }),\n\n query(\n ':leave',\n [\n style({ position: 'relative', opacity: 1, right: 0 }),\n animate('{{time}}', style({ position: 'relative', opacity: 0, right: '-60px' }))\n ],\n { optional: true }\n ),\n\n query(':enter', stagger(staggerTime, [animate('{{time}}', style({ position: 'relative', opacity: 1, right: 0 }))]), {\n optional: true\n })\n ],\n { params: { time: passedTime } }\n )\n ])\n ]);\n}\n","import { animate, animation, query, stagger, style, transition, trigger } from '@angular/animations';\n\nexport function animateListFromLeft(passedTime = '.3s ease', staggerTime = '50ms') {\n return trigger('animateListFromLeft', [\n transition('* => *', [\n animation(\n [\n query(':enter', [style({ position: 'relative', opacity: 0, left: '-60px' })], { optional: true }),\n\n query(\n ':leave',\n [\n style({ position: 'relative', opacity: 1, left: 0 }),\n animate('{{time}}', style({ position: 'relative', opacity: 0, left: '-60px' }))\n ],\n { optional: true }\n ),\n\n query(':enter', stagger(staggerTime, [animate('{{time}}', style({ position: 'relative', opacity: 1, left: 0 }))]), {\n optional: true\n })\n ],\n { params: { time: passedTime } }\n )\n ])\n ]);\n}\n","import { Injectable } from '@angular/core';\nimport { ApiDto } from '../../dtos/configs/apis/api.dto';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { isDevMode } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n private baseUrlApiBlock = 'https://api-block.wizilocal.com';\n\n private baseUrlApiBlockProd = 'https://api-block.wizishop.com';\n\n private wiziBlockApiPreview = '/v1/blocks/previews';\n\n private id: number;\n\n private _api: ApiDto = null;\n\n get api() {\n return this._api;\n }\n\n set api(value) {\n this._api = value;\n }\n\n constructor(private http: HttpClient) {}\n\n setApis(api: ApiDto, id = null) {\n if (api !== null) {\n this.api = api;\n }\n\n if (id !== null) {\n this.id = id;\n }\n }\n\n getShopComment(limit = 4): Observable<any> {\n return this._get(this.api.comment_list_route, { limit: limit });\n }\n\n getShopCurrency(): Observable<any> {\n return this._get(this.api.currency_route);\n }\n\n getShopTemplateLang(): Observable<any> {\n return this._get(this.api.shop_info);\n }\n\n getAmplifyProductRoute(search, type, limit = 4): Observable<any> {\n return this._get(this.api.amplify_product_route, {\n q: search,\n page: 1,\n type: type,\n limit: limit,\n });\n }\n\n getAmplifySpecificRoute(prodIds: Array<string>, type = 'amplify', limit = 5): Observable<any> {\n return this._get(this.api.amplify_specific_route, {\n prodIds: JSON.stringify(prodIds),\n page: 1,\n type: type,\n limit: limit,\n });\n }\n\n getAmplifyProductByCategoryRoute(category, type = 'amplify', limit = 5): Observable<any> {\n return this._get(this.api.amplify_product_route, {\n categories: category,\n page: 1,\n type: type,\n limit: limit,\n });\n }\n\n getAmplifyCategoriesRoute(search, limit = 10): Observable<any> {\n return this._get(this.api.amplify_categories_route, {\n q: search,\n page: 1,\n limit: limit,\n });\n }\n\n getAmplifyCategoriesByIdsRoute(catIds, limit = 10): Observable<any> {\n return this._get(this.api.amplify_categories_route, {\n catIds: JSON.stringify([catIds]),\n page: 1,\n limit: limit,\n });\n }\n\n getCatalogSelection(type, limit = 5): Observable<any> {\n return this._get(this.api.catalog_selection_route, {\n type: type,\n page: 1,\n limit: limit,\n });\n }\n\n getCatalogSpecific(prodIds: Array<string>, limit = 10): Observable<any> {\n return this._get(this.api.catalog_specific_route, {\n prodIds: JSON.stringify(prodIds),\n page: 1,\n limit: limit,\n });\n }\n\n getCatalogSearch(search, limit = 10): Observable<any> {\n return this._get(this.api.catalog_search_route, {\n search: search,\n page: 1,\n limit: limit,\n });\n }\n\n getFormsList() {\n return this._get(this.api.form_route);\n }\n\n getFormsDetail(id) {\n return this._get(this.api.form_detail_route.replace(':idForm', id));\n }\n\n showPreview(content) {\n let url = this.getBlockApiUrl() + this.wiziBlockApiPreview;\n if (this.api.preview_url !== '') {\n url = this.api.preview_url;\n }\n\n return this._post(url, { id: this.id, blocks: content });\n }\n\n getOptionsHeaders() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + this.api.token,\n }),\n };\n }\n\n _post(route, body = {}) {\n return this.http.post(route, body, this.getOptionsHeaders());\n }\n\n _get(route, params = {}) {\n if (params) {\n const searchParams = new URLSearchParams('');\n\n for (const key in params) {\n if (params[key]) {\n searchParams.set(key, params[key]);\n }\n }\n\n route += '?' + decodeURIComponent(searchParams.toString());\n }\n\n return this.http.get(route, this.getOptionsHeaders());\n }\n\n getBlockApiUrl() {\n if (isDevMode()) {\n return this.baseUrlApiBlock;\n }\n\n return this.baseUrlApiBlockProd;\n }\n}\n\nexport class PreviewDto {\n html: string;\n}\n","import { Injectable } from '@angular/core';\nimport { ExternalConfigDto } from '../../dtos/configs/external/external-config.dto';\nimport { ApiService } from './api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExternalConfigService {\n private _externalConfig: ExternalConfigDto = null;\n\n get externalConfig() {\n return this._externalConfig;\n }\n\n set externalConfig(value) {\n this._externalConfig = value;\n }\n\n constructor(private apiService: ApiService) {}\n\n setExternalConfig(externalConfig: ExternalConfigDto) {\n this.apiService.setApis(externalConfig.api, externalConfig.id);\n this.externalConfig = externalConfig;\n }\n\n getUrlImageFront() {\n return this.externalConfig.url_image;\n }\n\n getDevise() {\n return this.apiService.getShopCurrency();\n }\n\n getShopLang() {\n return this.apiService.getShopTemplateLang();\n }\n\n getAlgoliaAppId() {\n return this.externalConfig.algoliaAppId;\n }\n\n getAlgoliaApiKey() {\n return this.externalConfig.algoliaApiKey;\n }\n\n getWidthBlock() {\n return this.externalConfig.width_block;\n }\n}\n","import { Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { WiziBlockService } from './services/wizi-block.service';\nimport { StructuresListDto } from './dtos/configs/structures/structures-list.dto';\nimport { TranslationsDto } from './dtos/configs/translations/translations.dto';\nimport { TypesDto } from './dtos/configs/types/types.dto';\nimport { StructureConfigDto } from './dtos/configs/structures/structure-config.dto';\nimport { ConfigService } from './services/utils/config.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { ContentService } from './services/utils/content.service';\nimport { animateListFromRight } from './shared/animations/list/animate-list-from-right.animation';\nimport { animateListFromLeft } from './shared/animations/list/animate-list-from-left.animation';\nimport { ParentBlockDto } from './dtos/blocks/parent-block.dto';\nimport { ExternalConfigDto } from './dtos/configs/external/external-config.dto';\nimport { ExternalConfigService } from './services/utils/external-config.service';\nimport { FormsDto } from './dtos/forms/forms.dto';\nimport { takeUntil } from 'rxjs/operators';\nimport { BlocksComponent } from './components/blocks/blocks.component';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wb-wizi-block',\n templateUrl: './wizi-block.component.html',\n styleUrls: [],\n animations: [animateListFromRight('200ms ease-in-out', '100ms'), animateListFromLeft('100ms ease-in-out')],\n})\nexport class WiziBlockComponent implements OnInit, OnDestroy {\n @Input() availableComponents: Array<string>;\n @Input() texts: TranslationsDto = null;\n @Input() externalConfig: ExternalConfigDto = null;\n @Input() content = [];\n @Input() verbose = false;\n @Input() isInDev = false;\n\n @Output() contentChange: EventEmitter<Array<ParentBlockDto>> = new EventEmitter();\n\n breakPointSize = 1421;\n blocksContents = [];\n selectedStructure: StructureConfigDto = null;\n selectedConfig: FormsDto<ParentBlockDto> = null;\n components: StructuresListDto = null;\n translation: TranslationsDto = null;\n isHiddenConfig = [];\n isFirstInLoop = false;\n loopIndex = 0;\n hoverChildren: boolean | string;\n\n private unsubscribe = new Subject();\n\n currentTopTool = 0;\n toolUnpin = false;\n toolHidden = false;\n smallScreen = false;\n\n private configEventSubscription: Subscription = null;\n private contentEventSubscription: Subscription = null;\n @ViewChild('componentList') componentList;\n\n blockComponent: BlocksComponent;\n @ViewChild('block', { static: false }) set contentBlock(control: BlocksComponent) {\n this.blockComponent = control;\n }\n\n @HostListener('window:scroll', []) onWindowScroll() {\n const currentTop = window.scrollY;\n if (this.toolUnpin && !this.toolHidden && Math.abs(currentTop - this.currentTopTool) > 800) {\n this.toolHidden = true;\n }\n }\n\n constructor(\n private wiziBlockService: WiziBlockService,\n private configService: ConfigService,\n private contentService: ContentService,\n private externalConfigService: ExternalConfigService,\n public translateService: TranslateService\n ) {}\n\n ngOnInit() {\n if (!this.availableComponents || this.availableComponents.length === 0) {\n this.availableComponents = [\n TypesDto.sliders,\n TypesDto.videos,\n TypesDto.launch_videos,\n TypesDto.images,\n TypesDto.text_backgrounds,\n TypesDto.images_texts,\n TypesDto.texts,\n TypesDto.forms,\n TypesDto.products_list,\n TypesDto.product,\n TypesDto.socials,\n TypesDto.rassurances,\n TypesDto.newsletter,\n TypesDto.witness,\n TypesDto.reviews,\n TypesDto.quotes,\n TypesDto.timer,\n TypesDto.map,\n TypesDto.code,\n TypesDto.separator,\n TypesDto.faq,\n ];\n }\n this.configService.setDocumentEventListener();\n\n if (this.isInDev) {\n this.configService.isInDev = true;\n }\n\n this.externalConfigService.setExternalConfig(this.externalConfig);\n this.wiziBlockService.setConfig(this.availableComponents, this.texts);\n this.components = this.wiziBlockService.getComponents();\n this.translation = this.wiziBlockService.getTranslation();\n this.configEventSubscription = this.configService\n .configEvent()\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.selectedConfig = this.configService.config;\n this.isFirstInLoop = false;\n this.loopIndex = 0;\n if (this.selectedConfig) {\n for (const b of this.blocksContents) {\n if (b['block']['uuid'] === this.selectedConfig.block.uuid && this.loopIndex < 1) {\n this.isFirstInLoop = true;\n }\n this.loopIndex += 1;\n }\n this.hoverChildren = this.selectedConfig.block.uuid;\n } else {\n this.hoverChildren = false;\n }\n if (this.toolHidden) {\n this.setHidden();\n }\n if (this.selectedStructure === null && this.selectedConfig !== null) {\n this.selectStructureOnFly();\n }\n });\n if (this.verbose) {\n console.log('Available content on start', this.content);\n }\n this.contentEventSubscription = this.contentService\n .contentEvent()\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n if (this.contentService.contents.length < this.blocksContents.length) {\n const top = window.scrollY;\n this.calculatePositionTools(top);\n }\n this.blocksContents = this.contentService.contents;\n this.emitContent();\n });\n this.contentService.contents = this.setContent();\n this.resizeWithWidth(window.innerWidth);\n for (const item of this.contentService.contents) {\n if (typeof item.block.hide_block !== typeof undefined) {\n if (item.block.hide_block === '0') {\n this.isHiddenConfig.push(item.block.uuid);\n }\n }\n }\n }\n\n addThis(selected) {\n this.blockComponent.addThisSelected(selected, this.verbose);\n }\n\n closeConfig() {\n this.configService.config = null;\n }\n\n selectStructureOnFly() {\n this.components.components.forEach((component) => {\n component.contents.forEach((subComponent) => {\n if (subComponent.type === this.selectedConfig.type) {\n this.selectedStructure = component;\n }\n });\n });\n }\n\n emitContent() {\n const parsedDto = [];\n this.blocksContents.forEach((v) => {\n parsedDto.push(v.block);\n });\n this.contentChange.emit(parsedDto);\n }\n\n setContent() {\n const content = [];\n if (this.content.length > 0) {\n this.content.forEach((block) => {\n this.wiziBlockService.getBlocksService().forEach((service) => {\n if (block.type === service.type()) {\n if (typeof service.getForm !== 'function') {\n console.error('No form for ' + service.type() + '');\n } else {\n const contentToAdd = service.getForm(block);\n contentToAdd.type = service.type();\n content.push(contentToAdd);\n if (this.verbose) {\n console.log('Set a content', content);\n }\n }\n }\n });\n });\n }\n\n return content;\n }\n\n onResize($event) {\n this.resizeWithWidth($event.target.innerWidth);\n }\n\n resizeWithWidth(currentBrowserSize) {\n if (currentBrowserSize < this.breakPointSize) {\n this.toolUnpin = true;\n this.smallScreen = true;\n } else {\n this.toolUnpin = false;\n this.smallScreen = false;\n }\n }\n\n setUnpin() {\n const top = window.scrollY;\n this.toolUnpin = !this.toolUnpin;\n if (this.toolUnpin) {\n this.calculatePositionTools(top);\n }\n }\n\n setHidden() {\n const top = window.scrollY;\n this.toolHidden = !this.toolHidden;\n this.calculatePositionTools(top);\n }\n\n calculatePositionTools(top) {\n if (!this.toolHidden) {\n this.currentTopTool = top;\n } else {\n this.currentTopTool = 0;\n }\n }\n\n changeConfigWiziblocks(event) {\n this.selectedConfig = event.config;\n if (typeof this.selectedConfig.forms !== typeof undefined) {\n for (const item of this.selectedConfig.forms) {\n if (item.id === 'hide_block' && item.value === '0' && !this.isHiddenConfig.includes(this.selectedConfig.block.uuid)) {\n this.isHiddenConfig.push(this.selectedConfig.block.uuid);\n } else if (item.id === 'hide_block' && item.value === '1') {\n this.isHiddenConfig = this.isHiddenConfig.filter((e) => e !== this.selectedConfig.block.uuid);\n }\n }\n }\n }\n\n ngOnDestroy(): void {\n this.wiziBlockService._blocksService = [];\n this.content = [];\n this.blocksContents = [];\n\n this.configEventSubscription.unsubscribe();\n this.contentEventSubscription.unsubscribe();\n this.unsubscribe.next();\n this.unsubscribe.complete();\n this.contentService.deleteAll();\n\n if (this.verbose) {\n console.log('GoodBye WiziBlock You Were Loved', 'Destroy of This Session');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StructureConfigService {\n private _structureConfig = '';\n\n private structureConfigSource = new Subject();\n\n private structureConfigDone = this.structureConfigSource.asObservable();\n\n get structureConfig() {\n return this._structureConfig;\n }\n\n set structureConfig(value) {\n this._structureConfig = value;\n }\n\n setStructureConfigWithUUID(value, uuid) {\n this.structureConfig = value;\n this.structureConfigSource.next(uuid);\n }\n\n structureConfigEvent() {\n return this.structureConfigDone;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ConfigService } from '../../../services/utils/config.service';\nimport { StructureConfigService } from '../../../services/utils/structure-config.service';\n\nexport const TYPE_CONFIG_POSITION_LEFT_TOP = 'is-left-top';\nexport const TYPE_CONFIG_POSITION_LEFT_BOTTOM = 'is-left-bottom';\nexport const TYPE_CONFIG_POSITION_RIGHT_TOP = 'is-right-top';\nexport const TYPE_CONFIG_POSITION_RIGHT_TOP_SIMPLE = 'is-right-top-simple';\nexport const TYPE_CONFIG_POSITION_RIGHT_BOTTOM = 'is-right-bottom';\nexport const TYPE_CONFIG_POSITION_LEFT_CENTER = 'is-left-center';\n\n@Component({\n selector: 'wb-structure-config',\n templateUrl: './structure-config.component.html',\n})\nexport class StructureConfigComponent implements OnInit {\n @Input() isActive = false;\n @Input() blockUUID = null;\n @Input() position = TYPE_CONFIG_POSITION_LEFT_TOP;\n @Input() isFullwidth = false;\n @Input() small = false;\n @Input() extraSmall = false;\n\n thisComponentActive = false;\n hideThis = false;\n\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n readonly TYPE_CONFIG_POSITION_LEFT_BOTTOM = TYPE_CONFIG_POSITION_LEFT_BOTTOM;\n readonly TYPE_CONFIG_POSITION_RIGHT_BOTTOM = TYPE_CONFIG_POSITION_RIGHT_BOTTOM;\n readonly TYPE_CONFIG_POSITION_LEFT_CENTER = TYPE_CONFIG_POSITION_LEFT_CENTER;\n\n constructor(private structureConfigService: StructureConfigService) {}\n\n ngOnInit(): void {\n this.structureConfigService.structureConfigEvent().subscribe((uuid) => {\n if (uuid === null || this.blockUUID === uuid) {\n if (this.structureConfigService.structureConfig !== '' && !this.thisComponentActive) {\n this.isActive = false;\n this.hideThis = true;\n }\n if (\n this.thisComponentActive &&\n (!this.structureConfigService.structureConfig || this.structureConfigService.structureConfig === '')\n ) {\n this.thisComponentActive = false;\n }\n if (!this.thisComponentActive && this.structureConfigService.structureConfig === '') {\n this.hideThis = false;\n }\n }\n });\n }\n\n activeThis() {\n this.isActive = true;\n this.thisComponentActive = true;\n this.hideThis = false;\n this.structureConfigService.setStructureConfigWithUUID(this.position, this.blockUUID);\n }\n\n disableIfActive() {\n if (this.thisComponentActive) {\n this.disable();\n }\n }\n\n disable() {\n this.isActive = false;\n this.structureConfigService.setStructureConfigWithUUID('', this.blockUUID);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MediaDto } from '../../dtos/configs/medias/media.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExpectedImagesService {\n private width: string;\n private height: string;\n\n constructor() {}\n\n setExpectedImgSizes(sizes: string) {\n if (!sizes) {\n this.width = null;\n this.height = null;\n return;\n }\n const sizesList = sizes.split('x');\n this.width = sizesList[0];\n this.height = sizesList[1];\n }\n\n getExpectedMediaDTO() {\n if (!this.width || !this.height) {\n return null;\n }\n const mediaDTO = new MediaDto();\n mediaDTO.image_width = this.width;\n mediaDTO.image_height = this.height;\n return mediaDTO;\n }\n}\n","import { Input, OnDestroy, OnInit, Directive } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { ContentService } from '../services/utils/content.service';\nimport { MediaDto } from '../dtos/configs/medias/media.dto';\nimport { ImageMediaDto } from '../dtos/configs/medias/image/image-media.dto';\nimport { TextMediaDto } from '../dtos/configs/medias/text/text-media.dto';\nimport { MediaConnectorService } from '../services/utils/media-connector.service';\nimport {\n FORM_NAME_ADDRESS,\n FORM_NAME_AUTHOR,\n FORM_NAME_BACKGROUND_COLOR,\n FORM_NAME_BORDER_STYLE,\n FORM_NAME_BUTTON,\n FORM_NAME_BUTTON_LEFT,\n FORM_NAME_BUTTON_MIDDLE_LEFT,\n FORM_NAME_BUTTON_MIDDLE_RIGHT,\n FORM_NAME_BUTTON_RIGHT,\n FORM_NAME_BUTTON_TEXT,\n FORM_NAME_COLOR,\n FORM_NAME_COLOR_CENTER,\n FORM_NAME_COLOR_CENTER_LEFT,\n FORM_NAME_COLOR_CENTER_RIGHT,\n FORM_NAME_COLOR_LEFT,\n FORM_NAME_COLOR_MIDDLE_LEFT,\n FORM_NAME_COLOR_MIDDLE_RIGHT,\n FORM_NAME_COLOR_RIGHT,\n FORM_NAME_CONTENT,\n FORM_NAME_CONTENT_BOTTOM_LEFT,\n FORM_NAME_CONTENT_BOTTOM_RIGHT,\n FORM_NAME_CONTENT_CENTER,\n FORM_NAME_CONTENT_CENTER_LEFT,\n FORM_NAME_CONTENT_CENTER_RIGHT,\n FORM_NAME_CONTENT_LEFT,\n FORM_NAME_CONTENT_MIDDLE_BOTTOM,\n FORM_NAME_CONTENT_MIDDLE_LEFT,\n FORM_NAME_CONTENT_MIDDLE_RIGHT,\n FORM_NAME_CONTENT_MIDDLE_TOP,\n FORM_NAME_CONTENT_RIGHT,\n FORM_NAME_CONTROL,\n FORM_NAME_COORDINATE_X,\n FORM_NAME_COORDINATE_Y,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_DOTS,\n FORM_NAME_EMAIL,\n FORM_NAME_FACEBOOK,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HEIGHT,\n FORM_NAME_HOURS,\n FORM_NAME_ICON_ADDRESS,\n FORM_NAME_ICON_BOTTOM_LEFT,\n FORM_NAME_ICON_BOTTOM_RIGHT,\n FORM_NAME_ICON_COLOR,\n FORM_NAME_ICON_COLOR_BOTTOM_LEFT,\n FORM_NAME_ICON_COLOR_BOTTOM_RIGHT,\n FORM_NAME_ICON_COLOR_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM,\n FORM_NAME_ICON_COLOR_MIDDLE_LEFT,\n FORM_NAME_ICON_COLOR_MIDDLE_RIGHT,\n FORM_NAME_ICON_COLOR_MIDDLE_TOP,\n FORM_NAME_ICON_COLOR_RIGHT,\n FORM_NAME_ICON_EMAIL,\n FORM_NAME_ICON_LEFT,\n FORM_NAME_ICON_MIDDLE_BOTTOM,\n FORM_NAME_ICON_MIDDLE_LEFT,\n FORM_NAME_ICON_MIDDLE_RIGHT,\n FORM_NAME_ICON_MIDDLE_TOP,\n FORM_NAME_ICON_PHONE,\n FORM_NAME_ICON_RIGHT,\n FORM_NAME_IMAGE,\n FORM_NAME_IMAGE_BOTTOM,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_LEFT_BOTTOM,\n FORM_NAME_IMAGE_LEFT_TOP,\n FORM_NAME_IMAGE_MIDDLE_BOTTOM,\n FORM_NAME_IMAGE_MIDDLE_LEFT,\n FORM_NAME_IMAGE_MIDDLE_RIGHT,\n FORM_NAME_IMAGE_MIDDLE_TOP,\n FORM_NAME_IMAGE_PAYMENT,\n FORM_NAME_IMAGE_RIGHT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_TEXT_CENTER,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_IMG_MASK,\n FORM_NAME_INSTAGRAM,\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_MINUTES,\n FORM_NAME_PAYMENT_OR_MEDIA,\n FORM_NAME_PHONE,\n FORM_NAME_PINTEREST,\n FORM_NAME_PLACEHOLDER,\n FORM_NAME_SECONDARY_COLOR,\n FORM_NAME_SECONDS,\n FORM_NAME_SHOW_TITLE,\n FORM_NAME_SLIDER,\n FORM_NAME_STAR_COLOR,\n FORM_NAME_STAR_SECONDARY_COLOR,\n FORM_NAME_TEXT,\n FORM_NAME_TEXT_LEFT,\n FORM_NAME_TEXT_RIGHT,\n FORM_NAME_TEXT_COLOR,\n FORM_NAME_TITLE,\n FORM_NAME_TITLE_CENTER,\n FORM_NAME_TITLE_CENTER_LEFT,\n FORM_NAME_TITLE_CENTER_RIGHT,\n FORM_NAME_TITLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_LEFT,\n FORM_NAME_TITLE_MIDDLE_RIGHT,\n FORM_NAME_TITLE_RIGHT,\n FORM_NAME_TWITTER,\n FORM_NAME_URL,\n FORM_NAME_URL_CENTER,\n FORM_NAME_URL_CENTER_LEFT,\n FORM_NAME_URL_CENTER_RIGHT,\n FORM_NAME_URL_LEFT,\n FORM_NAME_URL_RIGHT,\n FORM_NAME_URL_TARGET,\n FORM_NAME_WIDTH,\n FORM_TYPE_IMAGE_MASK_LARGE,\n FORM_TYPE_IMAGE_MASK_MEDIUM,\n FORM_TYPE_IMAGE_MASK_SMALL,\n FORM_NAME_BACKGROUND_COLOR_BUTTON,\n FORM_NAME_HREF,\n FORM_NAME_COLOR_BUTTON,\n FORM_NAME_TARGET,\n FormsDto,\n FORM_NAME_AMPLIFY_TYPE,\n FORM_NAME_AMPLIFY_CATEGORY,\n FORM_NAME_RATINGS_LINK,\n FORM_NAME_AUTHOR_NAME,\n FORM_NAME_AUTHOR_TITLE,\n FORM_NAME_UNDERLINE_COLOR,\n FORM_NAME_ELEMENTS,\n FORM_NAME_FAQ,\n FORM_NAME_TEXT_BACKGROUND,\n FORM_NAME_TEXT_BACKGROUND_LINK,\n FORM_NAME_SHADOW_COLOR,\n FORM_NAME_OPEN,\n FORM_NAME_ACCORDION,\n FORM_NAME_BORDER_COLOR,\n FORM_NAME_BACKGROUND_COLOR_SECONDARY,\n FORM_NAME_ICON,\n FORM_NAME_PADDING,\n FORM_NAME_NBLIGNE,\n FORM_NAME_ALIGN_BUTTON,\n FORM_NAME_EXTERNAL,\n} from '../dtos/forms/forms.dto';\nimport { InjectorService } from '../services/utils/injector.service';\nimport { ParentBlockDto } from '../dtos/blocks/parent-block.dto';\nimport { FontOrMediaDto } from '../dtos/configs/medias/image/font-or-media.dto';\nimport {\n TYPE_CONFIG_POSITION_LEFT_TOP,\n TYPE_CONFIG_POSITION_LEFT_BOTTOM,\n TYPE_CONFIG_POSITION_RIGHT_BOTTOM,\n TYPE_CONFIG_POSITION_RIGHT_TOP,\n TYPE_CONFIG_POSITION_RIGHT_TOP_SIMPLE,\n TYPE_CONFIG_POSITION_LEFT_CENTER,\n} from '../shared/components/structure-config/structure-config.component';\nimport { ExpectedImagesService } from '../services/utils/expected-images.service';\n\n@Directive()\nexport abstract class StructuresComponent<T extends ParentBlockDto> implements OnInit, OnDestroy {\n readonly BASE_BLOCK_CONTENT = 'block';\n\n /**\n * All readonly FORM_NAME / FORM_TYPE\n */\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n\n readonly TYPE_CONFIG_POSITION_LEFT_CENTER = TYPE_CONFIG_POSITION_LEFT_CENTER;\n\n readonly TYPE_CONFIG_POSITION_LEFT_BOTTOM = TYPE_CONFIG_POSITION_LEFT_BOTTOM;\n\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n\n readonly TYPE_CONFIG_POSITION_RIGHT_BOTTOM = TYPE_CONFIG_POSITION_RIGHT_BOTTOM;\n\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP_SIMPLE = TYPE_CONFIG_POSITION_RIGHT_TOP_SIMPLE;\n\n readonly FORM_NAME_CONTENT = FORM_NAME_CONTENT;\n\n readonly FORM_NAME_TITLE_CENTER_LEFT = FORM_NAME_TITLE_CENTER_LEFT;\n\n readonly FORM_NAME_TITLE_CENTER_RIGHT = FORM_NAME_TITLE_CENTER_RIGHT;\n\n readonly FORM_NAME_LIST_PRODUCT = FORM_NAME_LIST_PRODUCT;\n\n readonly FORM_NAME_NBLIGNE = FORM_NAME_NBLIGNE;\n\n readonly FORM_NAME_AMPLIFY_CATEGORY = FORM_NAME_AMPLIFY_CATEGORY;\n\n readonly FORM_NAME_CONTENT_CENTER_LEFT = FORM_NAME_CONTENT_CENTER_LEFT;\n\n readonly FORM_NAME_CONTENT_CENTER_RIGHT = FORM_NAME_CONTENT_CENTER_RIGHT;\n\n readonly FORM_NAME_DAYS = FORM_NAME_DAYS;\n\n readonly FORM_NAME_HOURS = FORM_NAME_HOURS;\n\n readonly FORM_NAME_IMAGE_PAYMENT = FORM_NAME_IMAGE_PAYMENT;\n\n readonly FORM_NAME_ICON_MIDDLE_TOP = FORM_NAME_ICON_MIDDLE_TOP;\n\n readonly FORM_NAME_ICON_MIDDLE_BOTTOM = FORM_NAME_ICON_MIDDLE_BOTTOM;\n\n readonly FORM_NAME_CONTENT_MIDDLE_BOTTOM = FORM_NAME_CONTENT_MIDDLE_BOTTOM;\n\n readonly FORM_NAME_CONTENT_MIDDLE_TOP = FORM_NAME_CONTENT_MIDDLE_TOP;\n\n readonly FORM_NAME_ICON_COLOR_MIDDLE_TOP = FORM_NAME_ICON_COLOR_MIDDLE_TOP;\n\n readonly FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM = FORM_NAME_ICON_COLOR_MIDDLE_BOTTOM;\n\n readonly FORM_NAME_SECONDS = FORM_NAME_SECONDS;\n\n readonly FORM_NAME_TARGET = FORM_NAME_TARGET;\n\n readonly FORM_NAME_TITLE_CENTER = FORM_NAME_TITLE_CENTER;\n\n readonly FORM_NAME_CONTENT_CENTER = FORM_NAME_CONTENT_CENTER;\n\n readonly FORM_NAME_COLOR_CENTER = FORM_NAME_COLOR_CENTER;\n\n readonly FORM_NAME_TITLE = FORM_NAME_TITLE;\n\n readonly FORM_NAME_TITLE_LEFT = FORM_NAME_TITLE_LEFT;\n\n readonly FORM_NAME_URL_CENTER = FORM_NAME_URL_CENTER;\n\n readonly FORM_NAME_TITLE_MIDDLE_LEFT = FORM_NAME_TITLE_MIDDLE_LEFT;\n\n readonly FORM_NAME_IMAGE = FORM_NAME_IMAGE;\n\n readonly FORM_NAME_TEXT_CENTER = FORM_NAME_TEXT_CENTER;\n\n readonly FORM_NAME_COLOR_CENTER_RIGHT = FORM_NAME_COLOR_CENTER_RIGHT;\n\n readonly FORM_NAME_IMAGE_URL = FORM_NAME_IMAGE_URL;\n\n readonly FORM_NAME_URL = FORM_NAME_URL;\n\n readonly FORM_NAME_URL_TARGET = FORM_NAME_URL_TARGET;\n\n readonly FORM_NAME_URL_LEFT = FORM_NAME_URL_LEFT;\n\n readonly FORM_NAME_URL_RIGHT = FORM_NAME_URL_RIGHT;\n\n readonly FORM_NAME_URL_CENTER_RIGHT = FORM_NAME_URL_CENTER_RIGHT;\n\n readonly FORM_NAME_COLOR_CENTER_LEFT = FORM_NAME_COLOR_CENTER_LEFT;\n\n readonly FORM_NAME_URL_CENTER_LEFT = FORM_NAME_URL_CENTER_LEFT;\n\n readonly FORM_NAME_IMAGE_MASK = FORM_NAME_IMG_MASK;\n\n readonly FORM_TYPE_IMAGE_MASK_SMALL = FORM_TYPE_IMAGE_MASK_SMALL;\n\n readonly FORM_TYPE_IMAGE_MASK_MEDIUM = FORM_TYPE_IMAGE_MASK_MEDIUM;\n\n readonly FORM_TYPE_IMAGE_MASK_LARGE = FORM_TYPE_IMAGE_MASK_LARGE;\n\n readonly FORM_NAME_IMAGE_LEFT = FORM_NAME_IMAGE_LEFT;\n\n readonly FORM_NAME_IMAGE_LEFT_TOP = FORM_NAME_IMAGE_LEFT_TOP;\n\n readonly FORM_NAME_IMAGE_LEFT_BOTTOM = FORM_NAME_IMAGE_LEFT_BOTTOM;\n\n readonly FORM_NAME_IMAGE_MIDDLE_TOP = FORM_NAME_IMAGE_MIDDLE_TOP;\n\n readonly FORM_NAME_IMAGE_MIDDLE_BOTTOM = FORM_NAME_IMAGE_MIDDLE_BOTTOM;\n\n readonly FORM_NAME_IMAGE_RIGHT = FORM_NAME_IMAGE_RIGHT;\n\n readonly FORM_NAME_BUTTON = FORM_NAME_BUTTON;\n\n readonly FORM_NAME_TEXT = FORM_NAME_TEXT;\n\n readonly FORM_NAME_TEXT_LEFT = FORM_NAME_TEXT_LEFT;\n\n readonly FORM_NAME_TEXT_RIGHT = FORM_NAME_TEXT_RIGHT;\n\n readonly FORM_NAME_BUTTON_TEXT = FORM_NAME_BUTTON_TEXT;\n\n readonly FORM_NAME_COLOR = FORM_NAME_COLOR;\n\n readonly FORM_NAME_BACKGROUND_COLOR = FORM_NAME_BACKGROUND_COLOR;\n\n readonly FORM_NAME_BACKGROUND_COLOR_SECONDARY = FORM_NAME_BACKGROUND_COLOR_SECONDARY;\n\n readonly FORM_NAME_BACKGROUND_COLOR_BUTTON = FORM_NAME_BACKGROUND_COLOR_BUTTON;\n\n readonly FORM_NAME_AMPLIFY_TYPE = FORM_NAME_AMPLIFY_TYPE;\n\n readonly FORM_NAME_COLOR_BUTTON = FORM_NAME_COLOR_BUTTON;\n\n readonly FORM_NAME_COORDINATE_X = FORM_NAME_COORDINATE_X;\n\n readonly FORM_NAME_COORDINATE_Y = FORM_NAME_COORDINATE_Y;\n\n readonly FORM_NAME_ADDRESS = FORM_NAME_ADDRESS;\n\n readonly FORM_NAME_PHONE = FORM_NAME_PHONE;\n\n readonly FORM_NAME_EMAIL = FORM_NAME_EMAIL;\n\n readonly FORM_NAME_ICON_ADDRESS = FORM_NAME_ICON_ADDRESS;\n\n readonly FORM_NAME_ICON_PHONE = FORM_NAME_ICON_PHONE;\n\n readonly FORM_NAME_ICON_EMAIL = FORM_NAME_ICON_EMAIL;\n\n readonly FORM_NAME_FACEBOOK = FORM_NAME_FACEBOOK;\n\n readonly FORM_NAME_TWITTER = FORM_NAME_TWITTER;\n\n readonly FORM_NAME_PINTEREST = FORM_NAME_PINTEREST;\n\n readonly FORM_NAME_INSTAGRAM = FORM_NAME_INSTAGRAM;\n\n readonly FORM_NAME_PLACEHOLDER = FORM_NAME_PLACEHOLDER;\n\n readonly FORM_NAME_SHOW_TITLE = FORM_NAME_SHOW_TITLE;\n\n readonly FORM_NAME_AUTHOR = FORM_NAME_AUTHOR;\n\n readonly FORM_NAME_TEXT_COLOR = FORM_NAME_TEXT_COLOR;\n\n readonly FORM_NAME_SECONDARY_COLOR = FORM_NAME_SECONDARY_COLOR;\n\n readonly FORM_NAME_ICON = FORM_NAME_ICON;\n\n readonly FORM_NAME_PADDING = FORM_NAME_PADDING;\n\n readonly FORM_NAME_ICON_LEFT = FORM_NAME_ICON_LEFT;\n\n readonly FORM_NAME_ICON_MIDDLE_LEFT = FORM_NAME_ICON_MIDDLE_LEFT;\n\n readonly FORM_NAME_ICON_MIDDLE_RIGHT = FORM_NAME_ICON_MIDDLE_RIGHT;\n\n readonly FORM_NAME_ICON_RIGHT = FORM_NAME_ICON_RIGHT;\n\n readonly FORM_NAME_ICON_COLOR = FORM_NAME_ICON_COLOR;\n\n readonly FORM_NAME_ICON_COLOR_LEFT = FORM_NAME_ICON_COLOR_LEFT;\n\n readonly FORM_NAME_ICON_COLOR_MIDDLE_LEFT = FORM_NAME_ICON_COLOR_MIDDLE_LEFT;\n\n readonly FORM_NAME_ICON_COLOR_MIDDLE_RIGHT = FORM_NAME_ICON_COLOR_MIDDLE_RIGHT;\n\n readonly FORM_NAME_ICON_COLOR_RIGHT = FORM_NAME_ICON_COLOR_RIGHT;\n\n readonly FORM_NAME_CONTENT_LEFT = FORM_NAME_CONTENT_LEFT;\n\n readonly FORM_NAME_TITLE_RIGHT = FORM_NAME_TITLE_RIGHT;\n\n readonly FORM_NAME_CONTENT_RIGHT = FORM_NAME_CONTENT_RIGHT;\n\n readonly FORM_NAME_CONTENT_MIDDLE_LEFT = FORM_NAME_CONTENT_MIDDLE_LEFT;\n\n readonly FORM_NAME_PAYMENT_OR_MEDIA = FORM_NAME_PAYMENT_OR_MEDIA;\n\n readonly FORM_NAME_TITLE_MIDDLE_RIGHT = FORM_NAME_TITLE_MIDDLE_RIGHT;\n\n readonly FORM_NAME_CONTENT_MIDDLE_RIGHT = FORM_NAME_CONTENT_MIDDLE_RIGHT;\n\n readonly FORM_NAME_STAR_SECONDARY_COLOR = FORM_NAME_STAR_SECONDARY_COLOR;\n\n readonly FORM_NAME_STAR_COLOR = FORM_NAME_STAR_COLOR;\n\n readonly FORM_NAME_WIDTH = FORM_NAME_WIDTH;\n\n readonly FORM_NAME_IMAGE_WIDTH = FORM_NAME_IMAGE_WIDTH;\n\n readonly FORM_NAME_IMAGE_BOTTOM = FORM_NAME_IMAGE_BOTTOM;\n\n readonly FORM_NAME_DOTS = FORM_NAME_DOTS;\n\n readonly FORM_NAME_HEIGHT = FORM_NAME_HEIGHT;\n\n readonly FORM_NAME_SLIDER = FORM_NAME_SLIDER;\n\n readonly FORM_NAME_BORDER_STYLE = FORM_NAME_BORDER_STYLE;\n\n readonly FORM_NAME_BORDER_COLOR = FORM_NAME_BORDER_COLOR;\n\n readonly FORM_NAME_IMAGE_MIDDLE_LEFT = FORM_NAME_IMAGE_MIDDLE_LEFT;\n\n readonly FORM_NAME_IMAGE_MIDDLE_RIGHT = FORM_NAME_IMAGE_MIDDLE_RIGHT;\n\n readonly FORM_NAME_COLOR_MIDDLE_RIGHT = FORM_NAME_COLOR_MIDDLE_RIGHT;\n\n readonly FORM_NAME_COLOR_MIDDLE_LEFT = FORM_NAME_COLOR_MIDDLE_LEFT;\n\n readonly FORM_NAME_COLOR_RIGHT = FORM_NAME_COLOR_RIGHT;\n\n readonly FORM_NAME_COLOR_LEFT = FORM_NAME_COLOR_LEFT;\n\n readonly FORM_NAME_BUTTON_LEFT = FORM_NAME_BUTTON_LEFT;\n\n readonly FORM_NAME_BUTTON_RIGHT = FORM_NAME_BUTTON_RIGHT;\n\n readonly FORM_NAME_BUTTON_MIDDLE_LEFT = FORM_NAME_BUTTON_MIDDLE_LEFT;\n\n readonly FORM_NAME_BUTTON_MIDDLE_RIGHT = FORM_NAME_BUTTON_MIDDLE_RIGHT;\n\n readonly FORM_NAME_DATE = FORM_NAME_DATE;\n\n readonly FORM_NAME_CONTROL = FORM_NAME_CONTROL;\n\n readonly FORM_NAME_FIRST_STEP = FORM_NAME_FIRST_STEP;\n\n readonly FORM_NAME_MINUTES = FORM_NAME_MINUTES;\n\n readonly FORM_NAME_CONTENT_BOTTOM_LEFT = FORM_NAME_CONTENT_BOTTOM_LEFT;\n\n readonly FORM_NAME_CONTENT_BOTTOM_RIGHT = FORM_NAME_CONTENT_BOTTOM_RIGHT;\n\n readonly FORM_NAME_ICON_BOTTOM_RIGHT = FORM_NAME_ICON_BOTTOM_RIGHT;\n\n readonly FORM_NAME_ICON_BOTTOM_LEFT = FORM_NAME_ICON_BOTTOM_LEFT;\n\n readonly FORM_NAME_ICON_COLOR_BOTTOM_RIGHT = FORM_NAME_ICON_COLOR_BOTTOM_RIGHT;\n\n readonly FORM_NAME_ICON_COLOR_BOTTOM_LEFT = FORM_NAME_ICON_COLOR_BOTTOM_LEFT;\n\n readonly FORM_NAME_HREF = FORM_NAME_HREF;\n\n readonly FORM_NAME_RATINGS_LINK = FORM_NAME_RATINGS_LINK;\n\n readonly FORM_NAME_AUTHOR_NAME = FORM_NAME_AUTHOR_NAME;\n\n readonly FORM_NAME_AUTHOR_TITLE = FORM_NAME_AUTHOR_TITLE;\n\n readonly FORM_NAME_UNDERLINE_COLOR = FORM_NAME_UNDERLINE_COLOR;\n\n readonly FORM_NAME_ELEMENTS = FORM_NAME_ELEMENTS;\n\n readonly FORM_NAME_FAQ = FORM_NAME_FAQ;\n\n readonly FORM_NAME_TEXT_BACKGROUND = FORM_NAME_TEXT_BACKGROUND;\n\n readonly FORM_NAME_TEXT_BACKGROUND_LINK = FORM_NAME_TEXT_BACKGROUND_LINK;\n\n readonly FORM_NAME_SHADOW_COLOR = FORM_NAME_SHADOW_COLOR;\n\n readonly FORM_NAME_OPEN = FORM_NAME_OPEN;\n\n readonly FORM_NAME_ACCORDION = FORM_NAME_ACCORDION;\n\n readonly FORM_NAME_EXTERNAL = FORM_NAME_EXTERNAL;\n\n readonly FORM_NAME_ALIGN_BUTTON = FORM_NAME_ALIGN_BUTTON;\n\n @Input() contents: FormsDto<T>;\n\n name: string;\n\n uuid: string;\n\n forms_data: Array<string>;\n\n hasTooltipFocusedLeftTop = false;\n hasTooltipFocusedLeftBottom = false;\n hasTooltipFocusedRightTop = false;\n hasTooltipFocusedRightBottom = false;\n hasTooltipFocusedMiddleRightTop = false;\n hasTooltipFocusedMiddleRightBottom = false;\n hasTooltipFocusedMiddleLeftTop = false;\n hasTooltipFocusedMiddleLeftBottom = false;\n\n protected contentEventSubscription: Subscription = null;\n\n protected mediaEventSubscription: Subscription = null;\n\n protected componentService;\n\n protected mediaConnectorService;\n\n protected contentService;\n\n protected expectedImagesService;\n\n protected chosenImage = new Subject<MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto>();\n\n protected image = this.chosenImage.asObservable();\n\n get contentBlock(): T {\n return this.contents[this.BASE_BLOCK_CONTENT];\n }\n\n constructor() {\n this.setContentService();\n this.setMediaConnectorService();\n this.setExpectedImagesService();\n }\n\n ngOnInit() {\n this.name = this.componentService.text;\n this.uuid = this.contents.block.uuid;\n\n this.forms_data = this.getFormData();\n\n this.setContentForComponent();\n }\n\n setContentService() {\n this.contentService = InjectorService.Injector.get(ContentService);\n }\n\n setMediaConnectorService() {\n this.mediaConnectorService = InjectorService.Injector.get(MediaConnectorService);\n }\n\n setExpectedImagesService() {\n this.expectedImagesService = InjectorService.Injector.get(ExpectedImagesService);\n }\n\n setComponentService(toInject) {\n this.componentService = InjectorService.Injector.get(toInject);\n }\n\n getMedia(position = '') {\n if (this.mediaEventSubscription !== null) {\n this.mediaEventSubscription.unsubscribe();\n }\n const parameterPosition = position !== '' ? '|' + position : '';\n const mediaDTO = this.expectedImagesService.getExpectedMediaDTO();\n\n this.mediaEventSubscription = this.mediaConnectorService.bindReturnedImage().subscribe(\n () => {\n if (this.mediaConnectorService.uuid.indexOf('|') !== -1) {\n if (this.uuid + parameterPosition === this.mediaConnectorService.uuid) {\n this.chosenImage.next(this.mediaConnectorService.image);\n }\n } else {\n if (this.uuid === this.mediaConnectorService.uuid) {\n this.chosenImage.next(this.mediaConnectorService.image);\n }\n }\n\n this.mediaEventSubscription.unsubscribe();\n },\n () => {\n this.mediaEventSubscription.unsubscribe();\n }\n );\n\n this.mediaConnectorService.askImage(this.uuid + parameterPosition, mediaDTO);\n }\n\n setThisContentForComponent(key, value) {\n const content = this.contentService.getContentByUUID(this.uuid);\n content.forms.forEach((v, k) => {\n if (v.id === key) {\n this.contents.forms[k].value = value;\n }\n });\n }\n\n setContentForComponent() {\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n content.forms.forEach((v) => {\n this.forms_data.forEach((form) => {\n if (v.id === form) {\n this.contents.block[form] = v.value;\n }\n });\n });\n }\n });\n }\n\n getFormData() {\n const formData = [];\n this.contents.forms.forEach((v) => {\n formData.push(v.id);\n });\n\n return formData;\n }\n\n persist() {\n this.contentService.updateByUUID(this.uuid, this.contents);\n }\n\n checkQuillToolTip(key, event) {\n this[key] = event;\n }\n\n ngOnDestroy(): void {\n if (this.contentEventSubscription) {\n this.contentEventSubscription.unsubscribe();\n }\n if (this.mediaEventSubscription) {\n this.mediaEventSubscription.unsubscribe();\n }\n if (this.chosenImage) {\n this.chosenImage.unsubscribe();\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { SlidersFullpageService } from '../../../services/blocks/sliders/sliders-fullpage.service';\nimport { SlidersFullpageDto } from '../../../dtos/blocks/sliders/sliders-fullpage.dto';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH, FORM_NAME_SLIDER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: SlidersFullpageService.selector(),\n templateUrl: './slider-fullpage.component.html'\n})\nexport class SliderFullpageComponent extends StructuresComponent<SlidersFullpageDto> implements OnInit, OnDestroy {\n selectedTab: number | null = null;\n\n showEmptyImage = true;\n\n selectedKey = '';\n\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(SlidersFullpageService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock.slider.length) {\n this.showEmptyImage = false;\n this.selectedTab = 0;\n }\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else {\n this.addASliderWithMedia(media);\n }\n });\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n showSlide(key) {\n if (this.selectedTab === key && !this.showEmptyImage) {\n return;\n }\n\n this.showEmptyImage = false;\n this.selectedTab = key;\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.slider.push(imageMediaDto);\n\n this.selectedTab = this.contentBlock.slider.length - 1;\n this.showEmptyImage = false;\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock.slider[this.selectedKey];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock.slider[this.selectedKey] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock.slider;\n delete arrayToShorten[key];\n\n this.contentBlock.slider = arrayToShorten.filter(function(item) {\n return item !== undefined;\n });\n\n if (this.contentBlock.slider.length > 0 && this.showEmptyImage === false) {\n this.selectedTab = 0;\n } else {\n this.selectedTab = null;\n this.showEmptyImage = true;\n }\n\n this.persist();\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock.slider, event.previousIndex, event.currentIndex);\n this.selectedTab = event.currentIndex;\n this.persist();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, isDevMode, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { ContentService } from '../../../services/utils/content.service';\nimport { ConfigService } from '../../../services/utils/config.service';\nimport { Subscription } from 'rxjs';\nimport { WiziBlockService } from '../../../services/wizi-block.service';\n\n@Component({\n selector: 'wb-structure-tools',\n templateUrl: './structure-tools.component.html',\n})\nexport class StructureToolsComponent implements OnInit, OnDestroy {\n @Input() uuid: string;\n\n @Input() dynamicHiddenStructure = false;\n\n @Input() isHover = false;\n\n @Input() isAlwaysHover: boolean;\n\n @ViewChild('deleteButton') deleteButton: ElementRef;\n\n hideConfig = false;\n\n name: string;\n\n currentLength: number;\n\n currentIndex: number;\n\n blockIsHidden = false;\n\n @Output() configIsActivated = new EventEmitter<any>();\n\n private contentEventSubscription: Subscription = null;\n\n constructor(private wiziBlockService: WiziBlockService, private contentService: ContentService, private configService: ConfigService) {}\n\n ngOnInit() {\n console.log('----- IS ALWAYS ------');\n console.log(this.isAlwaysHover);\n console.log('----- / IS ALWAYS ------');\n this.checkOnContents();\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n this.checkOnContents();\n });\n\n const thisContent = this.contentService.getContentByUUID(this.uuid);\n if (typeof thisContent.forms !== typeof undefined) {\n for (const item of thisContent.forms) {\n if (item.id === 'hide_block' && typeof item.value !== typeof undefined) {\n this.blockIsHidden = true;\n }\n }\n }\n this.hideConfig = thisContent.forms.length === 0;\n this.wiziBlockService.getBlocksService().forEach((service) => {\n if (service.type() === thisContent.type) {\n this.name = service.text;\n }\n });\n }\n\n checkOnContents() {\n const contents = this.contentService.contents;\n\n this.currentLength = this.contentService.contents.length;\n\n contents.forEach((v, k) => {\n if (v.block.uuid === this.uuid) {\n this.currentIndex = k;\n }\n });\n }\n\n duplicateThis(e) {\n e.preventDefault();\n this.configService.config = null;\n this.contentService.duplicateContentByUUID(this.uuid);\n }\n\n configThis(e) {\n e.preventDefault();\n this.configIsActivated.emit(true);\n this.isAlwaysHover = true;\n this.configService.config = this.contentService.getContentByUUID(this.uuid);\n }\n\n removeThis($event) {\n if (isDevMode() || $event > 1200) {\n this.contentService.removeContentByUUID(this.uuid);\n if (this.configService.config !== null && this.configService.config.block.uuid === this.uuid) {\n this.configService.config = null;\n }\n }\n }\n\n goDown(e) {\n e.preventDefault();\n\n if (this.currentIndex === this.currentLength - 1) {\n return;\n }\n\n this.contentService.reorderContents(this.currentIndex, this.currentIndex + 1);\n }\n\n goUp(e) {\n e.preventDefault();\n\n if (this.currentIndex === 0) {\n return;\n }\n\n this.contentService.reorderContents(this.currentIndex, this.currentIndex - 1);\n }\n\n ngOnDestroy(): void {\n this.contentEventSubscription.unsubscribe();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeUrl'\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n transform(url) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ConfigService } from '../../../services/utils/config.service';\n\n@Pipe({\n name: 'safeStyle'\n})\nexport class SafeStylePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer, private configService: ConfigService) {}\n\n transform(style) {\n if (!this.configService.isInDev) {\n return style;\n }\n\n return this.sanitizer.bypassSecurityTrustStyle(style);\n }\n}\n","export const FD_TYPE_SHORT_ANSWER = 'short_answer';\nexport const FD_TYPE_LONG_ANSWER = 'long_answer';\nexport const FD_TYPE_DROPDOWN = 'dropdown';\nexport const FD_TYPE_RADIO = 'radio';\nexport const FD_TYPE_CHECKBOX = 'checkbox';\nexport const FD_TYPE_FILE_DOWNLOAD = 'file_download';\nexport const FD_TYPE_DATE = 'date';\nexport const FD_TYPE_MAIL = 'mail';\nexport const FD_TYPE_WEBSITE = 'website';\n\nexport declare class FormDetailDto {\n id: number;\n title: string;\n form_id: number;\n required: boolean;\n helptext: string;\n type: string;\n active: boolean;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n FD_TYPE_CHECKBOX,\n FD_TYPE_DATE,\n FD_TYPE_DROPDOWN,\n FD_TYPE_FILE_DOWNLOAD,\n FD_TYPE_LONG_ANSWER,\n FD_TYPE_MAIL,\n FD_TYPE_RADIO,\n FD_TYPE_SHORT_ANSWER,\n FD_TYPE_WEBSITE,\n} from '../../../dtos/apis/forms/form-detail.dto';\n\n@Pipe({\n name: 'answerPipe',\n})\nexport class AnswerTypePipe implements PipeTransform {\n transform(text) {\n let translate = 'wb.shared.pipes.answerPipe.1';\n\n switch (text) {\n case FD_TYPE_SHORT_ANSWER:\n translate = 'wb.shared.pipes.answerPipe.2';\n break;\n case FD_TYPE_LONG_ANSWER:\n translate = 'wb.shared.pipes.answerPipe.3';\n break;\n case FD_TYPE_DROPDOWN:\n translate = 'wb.shared.pipes.answerPipe.4';\n break;\n case FD_TYPE_RADIO:\n translate = 'wb.shared.pipes.answerPipe.5';\n break;\n case FD_TYPE_CHECKBOX:\n translate = 'wb.shared.pipes.answerPipe.6';\n break;\n case FD_TYPE_FILE_DOWNLOAD:\n translate = 'wb.shared.pipes.answerPipe.7';\n break;\n case FD_TYPE_DATE:\n translate = 'wb.shared.pipes.answerPipe.8';\n break;\n case FD_TYPE_MAIL:\n translate = 'wb.shared.pipes.answerPipe.9';\n break;\n case FD_TYPE_WEBSITE:\n translate = 'wb.shared.pipes.answerPipe.10';\n break;\n }\n\n return translate;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TinyColor } from '@ctrl/tinycolor';\n\n@Pipe({\n name: 'tinyColor'\n})\nexport class TinyColorPipe implements PipeTransform {\n transform(currentColor) {\n const brightness = new TinyColor(currentColor).getBrightness();\n\n if (brightness > 140) {\n return '#23272b';\n } else {\n return '#fff';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'arrayNumber'\n})\nexport class ArrayNumberPipe implements PipeTransform {\n transform(value) {\n return Array(value).fill(4);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'evenodd' })\nexport class EvenOddPipe implements PipeTransform {\n transform(value: any[], filter: string) {\n if (!value || (filter !== 'even' && filter !== 'odd')) {\n return value;\n }\n return value.filter((item, idx) => (filter === 'even' ? idx % 2 === 1 : idx % 2 === 0));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'addZeroForTimer'\n})\nexport class AddZeroForTimerPipe implements PipeTransform {\n transform(value) {\n if (value < 10) {\n return '0' + value;\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'wbStripTags' })\nexport class StripTagsPipe implements PipeTransform {\n transform(text: string, ...allowedTags: any[]): string {\n text = text.replace(/\\\\(.)/gm, '$1');\n\n return allowedTags.length > 0\n ? text.replace(new RegExp(`<(?!\\/?(${allowedTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\n : text.replace(/<(?:.|\\s)*?>/g, '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'checkPaymentValue'\n})\nexport class CheckPaymentValuePipe implements PipeTransform {\n transform(link, value) {\n if (!value || !value.payment_link) {\n return false;\n }\n\n return link === value.payment_link.replace('W_CB-', 'CB-') || link === value.payment_link;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'imgPath',\n})\nexport class ImgPathPipe implements PipeTransform {\n private imgComponentsPath = 'assets/blocks/images/components/';\n\n constructor(private translateService: TranslateService) {}\n\n transform(imgName: string): string {\n imgName = imgName.replace(/^\\:lang/, this.translateService.currentLang);\n return this.imgComponentsPath + imgName;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { SafeUrlPipe } from './safe-url/safe-url.pipe';\nimport { SafeStylePipe } from './safe-style/safe-style.pipe';\nimport { AnswerTypePipe } from './answer-type/answer-type.pipe';\nimport { TinyColorPipe } from './tiny-color/tiny-color.pipe';\nimport { ArrayNumberPipe } from './array-number/array-number.pipe';\nimport { EvenOddPipe } from './even-odd/even-odd.pipe';\nimport { AddZeroForTimerPipe } from './add-zero-for-timer/add-zero-for-timer.pipe';\nimport { StripTagsPipe } from './strip-tags/strip-tags.pipe';\nimport { CheckPaymentValuePipe } from './check-payment-value/check-payment-value.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImgPathPipe } from './img-path/img-path.pipe';\n\nconst components = [\n SafeUrlPipe,\n SafeStylePipe,\n AddZeroForTimerPipe,\n AnswerTypePipe,\n TinyColorPipe,\n ArrayNumberPipe,\n CheckPaymentValuePipe,\n EvenOddPipe,\n StripTagsPipe,\n ImgPathPipe,\n];\n\n@NgModule({\n imports: [CommonModule, FormsModule, TranslateModule.forChild()],\n entryComponents: [],\n declarations: components,\n exports: components,\n})\nexport class SharedPipesModule {}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wb-structure-config-input',\n templateUrl: './structure-config-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StructureConfigInputComponent),\n multi: true,\n },\n ],\n})\nexport class StructureConfigInputComponent implements OnInit, ControlValueAccessor {\n @Input() label: string;\n @Input() type: string;\n @Input() placeholder = '';\n @Input() resizeMiddleScreen = false;\n\n id = uuid();\n\n value = '';\n\n /**\n * Invoked when the model has been changed\n */\n onChange: (_: any) => void = (_: any) => {};\n\n /**\n * Invoked when the model has been touched\n */\n onTouched: () => void = () => {};\n\n constructor() {}\n\n ngOnInit() {}\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.updateChanges();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wb-structure-config-checkbox',\n templateUrl: './structure-config-checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StructureConfigCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class StructureConfigCheckboxComponent implements OnInit, ControlValueAccessor {\n @Input() label: string;\n @Input() on: string | boolean;\n @Input() off: string | boolean;\n\n id = uuid();\n\n value: string | boolean;\n\n /**\n * Invoked when the model has been changed\n */\n onChange: (_: any) => void = (_: any) => {};\n\n /**\n * Invoked when the model has been touched\n */\n onTouched: () => void = () => {};\n\n ngOnInit() {\n if (typeof this.on === 'undefined') {\n this.on = true;\n }\n if (typeof this.off === 'undefined') {\n this.off = false;\n }\n }\n\n updateChanges($event = null) {\n if ($event !== null) {\n this.value = $event.target.checked ? this.on : this.off;\n }\n\n this.onChange(this.value);\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.updateChanges();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","import { QuillHtmlLogger } from './logger';\n\n// Adapted FROM jsfiddle here: https://jsfiddle.net/buksy/rxucg1gd/\nexport function FormatHTMLStringIndentation(code: string, logger: QuillHtmlLogger) {\n 'use strict';\n let stripWhiteSpaces = true;\n let stripEmptyLines = true;\n const whitespace = ' '.repeat(2); // Default indenting 4 whitespaces\n let currentIndent = 0;\n const newlineChar = '\\n';\n let prevChar = null;\n let char = null;\n let nextChar = null;\n\n let result = '';\n for (let pos = 0; pos <= code.length; pos++) {\n prevChar = char;\n char = code.substr(pos, 1);\n nextChar = code.substr(pos + 1, 1);\n\n const isBrTag = code.substr(pos, 4) === '<br>';\n const isOpeningTag = char === '<' && nextChar !== '/' && !isBrTag;\n const isClosingTag = char === '<' && nextChar === '/' && !isBrTag;\n const isTagEnd = prevChar === '>' && char !== '<' && currentIndent > 0;\n const isTagNext =\n !isBrTag && !isOpeningTag && !isClosingTag && isTagEnd && code.substr(pos, code.substr(pos).indexOf('<')).trim() === '';\n if (isBrTag) {\n // If opening tag, add newline character and indention\n result += newlineChar;\n currentIndent--;\n pos += 4;\n }\n if (isOpeningTag) {\n // If opening tag, add newline character and indention\n result += newlineChar + whitespace.repeat(currentIndent);\n currentIndent++;\n }\n // if Closing tag, add newline and indention\n else if (isClosingTag) {\n // If there're more closing tags than opening\n if (--currentIndent < 0) currentIndent = 0;\n result += newlineChar + whitespace.repeat(currentIndent);\n }\n // remove multiple whitespaces\n else if (stripWhiteSpaces === true && char === ' ' && nextChar === ' ') char = '';\n // remove empty lines\n else if (stripEmptyLines === true && char === newlineChar) {\n //debugger;\n if (code.substr(pos, code.substr(pos).indexOf('<')).trim() === '') char = '';\n }\n if (isTagEnd && !isTagNext) {\n result += newlineChar + whitespace.repeat(currentIndent);\n }\n\n result += char;\n }\n logger.log('formatHTML', {\n before: code,\n after: result,\n });\n return result;\n}\n","import { QuillHtmlLogger } from './logger';\nimport Quill from 'quill';\nimport { QuillHtmlEditButtonOptions } from './options';\nimport { FormatHTMLStringIndentation } from './html-formatter';\nimport * as monaco from 'monaco-editor';\n\nfunction $create(elName: string) {\n return document.createElement(elName);\n}\nfunction $setAttr(el: HTMLElement, key: string, value: string) {\n return el.setAttribute(key, value);\n}\n\nconst Logger = new QuillHtmlLogger();\n\nfunction launchPopupEditor(quill: Quill & any, options: any, saveCallback: (html: string) => void) {\n const htmlFromEditor = quill.container.querySelector('.ql-editor').innerHTML;\n const popupContainer = $create('div');\n const overlayContainer = $create('div');\n const msg = options.msg || 'Edit HTML here, when you click \"OK\" the quill editor\\'s contents will be replaced';\n const cancelText = options.cancelText || 'Cancel';\n const okText = options.okText || 'Ok';\n const closeOnClickOverlay = options.closeOnClickOverlay !== false;\n\n $setAttr(overlayContainer, 'class', 'ql-html-overlayContainer');\n $setAttr(popupContainer, 'class', 'ql-html-popupContainer');\n const popupTitle = $create('span');\n $setAttr(popupTitle, 'class', 'ql-html-popupTitle');\n popupTitle.innerText = msg;\n const textContainer = $create('div');\n textContainer.appendChild(popupTitle);\n $setAttr(textContainer, 'class', 'ql-html-textContainer');\n const htmlEditor = $create('div');\n $setAttr(htmlEditor, 'class', 'ql-html-textArea');\n const buttonCancel = $create('button');\n buttonCancel.innerHTML = cancelText;\n $setAttr(buttonCancel, 'class', 'ql-html-buttonCancel');\n const buttonOk = $create('button');\n buttonOk.innerHTML = okText;\n $setAttr(buttonOk, 'class', 'ql-html-buttonOk');\n const buttonGroup = $create('div');\n $setAttr(buttonGroup, 'class', 'ql-html-buttonGroup');\n const prependSelector = document.querySelector(options.prependSelector);\n\n buttonGroup.appendChild(buttonCancel);\n buttonGroup.appendChild(buttonOk);\n textContainer.appendChild(htmlEditor);\n textContainer.appendChild(buttonGroup);\n popupContainer.appendChild(textContainer);\n overlayContainer.appendChild(popupContainer);\n\n if (prependSelector) {\n prependSelector.prepend(overlayContainer);\n } else {\n document.body.appendChild(overlayContainer);\n }\n\n const modules = options && options.editorModules;\n const editor = monaco.editor.create(htmlEditor, {\n value: FormatHTMLStringIndentation(htmlFromEditor, Logger),\n language: 'html',\n });\n buttonCancel.onclick = function () {\n if (prependSelector) {\n prependSelector.removeChild(overlayContainer);\n } else {\n document.body.removeChild(overlayContainer);\n }\n };\n\n if (closeOnClickOverlay) {\n overlayContainer.onclick = buttonCancel.onclick;\n }\n\n popupContainer.onclick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n buttonOk.onclick = function () {\n const value = editor.getValue();\n saveCallback(value);\n if (prependSelector) {\n prependSelector.removeChild(overlayContainer);\n } else {\n document.body.removeChild(overlayContainer);\n }\n };\n}\n\nclass htmlEditButton {\n constructor(quill: Quill, optionsInput: QuillHtmlEditButtonOptions) {\n const options = optionsInput || {};\n const toolbarModule = quill.getModule('toolbar');\n if (!toolbarModule) {\n throw new Error('quill.htmlEditButton requires the \"toolbar\" module to be included too');\n }\n this.registerDivModule();\n const toolbarEl = toolbarModule.container;\n const buttonContainer = $create('span');\n $setAttr(buttonContainer, 'class', 'ql-formats');\n const button = $create('button') as HTMLButtonElement;\n button.innerHTML = '<i class=\"fas fa-code\"></i>';\n button.title = options['buttonTitle'] || '';\n button.type = 'button';\n const onSave = (html: string) => {\n quill.clipboard.dangerouslyPasteHTML(html);\n };\n button.onclick = function (e) {\n e.preventDefault();\n launchPopupEditor(quill, options, onSave);\n };\n buttonContainer.appendChild(button);\n toolbarEl.appendChild(buttonContainer);\n }\n\n registerDivModule() {\n const blotsBlocks = 'blots/block';\n const Block = Quill.import(blotsBlocks);\n class Div extends Block {}\n Div['tagName'] = 'div';\n Div['blotName'] = 'div';\n Div['allowedChildren'] = Block.allowedChildren;\n Div['allowedChildren'].push(Block);\n Quill.register(Div);\n }\n}\n(window as any)['htmlEditButton'] = htmlEditButton;\nexport default htmlEditButton;\nexport { htmlEditButton };\n","export class QuillHtmlLogger {\n private debug = false;\n\n setDebug(debug: boolean) {\n this.debug = debug;\n }\n\n prefixString() {\n return `</> quill-html-edit-button: `;\n }\n get log() {\n if (!this.debug) {\n return (...args: any) => {};\n }\n const boundLogFn = console.log.bind(console, this.prefixString());\n return boundLogFn;\n }\n}\n","import * as QuillNamespace from 'quill';\n\nconst Quill: any = QuillNamespace;\nconst linkPath = 'formats/link';\nlet Link = Quill.import(linkPath);\n\nexport class CustomLink extends Link {\n static create(content: any) {\n const node = super.create(content.value);\n if (!content.crypted) {\n node.setAttribute('href', this.sanitize(content.value));\n node.setAttribute('target', '_blank');\n if (content.target) {\n node.removeAttribute('target');\n }\n } else {\n node.setAttribute('data-htap', btoa(this.sanitize(content.value)));\n node.setAttribute('data-knalb', true);\n if (content.target) {\n node.removeAttribute('data-knalb');\n }\n node.removeAttribute('target');\n node.removeAttribute('href');\n node.removeAttribute('rel');\n }\n return node;\n }\n\n static formats(domNode: any) {\n return {\n value: domNode.getAttribute('href'),\n target: domNode.getAttribute('target') === null,\n crypted: domNode.getAttribute('data-htap'),\n };\n }\n}\n","import * as QuillNamespace from 'quill';\n\nconst Quill: any = QuillNamespace;\nconst linkPath = 'blots/block';\nconst Crypted = Quill.import(linkPath);\n\nexport class CryptedLink extends Crypted {\n static create(content: any) {\n const node = super.create(content.value);\n node.setAttribute('data-htap', btoa(content.value));\n node.setAttribute('data-knalb', true);\n if (content.target) {\n node.removeAttribute('data-knalb');\n }\n return node;\n }\n}\n","import * as QuillNamespace from 'quill';\n\nconst Quill: any = QuillNamespace;\nconst iconsPath = 'ui/icons';\n\nexport const icons = Quill.import(iconsPath);\n","import * as QuillNamespace from 'quill';\n\nconst Quill: any = QuillNamespace;\nconst breakPath = 'blots/break';\nconst Break = Quill.import(breakPath);\nconst embedPath = 'blots/block/embed';\nconst Embed = Quill.import(embedPath);\n\nexport class LineBreak extends Break {\n length() {\n return 1;\n }\n value() {\n return '\\n';\n }\n\n insertInto(parent: any, ref: any) {\n Embed.prototype.insertInto.call(this, parent, ref);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as QuillNamespace from 'quill';\nimport htmlEditButton from '../../dtos/utils/quill-html-editor/quill.htmlEditButton';\nimport { Subject } from 'rxjs';\nimport { CustomLink } from '../../dtos/utils/quill/custom-link.dto';\nimport { CryptedLink } from '../../dtos/utils/quill/crypted-link.dto';\nimport { icons } from '../../dtos/utils/quill/icon.dto';\nimport { LineBreak } from '../../dtos/utils/quill/line-break.dto';\n\nexport const CUSTOM_UPPERCASE_NAME = 'uppercase';\nexport const CUSTOM_LINK_NAME = 'customLink';\nexport const CUSTOM_LINK_CRYPTED = 'data-htap';\nconst Quill: any = QuillNamespace;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuillService {\n alreadyInit = false;\n\n private tooltipFocusedSource = new Subject<string>();\n\n private tooltipFocusedDone = this.tooltipFocusedSource.asObservable();\n\n bindTooltipFocus() {\n return this.tooltipFocusedDone;\n }\n\n setFocused(uuid: string) {\n this.tooltipFocusedSource.next(uuid);\n }\n\n init() {\n if (!this.alreadyInit) {\n this.handleCustomUppercase();\n this.handleCustomLink();\n this.handleSourceCode();\n this.handleCryptedLink();\n this.handleLinesBreak();\n this.handleCustomIcons();\n\n this.alreadyInit = true;\n }\n }\n\n private handleLinesBreak() {\n LineBreak.blotName = 'break';\n LineBreak.tagName = 'BR';\n Quill.register(LineBreak);\n }\n\n private handleSourceCode() {\n Quill.register('modules/htmlEditButton', htmlEditButton);\n }\n\n private handleCustomLink() {\n CustomLink.blotName = CUSTOM_LINK_NAME;\n CustomLink.tagName = 'a';\n Quill.register(CustomLink);\n }\n\n private handleCryptedLink() {\n CryptedLink.blotName = CUSTOM_LINK_CRYPTED;\n CryptedLink.tagName = '*';\n Quill.register(CryptedLink);\n }\n\n private handleCustomUppercase() {\n const parchment = 'parchment';\n const Parchment = Quill.import(parchment);\n\n const UppercaseCustomClass = new Parchment.Attributor.Class('uppercase', 'ql-custom', {\n scope: Parchment.Scope.INLINE,\n });\n UppercaseCustomClass.blotName = CUSTOM_UPPERCASE_NAME;\n Quill.register(UppercaseCustomClass);\n }\n\n private handleCustomIcons() {\n icons[CUSTOM_LINK_NAME] = '<i class=\"far fa-link\"></i>';\n icons[CUSTOM_UPPERCASE_NAME] = '<i class=\"fas fa-font\"></i>';\n }\n}\n","import * as QuillNamespace from 'quill';\n\nconst Quill: any = QuillNamespace;\nconst deltaPath = 'delta';\n\nexport const Delta = Quill.import(deltaPath);\n","import { Component, EventEmitter, Input, NgZone, OnInit, Output } from '@angular/core';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { CUSTOM_LINK_NAME, CUSTOM_UPPERCASE_NAME, CUSTOM_LINK_CRYPTED, QuillService } from '../../../services/utils/quill.service';\nimport { v4 as uuid } from 'uuid';\nimport * as QuillNamespace from 'quill';\nimport { Delta } from '../../../dtos/utils/quill/delta.dto';\nimport { TranslateService } from '@ngx-translate/core';\n\nconst Quill: any = QuillNamespace;\n\n@Component({\n selector: 'wb-quill',\n templateUrl: './quill.component.html',\n})\nexport class QuillComponent implements OnInit {\n @Output() contentChange = new EventEmitter();\n\n @Output() isTooltipFocused = new EventEmitter<boolean>();\n\n @Output() tooltipLostFocus = new EventEmitter<boolean>();\n\n @Input() content = '';\n\n @Input() offset = false;\n\n @Input() toolbar = [\n ['bold', 'italic', 'underline', 'strike', CUSTOM_UPPERCASE_NAME],\n ['blockquote'],\n\n [{ list: 'ordered' }, { list: 'bullet' }],\n [{ script: 'sub' }, { script: 'super' }],\n [{ indent: '-1' }, { indent: '+1' }],\n [{ size: ['small', false, 'large', 'huge'] }],\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\n [\n {\n color: [\n '#000000',\n '#e60000',\n '#ff9900',\n '#ffff00',\n '#008a00',\n '#0066cc',\n '#9933ff',\n '#ffffff',\n '#facccc',\n '#ffebcc',\n '#ffffcc',\n '#cce8cc',\n '#cce0f5',\n '#ebd6ff',\n '#bbbbbb',\n '#f06666',\n '#ffc266',\n '#ffff66',\n '#66b966',\n '#66a3e0',\n '#c285ff',\n '#888888',\n '#a10000',\n '#b26b00',\n '#b2b200',\n '#006100',\n '#0047b2',\n '#6b24b2',\n '#444444',\n '#5c0000',\n '#663d00',\n '#666600',\n '#003700',\n '#002966',\n '#3d1466',\n '#ff9901',\n ],\n },\n { background: [] },\n ],\n [{ align: [] }],\n [CUSTOM_LINK_NAME],\n [CUSTOM_LINK_CRYPTED],\n ['clean'],\n ];\n\n @Input()\n set color(value: any) {\n this._color = value;\n this.colorTint = new TinyColor(value).isLight();\n }\n\n @Input() placeholder: string = this.translateService.instant('wb.shared.components.quill.1');\n\n _color: any;\n\n tmpContent = '';\n\n colorTint = false;\n\n openConfig = false;\n\n sourceCode = false;\n\n sourceCodeValue = '';\n\n currentEditor: any;\n\n linkConfig = '';\n\n linkStyle = '';\n\n linkAlreadyExist: boolean;\n\n checked = false;\n\n crypted = false;\n\n currentToolTip: any;\n\n editor: any;\n\n modules: any;\n\n uuid = uuid();\n\n constructor(private ngZone: NgZone, private quillService: QuillService, private translateService: TranslateService) {\n this.quillService.init();\n }\n\n ngOnInit(): void {\n this.handleDefaultContentTranslation();\n this.modules = {\n syntax: false,\n htmlEditButton: {},\n toolbar: {\n container: this.toolbar,\n handlers: {\n [CUSTOM_LINK_NAME]: this.addLink.bind(this),\n [CUSTOM_LINK_CRYPTED]: this.addLink.bind(this),\n [CUSTOM_UPPERCASE_NAME]: this.addUpperCase.bind(this),\n },\n },\n clipboard: {\n matchers: [['BR', this.lineBreakMatcher]],\n matchVisual: false,\n },\n keyboard: {\n bindings: {\n linebreak: {\n key: 13,\n shiftKey: true,\n handler: (range: any) => {\n // Handle line breaks with shift + enter\n let currentLeaf = this.editor.getLeaf(range.index)[0];\n let nextLeaf = this.editor.getLeaf(range.index + 1)[0];\n\n this.editor.insertEmbed(range.index, 'break', true, 'user');\n\n // Insert a second break if:\n // At the end of the editor, OR next leaf has a different parent (<p>)\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.editor.insertEmbed(range.index, 'break', true, 'user');\n }\n\n // Now that we've inserted a line break, move the cursor forward\n this.editor.setSelection(range.index + 1, Quill.sources.SILENT);\n },\n },\n },\n },\n };\n\n this.quillService.bindTooltipFocus().subscribe((id) => {\n this.isTooltipFocused.emit(false);\n if (id === this.uuid) {\n this.isTooltipFocused.emit(true);\n }\n });\n }\n\n handleDefaultContentTranslation() {\n this.tmpContent = /^wb\\./.test(this.content) ? this.translateService.instant(this.content) : this.content;\n }\n\n contentChanged(event) {\n if (this.editor) {\n if (this.isSetDefaultTextColorAction(event.delta)) {\n this.setTextBlackColor();\n return;\n }\n\n this.content = this.editor.root.innerHTML;\n if (this.isEmpty(this.content)) {\n this.content = '';\n }\n\n this.contentChange.emit(this.content);\n }\n }\n\n editorLoaded(e: any) {\n this.editor = e;\n this.setEventListener();\n }\n\n addUpperCase(value: any) {\n if (!value) {\n this.editor.format(CUSTOM_UPPERCASE_NAME, false);\n } else {\n this.editor.format(CUSTOM_UPPERCASE_NAME, 'uppercase');\n }\n }\n\n addLink(value: any) {\n this.linkAlreadyExist = false;\n if (!value) {\n this.retrieveExistingLink();\n }\n setTimeout(() => {\n if (!this.currentToolTip) {\n console.warn('No parent element');\n } else {\n this.ngZone.run(() => {\n let leftStyle = this.currentToolTip.style.left;\n let widthStyle = this.currentToolTip.style.width;\n const topStyle = this.currentToolTip.style.top;\n\n if (this.offset && widthStyle.replace('px', '') < 500) {\n const movedStyle = (520 - parseInt(widthStyle.replace('px', ''), 10)) / 2;\n widthStyle = '520px';\n leftStyle = parseInt(leftStyle.replace('px', ''), 10) - movedStyle + 'px';\n }\n\n this.linkStyle =\n 'height:' +\n this.currentToolTip.clientHeight +\n 'px; width:' +\n widthStyle +\n ';left:' +\n leftStyle +\n ';top:' +\n topStyle;\n this.openConfig = true;\n this.currentEditor = this.editor;\n });\n }\n }, 100);\n }\n\n setEventListener() {\n const currentTool = document.querySelectorAll('.ql-tooltip');\n currentTool.forEach((element) => {\n element.addEventListener('click', (event: any) => {\n this.currentToolTip = event.target.closest('.ql-tooltip');\n });\n });\n }\n\n validThisUrlOnEnter(e: any) {\n if (e.keyCode === 13) {\n this.validThisUrl();\n }\n }\n\n validThisUrl() {\n if (this.currentEditor) {\n // Reset the link, avoid href = [Object Object]\n if (this.linkAlreadyExist) {\n this.removeLink();\n }\n this.currentEditor.format(CUSTOM_LINK_NAME, { target: !this.checked, value: this.linkConfig, crypted: this.crypted });\n }\n this.closeUrlConfig();\n }\n\n closeUrlConfig() {\n this.openConfig = false;\n this.linkConfig = '';\n this.checked = false;\n }\n\n isEmpty(content: any) {\n const commentText = content.trim();\n const re = /^<[ph0-9]+>(<br>|<br\\/>|<br\\s\\/>|\\s+|)<\\/[ph0-9]+>$/gm;\n return re.test(commentText);\n }\n\n focusThis(event: any) {\n this.editor = event.editor;\n this.quillService.setFocused(this.uuid);\n }\n\n onFocusLost() {\n this.tooltipLostFocus.emit(true);\n }\n\n retrieveExistingLink() {\n try {\n const linkFormat = this.editor.getFormat()[CUSTOM_LINK_NAME];\n if (!linkFormat.target) {\n this.checked = true;\n }\n this.linkConfig = linkFormat.crypted ? atob(linkFormat.crypted) : linkFormat.value ? linkFormat.value : linkFormat[0].value;\n this.linkAlreadyExist = true;\n } catch (error) {\n return;\n }\n }\n\n onRemoveLink() {\n this.removeLink();\n }\n\n removeLink() {\n this.currentEditor.format(CUSTOM_LINK_NAME);\n }\n\n isSetDefaultTextColorAction(delta: any) {\n for (const ope of delta.ops) {\n if (ope.attributes && ope.attributes.color === '#ff9901') {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Quill has the black color by default.\n * Adding black color avoid hidding text in the front (when the default color text in the front is white)\n */\n setTextBlackColor() {\n this.editor.format('color', false);\n }\n\n private lineBreakMatcher() {\n var newDelta = new Delta();\n newDelta.insert({ break: '' });\n return newDelta;\n }\n}\n","import { Directive, AfterViewInit, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[wbAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit {\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.el.nativeElement.focus();\n }\n}\n","import { Directive, ElementRef, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ConfigService } from '../../../services/utils/config.service';\nimport { CUSTOM_LINK_NAME } from '../../../services/utils/quill.service';\n\n@Directive({\n selector: '[wbAutoHide]',\n})\nexport class AutoHideDirective implements AfterViewInit {\n @Input() triggerElement: string = 'ql-' + CUSTOM_LINK_NAME;\n @Input() forceOn: Array<string> = null;\n subscription: Subscription;\n\n constructor(private _elementRef: ElementRef, private configService: ConfigService) {}\n\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n ngAfterViewInit(): void {\n this.subscription = this.configService.documentEvent().subscribe((targetElement: Element) => {\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n const classNameFromElement = targetElement.getAttribute('class');\n\n if (!clickedInside && (classNameFromElement === null || !classNameFromElement.includes(this.triggerElement))) {\n this.clickOutside.emit(null);\n }\n\n if (this.forceOn != null && classNameFromElement !== null) {\n let needToClose = true;\n this.forceOn.forEach((v) => {\n if (!classNameFromElement.includes(v)) {\n needToClose = false;\n }\n });\n if (needToClose) {\n this.clickOutside.emit(null);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../forms/forms.dto';\n\nexport class MediaWidthHeightDto {\n [FORM_NAME_IMAGE_URL]: string;\n [FORM_NAME_IMAGE_WIDTH]: string;\n [FORM_NAME_IMAGE_HEIGHT]: string;\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, HostListener } from '@angular/core';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { ExpectedImagesService } from '../../../services/utils/expected-images.service';\n\n@Directive({\n selector: '[wbGetSizeImageDirective]'\n})\nexport class GetSizeImageDirective implements OnChanges {\n @Input() urlToParse: string;\n\n @Input() dimensions: string;\n\n @HostListener('click')\n setExpectedSizes() {\n this.expectedImagesService.setExpectedImgSizes(this.dimensions);\n }\n\n @Output() onUpdate = new EventEmitter<MediaWidthHeightDto>();\n\n constructor(private el: ElementRef, private expectedImagesService: ExpectedImagesService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.urlToParse) {\n const img = new Image();\n img.onload = (e: any) => {\n const mediaWidthHeightDto = new MediaWidthHeightDto();\n mediaWidthHeightDto[FORM_NAME_IMAGE_WIDTH] = e.target.naturalWidth;\n mediaWidthHeightDto[FORM_NAME_IMAGE_HEIGHT] = e.target.naturalHeight;\n mediaWidthHeightDto[FORM_NAME_IMAGE_URL] = changes.urlToParse.currentValue;\n this.onUpdate.emit(mediaWidthHeightDto);\n };\n img.src = this.urlToParse;\n }\n }\n}\n","import { Directive, ElementRef, Input, OnChanges, HostListener, Renderer2, SimpleChanges } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { v4 as uuid } from 'uuid';\nimport { ExpectedImagesService } from '../../../services/utils/expected-images.service';\n\n@Directive({\n selector: '[wbPicturesTemplateDirective]',\n})\nexport class PicturesTemplateDirective {\n @Input()\n set dimensions(dimensions: string) {\n this._dimensions = dimensions;\n this.renderSizeExpected();\n }\n get dimensions(): string {\n return this._dimensions;\n }\n private _dimensions: string;\n\n @Input() classImageSize = 'wb-dynamic-size';\n\n @HostListener('click')\n setExpectedSizes() {\n this.expectedImagesService.setExpectedImgSizes(this.dimensions);\n }\n\n currentElement: HTMLInputElement;\n currentUUID = uuid();\n\n constructor(private el: ElementRef, private expectedImagesService: ExpectedImagesService, private translateService: TranslateService) {\n this.currentElement = this.el.nativeElement;\n }\n\n ngOnInit() {\n this.renderSizeExpected();\n }\n\n renderSizeExpected() {\n if (this.dimensions) {\n this.currentElement.innerHTML =\n '<span class=\"' +\n this.classImageSize +\n this.currentUUID +\n '\">' +\n this.translateService.instant('wb.shared.directives.pictures.1') +\n ' : ' +\n this.dimensions +\n '</span>' +\n '<p><i class=\"fal fa-image\"></i> <span>' +\n this.translateService.instant('wb.shared.directives.pictures.2') +\n '</span></p>';\n }\n }\n}\n","import { Directive, HostListener, EventEmitter, Output } from '@angular/core';\nimport { Observable, Subject, interval } from 'rxjs';\nimport { takeUntil, tap, filter } from 'rxjs/operators';\n\n@Directive({\n selector: '[wbHoldable]'\n})\nexport class HoldableDirective {\n @Output() holdTime: EventEmitter<number> = new EventEmitter();\n\n state: Subject<string> = new Subject();\n\n cancel: Observable<string>;\n\n constructor() {\n this.cancel = this.state.pipe(\n filter(v => v === 'cancel'),\n tap(() => {\n this.holdTime.emit(0);\n })\n );\n }\n\n @HostListener('mouseup', [])\n @HostListener('mouseleave', [])\n onExit() {\n this.state.next('cancel');\n }\n\n @HostListener('mousedown', [])\n onHold() {\n this.state.next('start');\n\n const n = 100;\n\n interval(n)\n .pipe(\n takeUntil(this.cancel),\n tap(v => {\n this.holdTime.emit(v * n);\n })\n )\n .subscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[wbShowDeleteButton]',\n})\nexport class ShowDeleteButtonDirective {\n constructor(private element: ElementRef, private renderer: Renderer2) {}\n\n @HostListener('mouseover')\n onMouseOver() {\n console.log(this.element);\n console.log(this.element.nativeElement);\n if (this.element.nativeElement.classList.contains('active')) {\n return;\n }\n this.renderer.setStyle(\n this.element.nativeElement,\n 'left',\n 'calc(100% - ' + (this.element.nativeElement.offsetWidth + 5).toString() + 'px)'\n );\n this.renderer['addClass'](this.element.nativeElement, 'active');\n }\n\n @HostListener('mouseout')\n onMouseOut() {\n if (!this.element.nativeElement.classList.contains('active')) {\n return;\n }\n this.renderer.setStyle(this.element.nativeElement, 'left', 'calc(100% - 50px)');\n this.renderer['removeClass'](this.element.nativeElement, 'active');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AutofocusDirective } from './auto-focus/auto-focus.directive';\nimport { AutoHideDirective } from './auto-hide/auto-hide.directive';\nimport { GetSizeImageDirective } from './get-size-image/get-size-image.directive';\nimport { PicturesTemplateDirective } from './pictures-template/pictures-template.directive';\nimport { HoldableDirective } from './holdable/holdable.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ShowDeleteButtonDirective } from './show-delete-button/show-delete-button.directive';\n\nconst components = [\n AutofocusDirective,\n AutoHideDirective,\n GetSizeImageDirective,\n PicturesTemplateDirective,\n HoldableDirective,\n ShowDeleteButtonDirective,\n];\n\n@NgModule({\n imports: [CommonModule, FormsModule, TranslateModule.forChild()],\n entryComponents: [],\n declarations: components,\n exports: components,\n})\nexport class SharedDirectivesModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wb-loader',\n templateUrl: './loader.component.html'\n})\nexport class LoaderComponent {}\n","import { Component, Input, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'wb-structure-select',\n templateUrl: './structure-select.component.html'\n})\nexport class StructureSelectComponent {\n @ViewChild('form') form;\n\n @Input() selectedValue = null;\n\n @Input() forms;\n\n @Input() large = false;\n\n @Input() icon;\n\n @Output() changed = new EventEmitter();\n\n @Input() label;\n\n selectThisForm() {\n this.changed.emit(this.selectedValue);\n }\n}\n","export const ICON_NAME_LIST = [\n '500px',\n 'accessible-icon',\n 'accusoft',\n 'acquisitions-incorporated',\n 'adn',\n 'adobe',\n 'adversal',\n 'affiliatetheme',\n 'airbnb',\n 'algolia',\n 'alipay',\n 'amazon',\n 'amazon-pay',\n 'amilia',\n 'android',\n 'angellist',\n 'angrycreative',\n 'angular',\n 'app-store',\n 'app-store-ios',\n 'apper',\n 'apple',\n 'apple-pay',\n 'artstation',\n 'asymmetrik',\n 'atlassian',\n 'audible',\n 'autoprefixer',\n 'avianex',\n 'aviato',\n 'aws',\n 'bandcamp',\n 'battle-net',\n 'behance',\n 'behance-square',\n 'bimobject',\n 'bitbucket',\n 'bitcoin',\n 'bity',\n 'black-tie',\n 'blackberry',\n 'blogger',\n 'blogger-b',\n 'bluetooth',\n 'bluetooth-b',\n 'bootstrap',\n 'btc',\n 'buffer',\n 'buromobelexperte',\n 'buy-n-large',\n 'buysellads',\n 'canadian-maple-leaf',\n 'cc-amazon-pay',\n 'cc-amex',\n 'cc-apple-pay',\n 'cc-diners-club',\n 'cc-discover',\n 'cc-jcb',\n 'cc-mastercard',\n 'cc-paypal',\n 'cc-stripe',\n 'cc-visa',\n 'centercode',\n 'centos',\n 'chrome',\n 'chromecast',\n 'cloudscale',\n 'cloudsmith',\n 'cloudversify',\n 'codepen',\n 'codiepie',\n 'confluence',\n 'connectdevelop',\n 'contao',\n 'cotton-bureau',\n 'cpanel',\n 'creative-commons',\n 'creative-commons-by',\n 'creative-commons-nc',\n 'creative-commons-nc-eu',\n 'creative-commons-nc-jp',\n 'creative-commons-nd',\n 'creative-commons-pd',\n 'creative-commons-pd-alt',\n 'creative-commons-remix',\n 'creative-commons-sa',\n 'creative-commons-sampling',\n 'creative-commons-sampling-plus',\n 'creative-commons-share',\n 'creative-commons-zero',\n 'critical-role',\n 'css3',\n 'css3-alt',\n 'cuttlefish',\n 'd-and-d',\n 'd-and-d-beyond',\n 'dashcube',\n 'delicious',\n 'deploydog',\n 'deskpro',\n 'dev',\n 'deviantart',\n 'dhl',\n 'diaspora',\n 'digg',\n 'digital-ocean',\n 'discord',\n 'discourse',\n 'dochub',\n 'docker',\n 'draft2digital',\n 'dribbble',\n 'dribbble-square',\n 'dropbox',\n 'drupal',\n 'dyalog',\n 'earlybirds',\n 'ebay',\n 'edge',\n 'elementor',\n 'ello',\n 'ember',\n 'empire',\n 'envira',\n 'erlang',\n 'ethereum',\n 'etsy',\n 'evernote',\n 'expeditedssl',\n 'facebook',\n 'facebook-f',\n 'facebook-messenger',\n 'facebook-square',\n 'fantasy-flight-games',\n 'fedex',\n 'fedora',\n 'figma',\n 'firefox',\n 'firefox-browser',\n 'first-order',\n 'first-order-alt',\n 'firstdraft',\n 'flickr',\n 'flipboard',\n 'fly',\n 'font-awesome',\n 'font-awesome-alt',\n 'font-awesome-flag',\n 'font-awesome-logo-full',\n 'fonticons',\n 'fonticons-fi',\n 'fort-awesome',\n 'fort-awesome-alt',\n 'forumbee',\n 'foursquare',\n 'free-code-camp',\n 'freebsd',\n 'fulcrum',\n 'galactic-republic',\n 'galactic-senate',\n 'get-pocket',\n 'gg',\n 'gg-circle',\n 'git',\n 'git-alt',\n 'git-square',\n 'github',\n 'github-alt',\n 'github-square',\n 'gitkraken',\n 'gitlab',\n 'gitter',\n 'glide',\n 'glide-g',\n 'gofore',\n 'goodreads',\n 'goodreads-g',\n 'google',\n 'google-drive',\n 'google-play',\n 'google-plus',\n 'google-plus-g',\n 'google-plus-square',\n 'google-wallet',\n 'gratipay',\n 'grav',\n 'gripfire',\n 'grunt',\n 'gulp',\n 'hacker-news',\n 'hacker-news-square',\n 'hackerrank',\n 'hips',\n 'hire-a-helper',\n 'hooli',\n 'hornbill',\n 'hotjar',\n 'houzz',\n 'html5',\n 'hubspot',\n 'ideal',\n 'imdb',\n 'instagram',\n 'intercom',\n 'internet-explorer',\n 'invision',\n 'ioxhost',\n 'itch-io',\n 'itunes',\n 'itunes-note',\n 'java',\n 'jedi-order',\n 'jenkins',\n 'jira',\n 'joget',\n 'joomla',\n 'js',\n 'js-square',\n 'jsfiddle',\n 'kaggle',\n 'keybase',\n 'keycdn',\n 'kickstarter',\n 'kickstarter-k',\n 'korvue',\n 'laravel',\n 'lastfm',\n 'lastfm-square',\n 'leanpub',\n 'less',\n 'line',\n 'linkedin',\n 'linkedin-in',\n 'linode',\n 'linux',\n 'lyft',\n 'magento',\n 'mailchimp',\n 'mandalorian',\n 'markdown',\n 'mastodon',\n 'maxcdn',\n 'mdb',\n 'medapps',\n 'medium',\n 'medium-m',\n 'medrt',\n 'meetup',\n 'megaport',\n 'mendeley',\n 'microblog',\n 'microsoft',\n 'mix',\n 'mixcloud',\n 'mizuni',\n 'modx',\n 'monero',\n 'napster',\n 'neos',\n 'nimblr',\n 'node',\n 'node-js',\n 'npm',\n 'ns8',\n 'nutritionix',\n 'odnoklassniki',\n 'odnoklassniki-square',\n 'old-republic',\n 'opencart',\n 'openid',\n 'opera',\n 'optin-monster',\n 'orcid',\n 'osi',\n 'page4',\n 'pagelines',\n 'palfed',\n 'patreon',\n 'paypal',\n 'penny-arcade',\n 'periscope',\n 'phabricator',\n 'phoenix-framework',\n 'phoenix-squadron',\n 'php',\n 'pied-piper',\n 'pied-piper-alt',\n 'pied-piper-hat',\n 'pied-piper-pp',\n 'pied-piper-square',\n 'pinterest',\n 'pinterest-p',\n 'pinterest-square',\n 'playstation',\n 'product-hunt',\n 'pushed',\n 'python',\n 'qq',\n 'quinscape',\n 'quora',\n 'r-project',\n 'raspberry-pi',\n 'ravelry',\n 'react',\n 'reacteurope',\n 'readme',\n 'rebel',\n 'red-river',\n 'reddit',\n 'reddit-alien',\n 'reddit-square',\n 'redhat',\n 'renren',\n 'replyd',\n 'researchgate',\n 'resolving',\n 'rev',\n 'rocketchat',\n 'rockrms',\n 'safari',\n 'salesforce',\n 'sass',\n 'schlix',\n 'scribd',\n 'searchengin',\n 'sellcast',\n 'sellsy',\n 'servicestack',\n 'shirtsinbulk',\n 'shopware',\n 'simplybuilt',\n 'sistrix',\n 'sith',\n 'sketch',\n 'skyatlas',\n 'skype',\n 'slack',\n 'slack-hash',\n 'slideshare',\n 'snapchat',\n 'snapchat-ghost',\n 'snapchat-square',\n 'soundcloud',\n 'sourcetree',\n 'speakap',\n 'speaker-deck',\n 'spotify',\n 'squarespace',\n 'stack-exchange',\n 'stack-overflow',\n 'stackpath',\n 'staylinked',\n 'steam',\n 'steam-square',\n 'steam-symbol',\n 'sticker-mule',\n 'strava',\n 'stripe',\n 'stripe-s',\n 'studiovinari',\n 'stumbleupon',\n 'stumbleupon-circle',\n 'superpowers',\n 'supple',\n 'suse',\n 'swift',\n 'symfony',\n 'teamspeak',\n 'telegram',\n 'telegram-plane',\n 'tencent-weibo',\n 'the-red-yeti',\n 'themeco',\n 'themeisle',\n 'think-peaks',\n 'trade-federation',\n 'trello',\n 'tripadvisor',\n 'tumblr',\n 'tumblr-square',\n 'twitch',\n 'twitter',\n 'twitter-square',\n 'typo3',\n 'uber',\n 'ubuntu',\n 'uikit',\n 'umbraco',\n 'uniregistry',\n 'unity',\n 'untappd',\n 'ups',\n 'usb',\n 'usps',\n 'ussunnah',\n 'vaadin',\n 'viacoin',\n 'viadeo',\n 'viadeo-square',\n 'viber',\n 'vimeo',\n 'vimeo-square',\n 'vimeo-v',\n 'vine',\n 'vk',\n 'vnv',\n 'vuejs',\n 'waze',\n 'weebly',\n 'weibo',\n 'weixin',\n 'whatsapp',\n 'whatsapp-square',\n 'whmcs',\n 'wikipedia-w',\n 'windows',\n 'wix',\n 'wizards-of-the-coast',\n 'wolf-pack-battalion',\n 'wordpress',\n 'wordpress-simple',\n 'wpbeginner',\n 'wpexplorer',\n 'wpforms',\n 'wpressr',\n 'xbox',\n 'xing',\n 'xing-square',\n 'y-combinator',\n 'yahoo',\n 'yammer',\n 'yandex',\n 'yandex-international',\n 'yarn',\n 'yelp',\n 'yoast',\n 'youtube',\n 'youtube-square',\n 'zhihu',\n 'abacus',\n 'acorn',\n 'ad',\n 'address-book',\n 'address-card',\n 'adjust',\n 'air-conditioner',\n 'air-freshener',\n 'alarm-clock',\n 'alarm-exclamation',\n 'alarm-plus',\n 'alarm-snooze',\n 'album',\n 'album-collection',\n 'alicorn',\n 'alien',\n 'alien-monster',\n 'align-center',\n 'align-justify',\n 'align-left',\n 'align-right',\n 'align-slash',\n 'allergies',\n 'ambulance',\n 'american-sign-language-interpreting',\n 'amp-guitar',\n 'analytics',\n 'anchor',\n 'angel',\n 'angle-double-down',\n 'angle-double-left',\n 'angle-double-right',\n 'angle-double-up',\n 'angle-down',\n 'angle-left',\n 'angle-right',\n 'angle-up',\n 'angry',\n 'ankh',\n 'apple-alt',\n 'apple-crate',\n 'archive',\n 'archway',\n 'arrow-alt-circle-down',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-up',\n 'arrow-alt-down',\n 'arrow-alt-from-bottom',\n 'arrow-alt-from-left',\n 'arrow-alt-from-right',\n 'arrow-alt-from-top',\n 'arrow-alt-left',\n 'arrow-alt-right',\n 'arrow-alt-square-down',\n 'arrow-alt-square-left',\n 'arrow-alt-square-right',\n 'arrow-alt-square-up',\n 'arrow-alt-to-bottom',\n 'arrow-alt-to-left',\n 'arrow-alt-to-right',\n 'arrow-alt-to-top',\n 'arrow-alt-up',\n 'arrow-circle-down',\n 'arrow-circle-left',\n 'arrow-circle-right',\n 'arrow-circle-up',\n 'arrow-down',\n 'arrow-from-bottom',\n 'arrow-from-left',\n 'arrow-from-right',\n 'arrow-from-top',\n 'arrow-left',\n 'arrow-right',\n 'arrow-square-down',\n 'arrow-square-left',\n 'arrow-square-right',\n 'arrow-square-up',\n 'arrow-to-bottom',\n 'arrow-to-left',\n 'arrow-to-right',\n 'arrow-to-top',\n 'arrow-up',\n 'arrows',\n 'arrows-alt',\n 'arrows-alt-h',\n 'arrows-alt-v',\n 'arrows-h',\n 'arrows-v',\n 'assistive-listening-systems',\n 'asterisk',\n 'at',\n 'atlas',\n 'atom',\n 'atom-alt',\n 'audio-description',\n 'award',\n 'axe',\n 'axe-battle',\n 'baby',\n 'baby-carriage',\n 'backpack',\n 'backspace',\n 'backward',\n 'bacon',\n 'badge',\n 'badge-check',\n 'badge-dollar',\n 'badge-percent',\n 'badge-sheriff',\n 'badger-honey',\n 'bags-shopping',\n 'bahai',\n 'balance-scale',\n 'balance-scale-left',\n 'balance-scale-right',\n 'ball-pile',\n 'ballot',\n 'ballot-check',\n 'ban',\n 'band-aid',\n 'banjo',\n 'barcode',\n 'barcode-alt',\n 'barcode-read',\n 'barcode-scan',\n 'bars',\n 'baseball',\n 'baseball-ball',\n 'basketball-ball',\n 'basketball-hoop',\n 'bat',\n 'bath',\n 'battery-bolt',\n 'battery-empty',\n 'battery-full',\n 'battery-half',\n 'battery-quarter',\n 'battery-slash',\n 'battery-three-quarters',\n 'bed',\n 'bed-alt',\n 'bed-bunk',\n 'bed-empty',\n 'beer',\n 'bell',\n 'bell-exclamation',\n 'bell-on',\n 'bell-plus',\n 'bell-school',\n 'bell-school-slash',\n 'bell-slash',\n 'bells',\n 'betamax',\n 'bezier-curve',\n 'bible',\n 'bicycle',\n 'biking',\n 'biking-mountain',\n 'binoculars',\n 'biohazard',\n 'birthday-cake',\n 'blanket',\n 'blender',\n 'blender-phone',\n 'blind',\n 'blinds',\n 'blinds-open',\n 'blinds-raised',\n 'blog',\n 'bold',\n 'bolt',\n 'bomb',\n 'bone',\n 'bone-break',\n 'bong',\n 'book',\n 'book-alt',\n 'book-dead',\n 'book-heart',\n 'book-medical',\n 'book-open',\n 'book-reader',\n 'book-spells',\n 'book-user',\n 'bookmark',\n 'books',\n 'books-medical',\n 'boombox',\n 'boot',\n 'booth-curtain',\n 'border-all',\n 'border-bottom',\n 'border-center-h',\n 'border-center-v',\n 'border-inner',\n 'border-left',\n 'border-none',\n 'border-outer',\n 'border-right',\n 'border-style',\n 'border-style-alt',\n 'border-top',\n 'bow-arrow',\n 'bowling-ball',\n 'bowling-pins',\n 'box',\n 'box-alt',\n 'box-ballot',\n 'box-check',\n 'box-fragile',\n 'box-full',\n 'box-heart',\n 'box-open',\n 'box-up',\n 'box-usd',\n 'boxes',\n 'boxes-alt',\n 'boxing-glove',\n 'brackets',\n 'brackets-curly',\n 'braille',\n 'brain',\n 'bread-loaf',\n 'bread-slice',\n 'briefcase',\n 'briefcase-medical',\n 'bring-forward',\n 'bring-front',\n 'broadcast-tower',\n 'broom',\n 'browser',\n 'brush',\n 'bug',\n 'building',\n 'bullhorn',\n 'bullseye',\n 'bullseye-arrow',\n 'bullseye-pointer',\n 'burger-soda',\n 'burn',\n 'burrito',\n 'bus',\n 'bus-alt',\n 'bus-school',\n 'business-time',\n 'cabinet-filing',\n 'cactus',\n 'calculator',\n 'calculator-alt',\n 'calendar',\n 'calendar-alt',\n 'calendar-check',\n 'calendar-day',\n 'calendar-edit',\n 'calendar-exclamation',\n 'calendar-minus',\n 'calendar-plus',\n 'calendar-star',\n 'calendar-times',\n 'calendar-week',\n 'camcorder',\n 'camera',\n 'camera-alt',\n 'camera-home',\n 'camera-movie',\n 'camera-polaroid',\n 'camera-retro',\n 'campfire',\n 'campground',\n 'candle-holder',\n 'candy-cane',\n 'candy-corn',\n 'cannabis',\n 'capsules',\n 'car',\n 'car-alt',\n 'car-battery',\n 'car-building',\n 'car-bump',\n 'car-bus',\n 'car-crash',\n 'car-garage',\n 'car-mechanic',\n 'car-side',\n 'car-tilt',\n 'car-wash',\n 'caravan',\n 'caravan-alt',\n 'caret-circle-down',\n 'caret-circle-left',\n 'caret-circle-right',\n 'caret-circle-up',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-square-down',\n 'caret-square-left',\n 'caret-square-right',\n 'caret-square-up',\n 'caret-up',\n 'carrot',\n 'cars',\n 'cart-arrow-down',\n 'cart-plus',\n 'cash-register',\n 'cassette-tape',\n 'cat',\n 'cat-space',\n 'cauldron',\n 'cctv',\n 'certificate',\n 'chair',\n 'chair-office',\n 'chalkboard',\n 'chalkboard-teacher',\n 'charging-station',\n 'chart-area',\n 'chart-bar',\n 'chart-line',\n 'chart-line-down',\n 'chart-network',\n 'chart-pie',\n 'chart-pie-alt',\n 'chart-scatter',\n 'check',\n 'check-circle',\n 'check-double',\n 'check-square',\n 'cheese',\n 'cheese-swiss',\n 'cheeseburger',\n 'chess',\n 'chess-bishop',\n 'chess-bishop-alt',\n 'chess-board',\n 'chess-clock',\n 'chess-clock-alt',\n 'chess-king',\n 'chess-king-alt',\n 'chess-knight',\n 'chess-knight-alt',\n 'chess-pawn',\n 'chess-pawn-alt',\n 'chess-queen',\n 'chess-queen-alt',\n 'chess-rook',\n 'chess-rook-alt',\n 'chevron-circle-down',\n 'chevron-circle-left',\n 'chevron-circle-right',\n 'chevron-circle-up',\n 'chevron-double-down',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-double-up',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-square-down',\n 'chevron-square-left',\n 'chevron-square-right',\n 'chevron-square-up',\n 'chevron-up',\n 'child',\n 'chimney',\n 'church',\n 'circle',\n 'circle-notch',\n 'city',\n 'clarinet',\n 'claw-marks',\n 'clinic-medical',\n 'clipboard',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-list-check',\n 'clipboard-prescription',\n 'clipboard-user',\n 'clock',\n 'clone',\n 'closed-captioning',\n 'cloud',\n 'cloud-download',\n 'cloud-download-alt',\n 'cloud-drizzle',\n 'cloud-hail',\n 'cloud-hail-mixed',\n 'cloud-meatball',\n 'cloud-moon',\n 'cloud-moon-rain',\n 'cloud-music',\n 'cloud-rain',\n 'cloud-rainbow',\n 'cloud-showers',\n 'cloud-showers-heavy',\n 'cloud-sleet',\n 'cloud-snow',\n 'cloud-sun',\n 'cloud-sun-rain',\n 'cloud-upload',\n 'cloud-upload-alt',\n 'clouds',\n 'clouds-moon',\n 'clouds-sun',\n 'club',\n 'cocktail',\n 'code',\n 'code-branch',\n 'code-commit',\n 'code-merge',\n 'coffee',\n 'coffee-pot',\n 'coffee-togo',\n 'coffin',\n 'cog',\n 'cogs',\n 'coin',\n 'coins',\n 'columns',\n 'comet',\n 'comment',\n 'comment-alt',\n 'comment-alt-check',\n 'comment-alt-dollar',\n 'comment-alt-dots',\n 'comment-alt-edit',\n 'comment-alt-exclamation',\n 'comment-alt-lines',\n 'comment-alt-medical',\n 'comment-alt-minus',\n 'comment-alt-music',\n 'comment-alt-plus',\n 'comment-alt-slash',\n 'comment-alt-smile',\n 'comment-alt-times',\n 'comment-check',\n 'comment-dollar',\n 'comment-dots',\n 'comment-edit',\n 'comment-exclamation',\n 'comment-lines',\n 'comment-medical',\n 'comment-minus',\n 'comment-music',\n 'comment-plus',\n 'comment-slash',\n 'comment-smile',\n 'comment-times',\n 'comments',\n 'comments-alt',\n 'comments-alt-dollar',\n 'comments-dollar',\n 'compact-disc',\n 'compass',\n 'compass-slash',\n 'compress',\n 'compress-alt',\n 'compress-arrows-alt',\n 'compress-wide',\n 'computer-classic',\n 'computer-speaker',\n 'concierge-bell',\n 'construction',\n 'container-storage',\n 'conveyor-belt',\n 'conveyor-belt-alt',\n 'cookie',\n 'cookie-bite',\n 'copy',\n 'copyright',\n 'corn',\n 'couch',\n 'cow',\n 'cowbell',\n 'cowbell-more',\n 'credit-card',\n 'credit-card-blank',\n 'credit-card-front',\n 'cricket',\n 'croissant',\n 'crop',\n 'crop-alt',\n 'cross',\n 'crosshairs',\n 'crow',\n 'crown',\n 'crutch',\n 'crutches',\n 'cube',\n 'cubes',\n 'curling',\n 'cut',\n 'dagger',\n 'database',\n 'deaf',\n 'debug',\n 'deer',\n 'deer-rudolph',\n 'democrat',\n 'desktop',\n 'desktop-alt',\n 'dewpoint',\n 'dharmachakra',\n 'diagnoses',\n 'diamond',\n 'dice',\n 'dice-d10',\n 'dice-d12',\n 'dice-d20',\n 'dice-d4',\n 'dice-d6',\n 'dice-d8',\n 'dice-five',\n 'dice-four',\n 'dice-one',\n 'dice-six',\n 'dice-three',\n 'dice-two',\n 'digging',\n 'digital-tachograph',\n 'diploma',\n 'directions',\n 'disc-drive',\n 'disease',\n 'divide',\n 'dizzy',\n 'dna',\n 'do-not-enter',\n 'dog',\n 'dog-leashed',\n 'dollar-sign',\n 'dolly',\n 'dolly-empty',\n 'dolly-flatbed',\n 'dolly-flatbed-alt',\n 'dolly-flatbed-empty',\n 'donate',\n 'door-closed',\n 'door-open',\n 'dot-circle',\n 'dove',\n 'download',\n 'drafting-compass',\n 'dragon',\n 'draw-circle',\n 'draw-polygon',\n 'draw-square',\n 'dreidel',\n 'drone',\n 'drone-alt',\n 'drum',\n 'drum-steelpan',\n 'drumstick',\n 'drumstick-bite',\n 'dryer',\n 'dryer-alt',\n 'duck',\n 'dumbbell',\n 'dumpster',\n 'dumpster-fire',\n 'dungeon',\n 'ear',\n 'ear-muffs',\n 'eclipse',\n 'eclipse-alt',\n 'edit',\n 'egg',\n 'egg-fried',\n 'eject',\n 'elephant',\n 'ellipsis-h',\n 'ellipsis-h-alt',\n 'ellipsis-v',\n 'ellipsis-v-alt',\n 'empty-set',\n 'engine-warning',\n 'envelope',\n 'envelope-open',\n 'envelope-open-dollar',\n 'envelope-open-text',\n 'envelope-square',\n 'equals',\n 'eraser',\n 'ethernet',\n 'euro-sign',\n 'exchange',\n 'exchange-alt',\n 'exclamation',\n 'exclamation-circle',\n 'exclamation-square',\n 'exclamation-triangle',\n 'expand',\n 'expand-alt',\n 'expand-arrows',\n 'expand-arrows-alt',\n 'expand-wide',\n 'external-link',\n 'external-link-alt',\n 'external-link-square',\n 'external-link-square-alt',\n 'eye',\n 'eye-dropper',\n 'eye-evil',\n 'eye-slash',\n 'fan',\n 'fan-table',\n 'farm',\n 'fast-backward',\n 'fast-forward',\n 'faucet',\n 'faucet-drip',\n 'fax',\n 'feather',\n 'feather-alt',\n 'female',\n 'field-hockey',\n 'fighter-jet',\n 'file',\n 'file-alt',\n 'file-archive',\n 'file-audio',\n 'file-certificate',\n 'file-chart-line',\n 'file-chart-pie',\n 'file-check',\n 'file-code',\n 'file-contract',\n 'file-csv',\n 'file-download',\n 'file-edit',\n 'file-excel',\n 'file-exclamation',\n 'file-export',\n 'file-image',\n 'file-import',\n 'file-invoice',\n 'file-invoice-dollar',\n 'file-medical',\n 'file-medical-alt',\n 'file-minus',\n 'file-music',\n 'file-pdf',\n 'file-plus',\n 'file-powerpoint',\n 'file-prescription',\n 'file-search',\n 'file-signature',\n 'file-spreadsheet',\n 'file-times',\n 'file-upload',\n 'file-user',\n 'file-video',\n 'file-word',\n 'files-medical',\n 'fill',\n 'fill-drip',\n 'film',\n 'film-alt',\n 'film-canister',\n 'filter',\n 'fingerprint',\n 'fire',\n 'fire-alt',\n 'fire-extinguisher',\n 'fire-smoke',\n 'fireplace',\n 'first-aid',\n 'fish',\n 'fish-cooked',\n 'fist-raised',\n 'flag',\n 'flag-alt',\n 'flag-checkered',\n 'flag-usa',\n 'flame',\n 'flashlight',\n 'flask',\n 'flask-poison',\n 'flask-potion',\n 'flower',\n 'flower-daffodil',\n 'flower-tulip',\n 'flushed',\n 'flute',\n 'flux-capacitor',\n 'fog',\n 'folder',\n 'folder-minus',\n 'folder-open',\n 'folder-plus',\n 'folder-times',\n 'folder-tree',\n 'folders',\n 'font',\n 'font-awesome-logo-full',\n 'font-case',\n 'football-ball',\n 'football-helmet',\n 'forklift',\n 'forward',\n 'fragile',\n 'french-fries',\n 'frog',\n 'frosty-head',\n 'frown',\n 'frown-open',\n 'function',\n 'funnel-dollar',\n 'futbol',\n 'galaxy',\n 'game-board',\n 'game-board-alt',\n 'game-console-handheld',\n 'gamepad',\n 'gamepad-alt',\n 'garage',\n 'garage-car',\n 'garage-open',\n 'gas-pump',\n 'gas-pump-slash',\n 'gavel',\n 'gem',\n 'genderless',\n 'ghost',\n 'gift',\n 'gift-card',\n 'gifts',\n 'gingerbread-man',\n 'glass',\n 'glass-champagne',\n 'glass-cheers',\n 'glass-citrus',\n 'glass-martini',\n 'glass-martini-alt',\n 'glass-whiskey',\n 'glass-whiskey-rocks',\n 'glasses',\n 'glasses-alt',\n 'globe',\n 'globe-africa',\n 'globe-americas',\n 'globe-asia',\n 'globe-europe',\n 'globe-snow',\n 'globe-stand',\n 'golf-ball',\n 'golf-club',\n 'gopuram',\n 'graduation-cap',\n 'gramophone',\n 'greater-than',\n 'greater-than-equal',\n 'grimace',\n 'grin',\n 'grin-alt',\n 'grin-beam',\n 'grin-beam-sweat',\n 'grin-hearts',\n 'grin-squint',\n 'grin-squint-tears',\n 'grin-stars',\n 'grin-tears',\n 'grin-tongue',\n 'grin-tongue-squint',\n 'grin-tongue-wink',\n 'grin-wink',\n 'grip-horizontal',\n 'grip-lines',\n 'grip-lines-vertical',\n 'grip-vertical',\n 'guitar',\n 'guitar-electric',\n 'guitars',\n 'h-square',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'hamburger',\n 'hammer',\n 'hammer-war',\n 'hamsa',\n 'hand-heart',\n 'hand-holding',\n 'hand-holding-box',\n 'hand-holding-heart',\n 'hand-holding-magic',\n 'hand-holding-seedling',\n 'hand-holding-usd',\n 'hand-holding-water',\n 'hand-lizard',\n 'hand-middle-finger',\n 'hand-paper',\n 'hand-peace',\n 'hand-point-down',\n 'hand-point-left',\n 'hand-point-right',\n 'hand-point-up',\n 'hand-pointer',\n 'hand-receiving',\n 'hand-rock',\n 'hand-scissors',\n 'hand-spock',\n 'hands',\n 'hands-heart',\n 'hands-helping',\n 'hands-usd',\n 'handshake',\n 'handshake-alt',\n 'hanukiah',\n 'hard-hat',\n 'hashtag',\n 'hat-chef',\n 'hat-cowboy',\n 'hat-cowboy-side',\n 'hat-santa',\n 'hat-winter',\n 'hat-witch',\n 'hat-wizard',\n 'hdd',\n 'head-side',\n 'head-side-brain',\n 'head-side-headphones',\n 'head-side-medical',\n 'head-vr',\n 'heading',\n 'headphones',\n 'headphones-alt',\n 'headset',\n 'heart',\n 'heart-broken',\n 'heart-circle',\n 'heart-rate',\n 'heart-square',\n 'heartbeat',\n 'heat',\n 'helicopter',\n 'helmet-battle',\n 'hexagon',\n 'highlighter',\n 'hiking',\n 'hippo',\n 'history',\n 'hockey-mask',\n 'hockey-puck',\n 'hockey-sticks',\n 'holly-berry',\n 'home',\n 'home-alt',\n 'home-heart',\n 'home-lg',\n 'home-lg-alt',\n 'hood-cloak',\n 'horizontal-rule',\n 'horse',\n 'horse-head',\n 'horse-saddle',\n 'hospital',\n 'hospital-alt',\n 'hospital-symbol',\n 'hospital-user',\n 'hospitals',\n 'hot-tub',\n 'hotdog',\n 'hotel',\n 'hourglass',\n 'hourglass-end',\n 'hourglass-half',\n 'hourglass-start',\n 'house',\n 'house-damage',\n 'house-day',\n 'house-flood',\n 'house-leave',\n 'house-night',\n 'house-return',\n 'house-signal',\n 'hryvnia',\n 'humidity',\n 'hurricane',\n 'i-cursor',\n 'ice-cream',\n 'ice-skate',\n 'icicles',\n 'icons',\n 'icons-alt',\n 'id-badge',\n 'id-card',\n 'id-card-alt',\n 'igloo',\n 'image',\n 'image-polaroid',\n 'images',\n 'inbox',\n 'inbox-in',\n 'inbox-out',\n 'indent',\n 'industry',\n 'industry-alt',\n 'infinity',\n 'info',\n 'info-circle',\n 'info-square',\n 'inhaler',\n 'integral',\n 'intersection',\n 'inventory',\n 'island-tropical',\n 'italic',\n 'jack-o-lantern',\n 'jedi',\n 'joint',\n 'journal-whills',\n 'joystick',\n 'jug',\n 'kaaba',\n 'kazoo',\n 'kerning',\n 'key',\n 'key-skeleton',\n 'keyboard',\n 'keynote',\n 'khanda',\n 'kidneys',\n 'kiss',\n 'kiss-beam',\n 'kiss-wink-heart',\n 'kite',\n 'kiwi-bird',\n 'knife-kitchen',\n 'lambda',\n 'lamp',\n 'lamp-desk',\n 'lamp-floor',\n 'landmark',\n 'landmark-alt',\n 'language',\n 'laptop',\n 'laptop-code',\n 'laptop-medical',\n 'lasso',\n 'laugh',\n 'laugh-beam',\n 'laugh-squint',\n 'laugh-wink',\n 'layer-group',\n 'layer-minus',\n 'layer-plus',\n 'leaf',\n 'leaf-heart',\n 'leaf-maple',\n 'leaf-oak',\n 'lemon',\n 'less-than',\n 'less-than-equal',\n 'level-down',\n 'level-down-alt',\n 'level-up',\n 'level-up-alt',\n 'life-ring',\n 'light-ceiling',\n 'light-switch',\n 'light-switch-off',\n 'light-switch-on',\n 'lightbulb',\n 'lightbulb-dollar',\n 'lightbulb-exclamation',\n 'lightbulb-on',\n 'lightbulb-slash',\n 'lights-holiday',\n 'line-columns',\n 'line-height',\n 'link',\n 'lips',\n 'lira-sign',\n 'list',\n 'list-alt',\n 'list-music',\n 'list-ol',\n 'list-ul',\n 'location',\n 'location-arrow',\n 'location-circle',\n 'location-slash',\n 'lock',\n 'lock-alt',\n 'lock-open',\n 'lock-open-alt',\n 'long-arrow-alt-down',\n 'long-arrow-alt-left',\n 'long-arrow-alt-right',\n 'long-arrow-alt-up',\n 'long-arrow-down',\n 'long-arrow-left',\n 'long-arrow-right',\n 'long-arrow-up',\n 'loveseat',\n 'low-vision',\n 'luchador',\n 'luggage-cart',\n 'lungs',\n 'mace',\n 'magic',\n 'magnet',\n 'mail-bulk',\n 'mailbox',\n 'male',\n 'mandolin',\n 'map',\n 'map-marked',\n 'map-marked-alt',\n 'map-marker',\n 'map-marker-alt',\n 'map-marker-alt-slash',\n 'map-marker-check',\n 'map-marker-edit',\n 'map-marker-exclamation',\n 'map-marker-minus',\n 'map-marker-plus',\n 'map-marker-question',\n 'map-marker-slash',\n 'map-marker-smile',\n 'map-marker-times',\n 'map-pin',\n 'map-signs',\n 'marker',\n 'mars',\n 'mars-double',\n 'mars-stroke',\n 'mars-stroke-h',\n 'mars-stroke-v',\n 'mask',\n 'meat',\n 'medal',\n 'medkit',\n 'megaphone',\n 'meh',\n 'meh-blank',\n 'meh-rolling-eyes',\n 'memory',\n 'menorah',\n 'mercury',\n 'meteor',\n 'microchip',\n 'microphone',\n 'microphone-alt',\n 'microphone-alt-slash',\n 'microphone-slash',\n 'microphone-stand',\n 'microscope',\n 'microwave',\n 'mind-share',\n 'minus',\n 'minus-circle',\n 'minus-hexagon',\n 'minus-octagon',\n 'minus-square',\n 'mistletoe',\n 'mitten',\n 'mobile',\n 'mobile-alt',\n 'mobile-android',\n 'mobile-android-alt',\n 'money-bill',\n 'money-bill-alt',\n 'money-bill-wave',\n 'money-bill-wave-alt',\n 'money-check',\n 'money-check-alt',\n 'money-check-edit',\n 'money-check-edit-alt',\n 'monitor-heart-rate',\n 'monkey',\n 'monument',\n 'moon',\n 'moon-cloud',\n 'moon-stars',\n 'mortar-pestle',\n 'mosque',\n 'motorcycle',\n 'mountain',\n 'mountains',\n 'mouse',\n 'mouse-alt',\n 'mouse-pointer',\n 'mp3-player',\n 'mug',\n 'mug-hot',\n 'mug-marshmallows',\n 'mug-tea',\n 'music',\n 'music-alt',\n 'music-alt-slash',\n 'music-slash',\n 'narwhal',\n 'network-wired',\n 'neuter',\n 'newspaper',\n 'not-equal',\n 'notes-medical',\n 'object-group',\n 'object-ungroup',\n 'octagon',\n 'oil-can',\n 'oil-temp',\n 'om',\n 'omega',\n 'ornament',\n 'otter',\n 'outdent',\n 'outlet',\n 'oven',\n 'overline',\n 'page-break',\n 'pager',\n 'paint-brush',\n 'paint-brush-alt',\n 'paint-roller',\n 'palette',\n 'pallet',\n 'pallet-alt',\n 'paper-plane',\n 'paperclip',\n 'parachute-box',\n 'paragraph',\n 'paragraph-rtl',\n 'parking',\n 'parking-circle',\n 'parking-circle-slash',\n 'parking-slash',\n 'passport',\n 'pastafarianism',\n 'paste',\n 'pause',\n 'pause-circle',\n 'paw',\n 'paw-alt',\n 'paw-claws',\n 'peace',\n 'pegasus',\n 'pen',\n 'pen-alt',\n 'pen-fancy',\n 'pen-nib',\n 'pen-square',\n 'pencil',\n 'pencil-alt',\n 'pencil-paintbrush',\n 'pencil-ruler',\n 'pennant',\n 'people-carry',\n 'pepper-hot',\n 'percent',\n 'percentage',\n 'person-booth',\n 'person-carry',\n 'person-dolly',\n 'person-dolly-empty',\n 'person-sign',\n 'phone',\n 'phone-alt',\n 'phone-laptop',\n 'phone-office',\n 'phone-plus',\n 'phone-rotary',\n 'phone-slash',\n 'phone-square',\n 'phone-square-alt',\n 'phone-volume',\n 'photo-video',\n 'pi',\n 'piano',\n 'piano-keyboard',\n 'pie',\n 'pig',\n 'piggy-bank',\n 'pills',\n 'pizza',\n 'pizza-slice',\n 'place-of-worship',\n 'plane',\n 'plane-alt',\n 'plane-arrival',\n 'plane-departure',\n 'planet-moon',\n 'planet-ringed',\n 'play',\n 'play-circle',\n 'plug',\n 'plus',\n 'plus-circle',\n 'plus-hexagon',\n 'plus-octagon',\n 'plus-square',\n 'podcast',\n 'podium',\n 'podium-star',\n 'police-box',\n 'poll',\n 'poll-h',\n 'poll-people',\n 'poo',\n 'poo-storm',\n 'poop',\n 'popcorn',\n 'portal-enter',\n 'portal-exit',\n 'portrait',\n 'pound-sign',\n 'power-off',\n 'pray',\n 'praying-hands',\n 'prescription',\n 'prescription-bottle',\n 'prescription-bottle-alt',\n 'presentation',\n 'print',\n 'print-search',\n 'print-slash',\n 'procedures',\n 'project-diagram',\n 'projector',\n 'pumpkin',\n 'puzzle-piece',\n 'qrcode',\n 'question',\n 'question-circle',\n 'question-square',\n 'quidditch',\n 'quote-left',\n 'quote-right',\n 'quran',\n 'rabbit',\n 'rabbit-fast',\n 'racquet',\n 'radar',\n 'radiation',\n 'radiation-alt',\n 'radio',\n 'radio-alt',\n 'rainbow',\n 'raindrops',\n 'ram',\n 'ramp-loading',\n 'random',\n 'raygun',\n 'receipt',\n 'record-vinyl',\n 'rectangle-landscape',\n 'rectangle-portrait',\n 'rectangle-wide',\n 'recycle',\n 'redo',\n 'redo-alt',\n 'refrigerator',\n 'registered',\n 'remove-format',\n 'repeat',\n 'repeat-1',\n 'repeat-1-alt',\n 'repeat-alt',\n 'reply',\n 'reply-all',\n 'republican',\n 'restroom',\n 'retweet',\n 'retweet-alt',\n 'ribbon',\n 'ring',\n 'rings-wedding',\n 'road',\n 'robot',\n 'rocket',\n 'rocket-launch',\n 'route',\n 'route-highway',\n 'route-interstate',\n 'router',\n 'rss',\n 'rss-square',\n 'ruble-sign',\n 'ruler',\n 'ruler-combined',\n 'ruler-horizontal',\n 'ruler-triangle',\n 'ruler-vertical',\n 'running',\n 'rupee-sign',\n 'rv',\n 'sack',\n 'sack-dollar',\n 'sad-cry',\n 'sad-tear',\n 'salad',\n 'sandwich',\n 'satellite',\n 'satellite-dish',\n 'sausage',\n 'save',\n 'sax-hot',\n 'saxophone',\n 'scalpel',\n 'scalpel-path',\n 'scanner',\n 'scanner-image',\n 'scanner-keyboard',\n 'scanner-touchscreen',\n 'scarecrow',\n 'scarf',\n 'school',\n 'screwdriver',\n 'scroll',\n 'scroll-old',\n 'scrubber',\n 'scythe',\n 'sd-card',\n 'search',\n 'search-dollar',\n 'search-location',\n 'search-minus',\n 'search-plus',\n 'seedling',\n 'send-back',\n 'send-backward',\n 'sensor',\n 'sensor-alert',\n 'sensor-fire',\n 'sensor-on',\n 'sensor-smoke',\n 'server',\n 'shapes',\n 'share',\n 'share-all',\n 'share-alt',\n 'share-alt-square',\n 'share-square',\n 'sheep',\n 'shekel-sign',\n 'shield',\n 'shield-alt',\n 'shield-check',\n 'shield-cross',\n 'ship',\n 'shipping-fast',\n 'shipping-timed',\n 'shish-kebab',\n 'shoe-prints',\n 'shopping-bag',\n 'shopping-basket',\n 'shopping-cart',\n 'shovel',\n 'shovel-snow',\n 'shower',\n 'shredder',\n 'shuttle-van',\n 'shuttlecock',\n 'sickle',\n 'sigma',\n 'sign',\n 'sign-in',\n 'sign-in-alt',\n 'sign-language',\n 'sign-out',\n 'sign-out-alt',\n 'signal',\n 'signal-1',\n 'signal-2',\n 'signal-3',\n 'signal-4',\n 'signal-alt',\n 'signal-alt-1',\n 'signal-alt-2',\n 'signal-alt-3',\n 'signal-alt-slash',\n 'signal-slash',\n 'signal-stream',\n 'signature',\n 'sim-card',\n 'siren',\n 'siren-on',\n 'sitemap',\n 'skating',\n 'skeleton',\n 'ski-jump',\n 'ski-lift',\n 'skiing',\n 'skiing-nordic',\n 'skull',\n 'skull-cow',\n 'skull-crossbones',\n 'slash',\n 'sledding',\n 'sleigh',\n 'sliders-h',\n 'sliders-h-square',\n 'sliders-v',\n 'sliders-v-square',\n 'smile',\n 'smile-beam',\n 'smile-plus',\n 'smile-wink',\n 'smog',\n 'smoke',\n 'smoking',\n 'smoking-ban',\n 'sms',\n 'snake',\n 'snooze',\n 'snow-blowing',\n 'snowboarding',\n 'snowflake',\n 'snowflakes',\n 'snowman',\n 'snowmobile',\n 'snowplow',\n 'socks',\n 'solar-panel',\n 'solar-system',\n 'sort',\n 'sort-alpha-down',\n 'sort-alpha-down-alt',\n 'sort-alpha-up',\n 'sort-alpha-up-alt',\n 'sort-alt',\n 'sort-amount-down',\n 'sort-amount-down-alt',\n 'sort-amount-up',\n 'sort-amount-up-alt',\n 'sort-circle',\n 'sort-circle-down',\n 'sort-circle-up',\n 'sort-down',\n 'sort-numeric-down',\n 'sort-numeric-down-alt',\n 'sort-numeric-up',\n 'sort-numeric-up-alt',\n 'sort-shapes-down',\n 'sort-shapes-down-alt',\n 'sort-shapes-up',\n 'sort-shapes-up-alt',\n 'sort-size-down',\n 'sort-size-down-alt',\n 'sort-size-up',\n 'sort-size-up-alt',\n 'sort-up',\n 'soup',\n 'spa',\n 'space-shuttle',\n 'space-station-moon',\n 'space-station-moon-alt',\n 'spade',\n 'sparkles',\n 'speaker',\n 'speakers',\n 'spell-check',\n 'spider',\n 'spider-black-widow',\n 'spider-web',\n 'spinner',\n 'spinner-third',\n 'splotch',\n 'spray-can',\n 'sprinkler',\n 'square',\n 'square-full',\n 'square-root',\n 'square-root-alt',\n 'squirrel',\n 'staff',\n 'stamp',\n 'star',\n 'star-and-crescent',\n 'star-christmas',\n 'star-exclamation',\n 'star-half',\n 'star-half-alt',\n 'star-of-david',\n 'star-of-life',\n 'star-shooting',\n 'starfighter',\n 'starfighter-alt',\n 'stars',\n 'starship',\n 'starship-freighter',\n 'steak',\n 'steering-wheel',\n 'step-backward',\n 'step-forward',\n 'stethoscope',\n 'sticky-note',\n 'stocking',\n 'stomach',\n 'stop',\n 'stop-circle',\n 'stopwatch',\n 'store',\n 'store-alt',\n 'stream',\n 'street-view',\n 'stretcher',\n 'strikethrough',\n 'stroopwafel',\n 'subscript',\n 'subway',\n 'suitcase',\n 'suitcase-rolling',\n 'sun',\n 'sun-cloud',\n 'sun-dust',\n 'sun-haze',\n 'sunglasses',\n 'sunrise',\n 'sunset',\n 'superscript',\n 'surprise',\n 'swatchbook',\n 'swimmer',\n 'swimming-pool',\n 'sword',\n 'sword-laser',\n 'sword-laser-alt',\n 'swords',\n 'swords-laser',\n 'synagogue',\n 'sync',\n 'sync-alt',\n 'syringe',\n 'table',\n 'table-tennis',\n 'tablet',\n 'tablet-alt',\n 'tablet-android',\n 'tablet-android-alt',\n 'tablet-rugged',\n 'tablets',\n 'tachometer',\n 'tachometer-alt',\n 'tachometer-alt-average',\n 'tachometer-alt-fast',\n 'tachometer-alt-fastest',\n 'tachometer-alt-slow',\n 'tachometer-alt-slowest',\n 'tachometer-average',\n 'tachometer-fast',\n 'tachometer-fastest',\n 'tachometer-slow',\n 'tachometer-slowest',\n 'taco',\n 'tag',\n 'tags',\n 'tally',\n 'tanakh',\n 'tape',\n 'tasks',\n 'tasks-alt',\n 'taxi',\n 'teeth',\n 'teeth-open',\n 'telescope',\n 'temperature-down',\n 'temperature-frigid',\n 'temperature-high',\n 'temperature-hot',\n 'temperature-low',\n 'temperature-up',\n 'tenge',\n 'tennis-ball',\n 'terminal',\n 'text',\n 'text-height',\n 'text-size',\n 'text-width',\n 'th',\n 'th-large',\n 'th-list',\n 'theater-masks',\n 'thermometer',\n 'thermometer-empty',\n 'thermometer-full',\n 'thermometer-half',\n 'thermometer-quarter',\n 'thermometer-three-quarters',\n 'theta',\n 'thumbs-down',\n 'thumbs-up',\n 'thumbtack',\n 'thunderstorm',\n 'thunderstorm-moon',\n 'thunderstorm-sun',\n 'ticket',\n 'ticket-alt',\n 'tilde',\n 'times',\n 'times-circle',\n 'times-hexagon',\n 'times-octagon',\n 'times-square',\n 'tint',\n 'tint-slash',\n 'tire',\n 'tire-flat',\n 'tire-pressure-warning',\n 'tire-rugged',\n 'tired',\n 'toggle-off',\n 'toggle-on',\n 'toilet',\n 'toilet-paper',\n 'toilet-paper-alt',\n 'tombstone',\n 'tombstone-alt',\n 'toolbox',\n 'tools',\n 'tooth',\n 'toothbrush',\n 'torah',\n 'torii-gate',\n 'tornado',\n 'tractor',\n 'trademark',\n 'traffic-cone',\n 'traffic-light',\n 'traffic-light-go',\n 'traffic-light-slow',\n 'traffic-light-stop',\n 'trailer',\n 'train',\n 'tram',\n 'transgender',\n 'transgender-alt',\n 'transporter',\n 'transporter-1',\n 'transporter-2',\n 'transporter-3',\n 'transporter-empty',\n 'trash',\n 'trash-alt',\n 'trash-restore',\n 'trash-restore-alt',\n 'trash-undo',\n 'trash-undo-alt',\n 'treasure-chest',\n 'tree',\n 'tree-alt',\n 'tree-christmas',\n 'tree-decorated',\n 'tree-large',\n 'tree-palm',\n 'trees',\n 'triangle',\n 'triangle-music',\n 'trophy',\n 'trophy-alt',\n 'truck',\n 'truck-container',\n 'truck-couch',\n 'truck-loading',\n 'truck-monster',\n 'truck-moving',\n 'truck-pickup',\n 'truck-plow',\n 'truck-ramp',\n 'trumpet',\n 'tshirt',\n 'tty',\n 'turkey',\n 'turntable',\n 'turtle',\n 'tv',\n 'tv-alt',\n 'tv-music',\n 'tv-retro',\n 'typewriter',\n 'ufo',\n 'ufo-beam',\n 'umbrella',\n 'umbrella-beach',\n 'underline',\n 'undo',\n 'undo-alt',\n 'unicorn',\n 'union',\n 'universal-access',\n 'university',\n 'unlink',\n 'unlock',\n 'unlock-alt',\n 'upload',\n 'usb-drive',\n 'usd-circle',\n 'usd-square',\n 'user',\n 'user-alien',\n 'user-alt',\n 'user-alt-slash',\n 'user-astronaut',\n 'user-chart',\n 'user-check',\n 'user-circle',\n 'user-clock',\n 'user-cog',\n 'user-cowboy',\n 'user-crown',\n 'user-edit',\n 'user-friends',\n 'user-graduate',\n 'user-hard-hat',\n 'user-headset',\n 'user-injured',\n 'user-lock',\n 'user-md',\n 'user-md-chat',\n 'user-minus',\n 'user-music',\n 'user-ninja',\n 'user-nurse',\n 'user-plus',\n 'user-robot',\n 'user-secret',\n 'user-shield',\n 'user-slash',\n 'user-tag',\n 'user-tie',\n 'user-times',\n 'user-visor',\n 'users',\n 'users-class',\n 'users-cog',\n 'users-crown',\n 'users-medical',\n 'utensil-fork',\n 'utensil-knife',\n 'utensil-spoon',\n 'utensils',\n 'utensils-alt',\n 'vacuum',\n 'vacuum-robot',\n 'value-absolute',\n 'vector-square',\n 'venus',\n 'venus-double',\n 'venus-mars',\n 'vhs',\n 'vial',\n 'vials',\n 'video',\n 'video-plus',\n 'video-slash',\n 'vihara',\n 'violin',\n 'voicemail',\n 'volcano',\n 'volleyball-ball',\n 'volume',\n 'volume-down',\n 'volume-mute',\n 'volume-off',\n 'volume-slash',\n 'volume-up',\n 'vote-nay',\n 'vote-yea',\n 'vr-cardboard',\n 'wagon-covered',\n 'walker',\n 'walkie-talkie',\n 'walking',\n 'wallet',\n 'wand',\n 'wand-magic',\n 'warehouse',\n 'warehouse-alt',\n 'washer',\n 'watch',\n 'watch-calculator',\n 'watch-fitness',\n 'water',\n 'water-lower',\n 'water-rise',\n 'wave-sine',\n 'wave-square',\n 'wave-triangle',\n 'waveform',\n 'waveform-path',\n 'webcam',\n 'webcam-slash',\n 'weight',\n 'weight-hanging',\n 'whale',\n 'wheat',\n 'wheelchair',\n 'whistle',\n 'wifi',\n 'wifi-1',\n 'wifi-2',\n 'wifi-slash',\n 'wind',\n 'wind-turbine',\n 'wind-warning',\n 'window',\n 'window-alt',\n 'window-close',\n 'window-frame',\n 'window-frame-open',\n 'window-maximize',\n 'window-minimize',\n 'window-restore',\n 'windsock',\n 'wine-bottle',\n 'wine-glass',\n 'wine-glass-alt',\n 'won-sign',\n 'wreath',\n 'wrench',\n 'x-ray',\n 'yen-sign',\n 'yin-yang',\n 'abacus',\n 'acorn',\n 'ad',\n 'address-book',\n 'address-card',\n 'adjust',\n 'air-conditioner',\n 'air-freshener',\n 'alarm-clock',\n 'alarm-exclamation',\n 'alarm-plus',\n 'alarm-snooze',\n 'album',\n 'album-collection',\n 'alicorn',\n 'alien',\n 'alien-monster',\n 'align-center',\n 'align-justify',\n 'align-left',\n 'align-right',\n 'align-slash',\n 'allergies',\n 'ambulance',\n 'american-sign-language-interpreting',\n 'amp-guitar',\n 'analytics',\n 'anchor',\n 'angel',\n 'angle-double-down',\n 'angle-double-left',\n 'angle-double-right',\n 'angle-double-up',\n 'angle-down',\n 'angle-left',\n 'angle-right',\n 'angle-up',\n 'angry',\n 'ankh',\n 'apple-alt',\n 'apple-crate',\n 'archive',\n 'archway',\n 'arrow-alt-circle-down',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-up',\n 'arrow-alt-down',\n 'arrow-alt-from-bottom',\n 'arrow-alt-from-left',\n 'arrow-alt-from-right',\n 'arrow-alt-from-top',\n 'arrow-alt-left',\n 'arrow-alt-right',\n 'arrow-alt-square-down',\n 'arrow-alt-square-left',\n 'arrow-alt-square-right',\n 'arrow-alt-square-up',\n 'arrow-alt-to-bottom',\n 'arrow-alt-to-left',\n 'arrow-alt-to-right',\n 'arrow-alt-to-top',\n 'arrow-alt-up',\n 'arrow-circle-down',\n 'arrow-circle-left',\n 'arrow-circle-right',\n 'arrow-circle-up',\n 'arrow-down',\n 'arrow-from-bottom',\n 'arrow-from-left',\n 'arrow-from-right',\n 'arrow-from-top',\n 'arrow-left',\n 'arrow-right',\n 'arrow-square-down',\n 'arrow-square-left',\n 'arrow-square-right',\n 'arrow-square-up',\n 'arrow-to-bottom',\n 'arrow-to-left',\n 'arrow-to-right',\n 'arrow-to-top',\n 'arrow-up',\n 'arrows',\n 'arrows-alt',\n 'arrows-alt-h',\n 'arrows-alt-v',\n 'arrows-h',\n 'arrows-v',\n 'assistive-listening-systems',\n 'asterisk',\n 'at',\n 'atlas',\n 'atom',\n 'atom-alt',\n 'audio-description',\n 'award',\n 'axe',\n 'axe-battle',\n 'baby',\n 'baby-carriage',\n 'backpack',\n 'backspace',\n 'backward',\n 'bacon',\n 'badge',\n 'badge-check',\n 'badge-dollar',\n 'badge-percent',\n 'badge-sheriff',\n 'badger-honey',\n 'bags-shopping',\n 'bahai',\n 'balance-scale',\n 'balance-scale-left',\n 'balance-scale-right',\n 'ball-pile',\n 'ballot',\n 'ballot-check',\n 'ban',\n 'band-aid',\n 'banjo',\n 'barcode',\n 'barcode-alt',\n 'barcode-read',\n 'barcode-scan',\n 'bars',\n 'baseball',\n 'baseball-ball',\n 'basketball-ball',\n 'basketball-hoop',\n 'bat',\n 'bath',\n 'battery-bolt',\n 'battery-empty',\n 'battery-full',\n 'battery-half',\n 'battery-quarter',\n 'battery-slash',\n 'battery-three-quarters',\n 'bed',\n 'bed-alt',\n 'bed-bunk',\n 'bed-empty',\n 'beer',\n 'bell',\n 'bell-exclamation',\n 'bell-on',\n 'bell-plus',\n 'bell-school',\n 'bell-school-slash',\n 'bell-slash',\n 'bells',\n 'betamax',\n 'bezier-curve',\n 'bible',\n 'bicycle',\n 'biking',\n 'biking-mountain',\n 'binoculars',\n 'biohazard',\n 'birthday-cake',\n 'blanket',\n 'blender',\n 'blender-phone',\n 'blind',\n 'blinds',\n 'blinds-open',\n 'blinds-raised',\n 'blog',\n 'bold',\n 'bolt',\n 'bomb',\n 'bone',\n 'bone-break',\n 'bong',\n 'book',\n 'book-alt',\n 'book-dead',\n 'book-heart',\n 'book-medical',\n 'book-open',\n 'book-reader',\n 'book-spells',\n 'book-user',\n 'bookmark',\n 'books',\n 'books-medical',\n 'boombox',\n 'boot',\n 'booth-curtain',\n 'border-all',\n 'border-bottom',\n 'border-center-h',\n 'border-center-v',\n 'border-inner',\n 'border-left',\n 'border-none',\n 'border-outer',\n 'border-right',\n 'border-style',\n 'border-style-alt',\n 'border-top',\n 'bow-arrow',\n 'bowling-ball',\n 'bowling-pins',\n 'box',\n 'box-alt',\n 'box-ballot',\n 'box-check',\n 'box-fragile',\n 'box-full',\n 'box-heart',\n 'box-open',\n 'box-up',\n 'box-usd',\n 'boxes',\n 'boxes-alt',\n 'boxing-glove',\n 'brackets',\n 'brackets-curly',\n 'braille',\n 'brain',\n 'bread-loaf',\n 'bread-slice',\n 'briefcase',\n 'briefcase-medical',\n 'bring-forward',\n 'bring-front',\n 'broadcast-tower',\n 'broom',\n 'browser',\n 'brush',\n 'bug',\n 'building',\n 'bullhorn',\n 'bullseye',\n 'bullseye-arrow',\n 'bullseye-pointer',\n 'burger-soda',\n 'burn',\n 'burrito',\n 'bus',\n 'bus-alt',\n 'bus-school',\n 'business-time',\n 'cabinet-filing',\n 'cactus',\n 'calculator',\n 'calculator-alt',\n 'calendar',\n 'calendar-alt',\n 'calendar-check',\n 'calendar-day',\n 'calendar-edit',\n 'calendar-exclamation',\n 'calendar-minus',\n 'calendar-plus',\n 'calendar-star',\n 'calendar-times',\n 'calendar-week',\n 'camcorder',\n 'camera',\n 'camera-alt',\n 'camera-home',\n 'camera-movie',\n 'camera-polaroid',\n 'camera-retro',\n 'campfire',\n 'campground',\n 'candle-holder',\n 'candy-cane',\n 'candy-corn',\n 'cannabis',\n 'capsules',\n 'car',\n 'car-alt',\n 'car-battery',\n 'car-building',\n 'car-bump',\n 'car-bus',\n 'car-crash',\n 'car-garage',\n 'car-mechanic',\n 'car-side',\n 'car-tilt',\n 'car-wash',\n 'caravan',\n 'caravan-alt',\n 'caret-circle-down',\n 'caret-circle-left',\n 'caret-circle-right',\n 'caret-circle-up',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-square-down',\n 'caret-square-left',\n 'caret-square-right',\n 'caret-square-up',\n 'caret-up',\n 'carrot',\n 'cars',\n 'cart-arrow-down',\n 'cart-plus',\n 'cash-register',\n 'cassette-tape',\n 'cat',\n 'cat-space',\n 'cauldron',\n 'cctv',\n 'certificate',\n 'chair',\n 'chair-office',\n 'chalkboard',\n 'chalkboard-teacher',\n 'charging-station',\n 'chart-area',\n 'chart-bar',\n 'chart-line',\n 'chart-line-down',\n 'chart-network',\n 'chart-pie',\n 'chart-pie-alt',\n 'chart-scatter',\n 'check',\n 'check-circle',\n 'check-double',\n 'check-square',\n 'cheese',\n 'cheese-swiss',\n 'cheeseburger',\n 'chess',\n 'chess-bishop',\n 'chess-bishop-alt',\n 'chess-board',\n 'chess-clock',\n 'chess-clock-alt',\n 'chess-king',\n 'chess-king-alt',\n 'chess-knight',\n 'chess-knight-alt',\n 'chess-pawn',\n 'chess-pawn-alt',\n 'chess-queen',\n 'chess-queen-alt',\n 'chess-rook',\n 'chess-rook-alt',\n 'chevron-circle-down',\n 'chevron-circle-left',\n 'chevron-circle-right',\n 'chevron-circle-up',\n 'chevron-double-down',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-double-up',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-square-down',\n 'chevron-square-left',\n 'chevron-square-right',\n 'chevron-square-up',\n 'chevron-up',\n 'child',\n 'chimney',\n 'church',\n 'circle',\n 'circle-notch',\n 'city',\n 'clarinet',\n 'claw-marks',\n 'clinic-medical',\n 'clipboard',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-list-check',\n 'clipboard-prescription',\n 'clipboard-user',\n 'clock',\n 'clone',\n 'closed-captioning',\n 'cloud',\n 'cloud-download',\n 'cloud-download-alt',\n 'cloud-drizzle',\n 'cloud-hail',\n 'cloud-hail-mixed',\n 'cloud-meatball',\n 'cloud-moon',\n 'cloud-moon-rain',\n 'cloud-music',\n 'cloud-rain',\n 'cloud-rainbow',\n 'cloud-showers',\n 'cloud-showers-heavy',\n 'cloud-sleet',\n 'cloud-snow',\n 'cloud-sun',\n 'cloud-sun-rain',\n 'cloud-upload',\n 'cloud-upload-alt',\n 'clouds',\n 'clouds-moon',\n 'clouds-sun',\n 'club',\n 'cocktail',\n 'code',\n 'code-branch',\n 'code-commit',\n 'code-merge',\n 'coffee',\n 'coffee-pot',\n 'coffee-togo',\n 'coffin',\n 'cog',\n 'cogs',\n 'coin',\n 'coins',\n 'columns',\n 'comet',\n 'comment',\n 'comment-alt',\n 'comment-alt-check',\n 'comment-alt-dollar',\n 'comment-alt-dots',\n 'comment-alt-edit',\n 'comment-alt-exclamation',\n 'comment-alt-lines',\n 'comment-alt-medical',\n 'comment-alt-minus',\n 'comment-alt-music',\n 'comment-alt-plus',\n 'comment-alt-slash',\n 'comment-alt-smile',\n 'comment-alt-times',\n 'comment-check',\n 'comment-dollar',\n 'comment-dots',\n 'comment-edit',\n 'comment-exclamation',\n 'comment-lines',\n 'comment-medical',\n 'comment-minus',\n 'comment-music',\n 'comment-plus',\n 'comment-slash',\n 'comment-smile',\n 'comment-times',\n 'comments',\n 'comments-alt',\n 'comments-alt-dollar',\n 'comments-dollar',\n 'compact-disc',\n 'compass',\n 'compass-slash',\n 'compress',\n 'compress-alt',\n 'compress-arrows-alt',\n 'compress-wide',\n 'computer-classic',\n 'computer-speaker',\n 'concierge-bell',\n 'construction',\n 'container-storage',\n 'conveyor-belt',\n 'conveyor-belt-alt',\n 'cookie',\n 'cookie-bite',\n 'copy',\n 'copyright',\n 'corn',\n 'couch',\n 'cow',\n 'cowbell',\n 'cowbell-more',\n 'credit-card',\n 'credit-card-blank',\n 'credit-card-front',\n 'cricket',\n 'croissant',\n 'crop',\n 'crop-alt',\n 'cross',\n 'crosshairs',\n 'crow',\n 'crown',\n 'crutch',\n 'crutches',\n 'cube',\n 'cubes',\n 'curling',\n 'cut',\n 'dagger',\n 'database',\n 'deaf',\n 'debug',\n 'deer',\n 'deer-rudolph',\n 'democrat',\n 'desktop',\n 'desktop-alt',\n 'dewpoint',\n 'dharmachakra',\n 'diagnoses',\n 'diamond',\n 'dice',\n 'dice-d10',\n 'dice-d12',\n 'dice-d20',\n 'dice-d4',\n 'dice-d6',\n 'dice-d8',\n 'dice-five',\n 'dice-four',\n 'dice-one',\n 'dice-six',\n 'dice-three',\n 'dice-two',\n 'digging',\n 'digital-tachograph',\n 'diploma',\n 'directions',\n 'disc-drive',\n 'disease',\n 'divide',\n 'dizzy',\n 'dna',\n 'do-not-enter',\n 'dog',\n 'dog-leashed',\n 'dollar-sign',\n 'dolly',\n 'dolly-empty',\n 'dolly-flatbed',\n 'dolly-flatbed-alt',\n 'dolly-flatbed-empty',\n 'donate',\n 'door-closed',\n 'door-open',\n 'dot-circle',\n 'dove',\n 'download',\n 'drafting-compass',\n 'dragon',\n 'draw-circle',\n 'draw-polygon',\n 'draw-square',\n 'dreidel',\n 'drone',\n 'drone-alt',\n 'drum',\n 'drum-steelpan',\n 'drumstick',\n 'drumstick-bite',\n 'dryer',\n 'dryer-alt',\n 'duck',\n 'dumbbell',\n 'dumpster',\n 'dumpster-fire',\n 'dungeon',\n 'ear',\n 'ear-muffs',\n 'eclipse',\n 'eclipse-alt',\n 'edit',\n 'egg',\n 'egg-fried',\n 'eject',\n 'elephant',\n 'ellipsis-h',\n 'ellipsis-h-alt',\n 'ellipsis-v',\n 'ellipsis-v-alt',\n 'empty-set',\n 'engine-warning',\n 'envelope',\n 'envelope-open',\n 'envelope-open-dollar',\n 'envelope-open-text',\n 'envelope-square',\n 'equals',\n 'eraser',\n 'ethernet',\n 'euro-sign',\n 'exchange',\n 'exchange-alt',\n 'exclamation',\n 'exclamation-circle',\n 'exclamation-square',\n 'exclamation-triangle',\n 'expand',\n 'expand-alt',\n 'expand-arrows',\n 'expand-arrows-alt',\n 'expand-wide',\n 'external-link',\n 'external-link-alt',\n 'external-link-square',\n 'external-link-square-alt',\n 'eye',\n 'eye-dropper',\n 'eye-evil',\n 'eye-slash',\n 'fan',\n 'fan-table',\n 'farm',\n 'fast-backward',\n 'fast-forward',\n 'faucet',\n 'faucet-drip',\n 'fax',\n 'feather',\n 'feather-alt',\n 'female',\n 'field-hockey',\n 'fighter-jet',\n 'file',\n 'file-alt',\n 'file-archive',\n 'file-audio',\n 'file-certificate',\n 'file-chart-line',\n 'file-chart-pie',\n 'file-check',\n 'file-code',\n 'file-contract',\n 'file-csv',\n 'file-download',\n 'file-edit',\n 'file-excel',\n 'file-exclamation',\n 'file-export',\n 'file-image',\n 'file-import',\n 'file-invoice',\n 'file-invoice-dollar',\n 'file-medical',\n 'file-medical-alt',\n 'file-minus',\n 'file-music',\n 'file-pdf',\n 'file-plus',\n 'file-powerpoint',\n 'file-prescription',\n 'file-search',\n 'file-signature',\n 'file-spreadsheet',\n 'file-times',\n 'file-upload',\n 'file-user',\n 'file-video',\n 'file-word',\n 'files-medical',\n 'fill',\n 'fill-drip',\n 'film',\n 'film-alt',\n 'film-canister',\n 'filter',\n 'fingerprint',\n 'fire',\n 'fire-alt',\n 'fire-extinguisher',\n 'fire-smoke',\n 'fireplace',\n 'first-aid',\n 'fish',\n 'fish-cooked',\n 'fist-raised',\n 'flag',\n 'flag-alt',\n 'flag-checkered',\n 'flag-usa',\n 'flame',\n 'flashlight',\n 'flask',\n 'flask-poison',\n 'flask-potion',\n 'flower',\n 'flower-daffodil',\n 'flower-tulip',\n 'flushed',\n 'flute',\n 'flux-capacitor',\n 'fog',\n 'folder',\n 'folder-minus',\n 'folder-open',\n 'folder-plus',\n 'folder-times',\n 'folder-tree',\n 'folders',\n 'font',\n 'font-awesome-logo-full',\n 'font-case',\n 'football-ball',\n 'football-helmet',\n 'forklift',\n 'forward',\n 'fragile',\n 'french-fries',\n 'frog',\n 'frosty-head',\n 'frown',\n 'frown-open',\n 'function',\n 'funnel-dollar',\n 'futbol',\n 'galaxy',\n 'game-board',\n 'game-board-alt',\n 'game-console-handheld',\n 'gamepad',\n 'gamepad-alt',\n 'garage',\n 'garage-car',\n 'garage-open',\n 'gas-pump',\n 'gas-pump-slash',\n 'gavel',\n 'gem',\n 'genderless',\n 'ghost',\n 'gift',\n 'gift-card',\n 'gifts',\n 'gingerbread-man',\n 'glass',\n 'glass-champagne',\n 'glass-cheers',\n 'glass-citrus',\n 'glass-martini',\n 'glass-martini-alt',\n 'glass-whiskey',\n 'glass-whiskey-rocks',\n 'glasses',\n 'glasses-alt',\n 'globe',\n 'globe-africa',\n 'globe-americas',\n 'globe-asia',\n 'globe-europe',\n 'globe-snow',\n 'globe-stand',\n 'golf-ball',\n 'golf-club',\n 'gopuram',\n 'graduation-cap',\n 'gramophone',\n 'greater-than',\n 'greater-than-equal',\n 'grimace',\n 'grin',\n 'grin-alt',\n 'grin-beam',\n 'grin-beam-sweat',\n 'grin-hearts',\n 'grin-squint',\n 'grin-squint-tears',\n 'grin-stars',\n 'grin-tears',\n 'grin-tongue',\n 'grin-tongue-squint',\n 'grin-tongue-wink',\n 'grin-wink',\n 'grip-horizontal',\n 'grip-lines',\n 'grip-lines-vertical',\n 'grip-vertical',\n 'guitar',\n 'guitar-electric',\n 'guitars',\n 'h-square',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'hamburger',\n 'hammer',\n 'hammer-war',\n 'hamsa',\n 'hand-heart',\n 'hand-holding',\n 'hand-holding-box',\n 'hand-holding-heart',\n 'hand-holding-magic',\n 'hand-holding-seedling',\n 'hand-holding-usd',\n 'hand-holding-water',\n 'hand-lizard',\n 'hand-middle-finger',\n 'hand-paper',\n 'hand-peace',\n 'hand-point-down',\n 'hand-point-left',\n 'hand-point-right',\n 'hand-point-up',\n 'hand-pointer',\n 'hand-receiving',\n 'hand-rock',\n 'hand-scissors',\n 'hand-spock',\n 'hands',\n 'hands-heart',\n 'hands-helping',\n 'hands-usd',\n 'handshake',\n 'handshake-alt',\n 'hanukiah',\n 'hard-hat',\n 'hashtag',\n 'hat-chef',\n 'hat-cowboy',\n 'hat-cowboy-side',\n 'hat-santa',\n 'hat-winter',\n 'hat-witch',\n 'hat-wizard',\n 'hdd',\n 'head-side',\n 'head-side-brain',\n 'head-side-headphones',\n 'head-side-medical',\n 'head-vr',\n 'heading',\n 'headphones',\n 'headphones-alt',\n 'headset',\n 'heart',\n 'heart-broken',\n 'heart-circle',\n 'heart-rate',\n 'heart-square',\n 'heartbeat',\n 'heat',\n 'helicopter',\n 'helmet-battle',\n 'hexagon',\n 'highlighter',\n 'hiking',\n 'hippo',\n 'history',\n 'hockey-mask',\n 'hockey-puck',\n 'hockey-sticks',\n 'holly-berry',\n 'home',\n 'home-alt',\n 'home-heart',\n 'home-lg',\n 'home-lg-alt',\n 'hood-cloak',\n 'horizontal-rule',\n 'horse',\n 'horse-head',\n 'horse-saddle',\n 'hospital',\n 'hospital-alt',\n 'hospital-symbol',\n 'hospital-user',\n 'hospitals',\n 'hot-tub',\n 'hotdog',\n 'hotel',\n 'hourglass',\n 'hourglass-end',\n 'hourglass-half',\n 'hourglass-start',\n 'house',\n 'house-damage',\n 'house-day',\n 'house-flood',\n 'house-leave',\n 'house-night',\n 'house-return',\n 'house-signal',\n 'hryvnia',\n 'humidity',\n 'hurricane',\n 'i-cursor',\n 'ice-cream',\n 'ice-skate',\n 'icicles',\n 'icons',\n 'icons-alt',\n 'id-badge',\n 'id-card',\n 'id-card-alt',\n 'igloo',\n 'image',\n 'image-polaroid',\n 'images',\n 'inbox',\n 'inbox-in',\n 'inbox-out',\n 'indent',\n 'industry',\n 'industry-alt',\n 'infinity',\n 'info',\n 'info-circle',\n 'info-square',\n 'inhaler',\n 'integral',\n 'intersection',\n 'inventory',\n 'island-tropical',\n 'italic',\n 'jack-o-lantern',\n 'jedi',\n 'joint',\n 'journal-whills',\n 'joystick',\n 'jug',\n 'kaaba',\n 'kazoo',\n 'kerning',\n 'key',\n 'key-skeleton',\n 'keyboard',\n 'keynote',\n 'khanda',\n 'kidneys',\n 'kiss',\n 'kiss-beam',\n 'kiss-wink-heart',\n 'kite',\n 'kiwi-bird',\n 'knife-kitchen',\n 'lambda',\n 'lamp',\n 'lamp-desk',\n 'lamp-floor',\n 'landmark',\n 'landmark-alt',\n 'language',\n 'laptop',\n 'laptop-code',\n 'laptop-medical',\n 'lasso',\n 'laugh',\n 'laugh-beam',\n 'laugh-squint',\n 'laugh-wink',\n 'layer-group',\n 'layer-minus',\n 'layer-plus',\n 'leaf',\n 'leaf-heart',\n 'leaf-maple',\n 'leaf-oak',\n 'lemon',\n 'less-than',\n 'less-than-equal',\n 'level-down',\n 'level-down-alt',\n 'level-up',\n 'level-up-alt',\n 'life-ring',\n 'light-ceiling',\n 'light-switch',\n 'light-switch-off',\n 'light-switch-on',\n 'lightbulb',\n 'lightbulb-dollar',\n 'lightbulb-exclamation',\n 'lightbulb-on',\n 'lightbulb-slash',\n 'lights-holiday',\n 'line-columns',\n 'line-height',\n 'link',\n 'lips',\n 'lira-sign',\n 'list',\n 'list-alt',\n 'list-music',\n 'list-ol',\n 'list-ul',\n 'location',\n 'location-arrow',\n 'location-circle',\n 'location-slash',\n 'lock',\n 'lock-alt',\n 'lock-open',\n 'lock-open-alt',\n 'long-arrow-alt-down',\n 'long-arrow-alt-left',\n 'long-arrow-alt-right',\n 'long-arrow-alt-up',\n 'long-arrow-down',\n 'long-arrow-left',\n 'long-arrow-right',\n 'long-arrow-up',\n 'loveseat',\n 'low-vision',\n 'luchador',\n 'luggage-cart',\n 'lungs',\n 'mace',\n 'magic',\n 'magnet',\n 'mail-bulk',\n 'mailbox',\n 'male',\n 'mandolin',\n 'map',\n 'map-marked',\n 'map-marked-alt',\n 'map-marker',\n 'map-marker-alt',\n 'map-marker-alt-slash',\n 'map-marker-check',\n 'map-marker-edit',\n 'map-marker-exclamation',\n 'map-marker-minus',\n 'map-marker-plus',\n 'map-marker-question',\n 'map-marker-slash',\n 'map-marker-smile',\n 'map-marker-times',\n 'map-pin',\n 'map-signs',\n 'marker',\n 'mars',\n 'mars-double',\n 'mars-stroke',\n 'mars-stroke-h',\n 'mars-stroke-v',\n 'mask',\n 'meat',\n 'medal',\n 'medkit',\n 'megaphone',\n 'meh',\n 'meh-blank',\n 'meh-rolling-eyes',\n 'memory',\n 'menorah',\n 'mercury',\n 'meteor',\n 'microchip',\n 'microphone',\n 'microphone-alt',\n 'microphone-alt-slash',\n 'microphone-slash',\n 'microphone-stand',\n 'microscope',\n 'microwave',\n 'mind-share',\n 'minus',\n 'minus-circle',\n 'minus-hexagon',\n 'minus-octagon',\n 'minus-square',\n 'mistletoe',\n 'mitten',\n 'mobile',\n 'mobile-alt',\n 'mobile-android',\n 'mobile-android-alt',\n 'money-bill',\n 'money-bill-alt',\n 'money-bill-wave',\n 'money-bill-wave-alt',\n 'money-check',\n 'money-check-alt',\n 'money-check-edit',\n 'money-check-edit-alt',\n 'monitor-heart-rate',\n 'monkey',\n 'monument',\n 'moon',\n 'moon-cloud',\n 'moon-stars',\n 'mortar-pestle',\n 'mosque',\n 'motorcycle',\n 'mountain',\n 'mountains',\n 'mouse',\n 'mouse-alt',\n 'mouse-pointer',\n 'mp3-player',\n 'mug',\n 'mug-hot',\n 'mug-marshmallows',\n 'mug-tea',\n 'music',\n 'music-alt',\n 'music-alt-slash',\n 'music-slash',\n 'narwhal',\n 'network-wired',\n 'neuter',\n 'newspaper',\n 'not-equal',\n 'notes-medical',\n 'object-group',\n 'object-ungroup',\n 'octagon',\n 'oil-can',\n 'oil-temp',\n 'om',\n 'omega',\n 'ornament',\n 'otter',\n 'outdent',\n 'outlet',\n 'oven',\n 'overline',\n 'page-break',\n 'pager',\n 'paint-brush',\n 'paint-brush-alt',\n 'paint-roller',\n 'palette',\n 'pallet',\n 'pallet-alt',\n 'paper-plane',\n 'paperclip',\n 'parachute-box',\n 'paragraph',\n 'paragraph-rtl',\n 'parking',\n 'parking-circle',\n 'parking-circle-slash',\n 'parking-slash',\n 'passport',\n 'pastafarianism',\n 'paste',\n 'pause',\n 'pause-circle',\n 'paw',\n 'paw-alt',\n 'paw-claws',\n 'peace',\n 'pegasus',\n 'pen',\n 'pen-alt',\n 'pen-fancy',\n 'pen-nib',\n 'pen-square',\n 'pencil',\n 'pencil-alt',\n 'pencil-paintbrush',\n 'pencil-ruler',\n 'pennant',\n 'people-carry',\n 'pepper-hot',\n 'percent',\n 'percentage',\n 'person-booth',\n 'person-carry',\n 'person-dolly',\n 'person-dolly-empty',\n 'person-sign',\n 'phone',\n 'phone-alt',\n 'phone-laptop',\n 'phone-office',\n 'phone-plus',\n 'phone-rotary',\n 'phone-slash',\n 'phone-square',\n 'phone-square-alt',\n 'phone-volume',\n 'photo-video',\n 'pi',\n 'piano',\n 'piano-keyboard',\n 'pie',\n 'pig',\n 'piggy-bank',\n 'pills',\n 'pizza',\n 'pizza-slice',\n 'place-of-worship',\n 'plane',\n 'plane-alt',\n 'plane-arrival',\n 'plane-departure',\n 'planet-moon',\n 'planet-ringed',\n 'play',\n 'play-circle',\n 'plug',\n 'plus',\n 'plus-circle',\n 'plus-hexagon',\n 'plus-octagon',\n 'plus-square',\n 'podcast',\n 'podium',\n 'podium-star',\n 'police-box',\n 'poll',\n 'poll-h',\n 'poll-people',\n 'poo',\n 'poo-storm',\n 'poop',\n 'popcorn',\n 'portal-enter',\n 'portal-exit',\n 'portrait',\n 'pound-sign',\n 'power-off',\n 'pray',\n 'praying-hands',\n 'prescription',\n 'prescription-bottle',\n 'prescription-bottle-alt',\n 'presentation',\n 'print',\n 'print-search',\n 'print-slash',\n 'procedures',\n 'project-diagram',\n 'projector',\n 'pumpkin',\n 'puzzle-piece',\n 'qrcode',\n 'question',\n 'question-circle',\n 'question-square',\n 'quidditch',\n 'quote-left',\n 'quote-right',\n 'quran',\n 'rabbit',\n 'rabbit-fast',\n 'racquet',\n 'radar',\n 'radiation',\n 'radiation-alt',\n 'radio',\n 'radio-alt',\n 'rainbow',\n 'raindrops',\n 'ram',\n 'ramp-loading',\n 'random',\n 'raygun',\n 'receipt',\n 'record-vinyl',\n 'rectangle-landscape',\n 'rectangle-portrait',\n 'rectangle-wide',\n 'recycle',\n 'redo',\n 'redo-alt',\n 'refrigerator',\n 'registered',\n 'remove-format',\n 'repeat',\n 'repeat-1',\n 'repeat-1-alt',\n 'repeat-alt',\n 'reply',\n 'reply-all',\n 'republican',\n 'restroom',\n 'retweet',\n 'retweet-alt',\n 'ribbon',\n 'ring',\n 'rings-wedding',\n 'road',\n 'robot',\n 'rocket',\n 'rocket-launch',\n 'route',\n 'route-highway',\n 'route-interstate',\n 'router',\n 'rss',\n 'rss-square',\n 'ruble-sign',\n 'ruler',\n 'ruler-combined',\n 'ruler-horizontal',\n 'ruler-triangle',\n 'ruler-vertical',\n 'running',\n 'rupee-sign',\n 'rv',\n 'sack',\n 'sack-dollar',\n 'sad-cry',\n 'sad-tear',\n 'salad',\n 'sandwich',\n 'satellite',\n 'satellite-dish',\n 'sausage',\n 'save',\n 'sax-hot',\n 'saxophone',\n 'scalpel',\n 'scalpel-path',\n 'scanner',\n 'scanner-image',\n 'scanner-keyboard',\n 'scanner-touchscreen',\n 'scarecrow',\n 'scarf',\n 'school',\n 'screwdriver',\n 'scroll',\n 'scroll-old',\n 'scrubber',\n 'scythe',\n 'sd-card',\n 'search',\n 'search-dollar',\n 'search-location',\n 'search-minus',\n 'search-plus',\n 'seedling',\n 'send-back',\n 'send-backward',\n 'sensor',\n 'sensor-alert',\n 'sensor-fire',\n 'sensor-on',\n 'sensor-smoke',\n 'server',\n 'shapes',\n 'share',\n 'share-all',\n 'share-alt',\n 'share-alt-square',\n 'share-square',\n 'sheep',\n 'shekel-sign',\n 'shield',\n 'shield-alt',\n 'shield-check',\n 'shield-cross',\n 'ship',\n 'shipping-fast',\n 'shipping-timed',\n 'shish-kebab',\n 'shoe-prints',\n 'shopping-bag',\n 'shopping-basket',\n 'shopping-cart',\n 'shovel',\n 'shovel-snow',\n 'shower',\n 'shredder',\n 'shuttle-van',\n 'shuttlecock',\n 'sickle',\n 'sigma',\n 'sign',\n 'sign-in',\n 'sign-in-alt',\n 'sign-language',\n 'sign-out',\n 'sign-out-alt',\n 'signal',\n 'signal-1',\n 'signal-2',\n 'signal-3',\n 'signal-4',\n 'signal-alt',\n 'signal-alt-1',\n 'signal-alt-2',\n 'signal-alt-3',\n 'signal-alt-slash',\n 'signal-slash',\n 'signal-stream',\n 'signature',\n 'sim-card',\n 'siren',\n 'siren-on',\n 'sitemap',\n 'skating',\n 'skeleton',\n 'ski-jump',\n 'ski-lift',\n 'skiing',\n 'skiing-nordic',\n 'skull',\n 'skull-cow',\n 'skull-crossbones',\n 'slash',\n 'sledding',\n 'sleigh',\n 'sliders-h',\n 'sliders-h-square',\n 'sliders-v',\n 'sliders-v-square',\n 'smile',\n 'smile-beam',\n 'smile-plus',\n 'smile-wink',\n 'smog',\n 'smoke',\n 'smoking',\n 'smoking-ban',\n 'sms',\n 'snake',\n 'snooze',\n 'snow-blowing',\n 'snowboarding',\n 'snowflake',\n 'snowflakes',\n 'snowman',\n 'snowmobile',\n 'snowplow',\n 'socks',\n 'solar-panel',\n 'solar-system',\n 'sort',\n 'sort-alpha-down',\n 'sort-alpha-down-alt',\n 'sort-alpha-up',\n 'sort-alpha-up-alt',\n 'sort-alt',\n 'sort-amount-down',\n 'sort-amount-down-alt',\n 'sort-amount-up',\n 'sort-amount-up-alt',\n 'sort-circle',\n 'sort-circle-down',\n 'sort-circle-up',\n 'sort-down',\n 'sort-numeric-down',\n 'sort-numeric-down-alt',\n 'sort-numeric-up',\n 'sort-numeric-up-alt',\n 'sort-shapes-down',\n 'sort-shapes-down-alt',\n 'sort-shapes-up',\n 'sort-shapes-up-alt',\n 'sort-size-down',\n 'sort-size-down-alt',\n 'sort-size-up',\n 'sort-size-up-alt',\n 'sort-up',\n 'soup',\n 'spa',\n 'space-shuttle',\n 'space-station-moon',\n 'space-station-moon-alt',\n 'spade',\n 'sparkles',\n 'speaker',\n 'speakers',\n 'spell-check',\n 'spider',\n 'spider-black-widow',\n 'spider-web',\n 'spinner',\n 'spinner-third',\n 'splotch',\n 'spray-can',\n 'sprinkler',\n 'square',\n 'square-full',\n 'square-root',\n 'square-root-alt',\n 'squirrel',\n 'staff',\n 'stamp',\n 'star',\n 'star-and-crescent',\n 'star-christmas',\n 'star-exclamation',\n 'star-half',\n 'star-half-alt',\n 'star-of-david',\n 'star-of-life',\n 'star-shooting',\n 'starfighter',\n 'starfighter-alt',\n 'stars',\n 'starship',\n 'starship-freighter',\n 'steak',\n 'steering-wheel',\n 'step-backward',\n 'step-forward',\n 'stethoscope',\n 'sticky-note',\n 'stocking',\n 'stomach',\n 'stop',\n 'stop-circle',\n 'stopwatch',\n 'store',\n 'store-alt',\n 'stream',\n 'street-view',\n 'stretcher',\n 'strikethrough',\n 'stroopwafel',\n 'subscript',\n 'subway',\n 'suitcase',\n 'suitcase-rolling',\n 'sun',\n 'sun-cloud',\n 'sun-dust',\n 'sun-haze',\n 'sunglasses',\n 'sunrise',\n 'sunset',\n 'superscript',\n 'surprise',\n 'swatchbook',\n 'swimmer',\n 'swimming-pool',\n 'sword',\n 'sword-laser',\n 'sword-laser-alt',\n 'swords',\n 'swords-laser',\n 'synagogue',\n 'sync',\n 'sync-alt',\n 'syringe',\n 'table',\n 'table-tennis',\n 'tablet',\n 'tablet-alt',\n 'tablet-android',\n 'tablet-android-alt',\n 'tablet-rugged',\n 'tablets',\n 'tachometer',\n 'tachometer-alt',\n 'tachometer-alt-average',\n 'tachometer-alt-fast',\n 'tachometer-alt-fastest',\n 'tachometer-alt-slow',\n 'tachometer-alt-slowest',\n 'tachometer-average',\n 'tachometer-fast',\n 'tachometer-fastest',\n 'tachometer-slow',\n 'tachometer-slowest',\n 'taco',\n 'tag',\n 'tags',\n 'tally',\n 'tanakh',\n 'tape',\n 'tasks',\n 'tasks-alt',\n 'taxi',\n 'teeth',\n 'teeth-open',\n 'telescope',\n 'temperature-down',\n 'temperature-frigid',\n 'temperature-high',\n 'temperature-hot',\n 'temperature-low',\n 'temperature-up',\n 'tenge',\n 'tennis-ball',\n 'terminal',\n 'text',\n 'text-height',\n 'text-size',\n 'text-width',\n 'th',\n 'th-large',\n 'th-list',\n 'theater-masks',\n 'thermometer',\n 'thermometer-empty',\n 'thermometer-full',\n 'thermometer-half',\n 'thermometer-quarter',\n 'thermometer-three-quarters',\n 'theta',\n 'thumbs-down',\n 'thumbs-up',\n 'thumbtack',\n 'thunderstorm',\n 'thunderstorm-moon',\n 'thunderstorm-sun',\n 'ticket',\n 'ticket-alt',\n 'tilde',\n 'times',\n 'times-circle',\n 'times-hexagon',\n 'times-octagon',\n 'times-square',\n 'tint',\n 'tint-slash',\n 'tire',\n 'tire-flat',\n 'tire-pressure-warning',\n 'tire-rugged',\n 'tired',\n 'toggle-off',\n 'toggle-on',\n 'toilet',\n 'toilet-paper',\n 'toilet-paper-alt',\n 'tombstone',\n 'tombstone-alt',\n 'toolbox',\n 'tools',\n 'tooth',\n 'toothbrush',\n 'torah',\n 'torii-gate',\n 'tornado',\n 'tractor',\n 'trademark',\n 'traffic-cone',\n 'traffic-light',\n 'traffic-light-go',\n 'traffic-light-slow',\n 'traffic-light-stop',\n 'trailer',\n 'train',\n 'tram',\n 'transgender',\n 'transgender-alt',\n 'transporter',\n 'transporter-1',\n 'transporter-2',\n 'transporter-3',\n 'transporter-empty',\n 'trash',\n 'trash-alt',\n 'trash-restore',\n 'trash-restore-alt',\n 'trash-undo',\n 'trash-undo-alt',\n 'treasure-chest',\n 'tree',\n 'tree-alt',\n 'tree-christmas',\n 'tree-decorated',\n 'tree-large',\n 'tree-palm',\n 'trees',\n 'triangle',\n 'triangle-music',\n 'trophy',\n 'trophy-alt',\n 'truck',\n 'truck-container',\n 'truck-couch',\n 'truck-loading',\n 'truck-monster',\n 'truck-moving',\n 'truck-pickup',\n 'truck-plow',\n 'truck-ramp',\n 'trumpet',\n 'tshirt',\n 'tty',\n 'turkey',\n 'turntable',\n 'turtle',\n 'tv',\n 'tv-alt',\n 'tv-music',\n 'tv-retro',\n 'typewriter',\n 'ufo',\n 'ufo-beam',\n 'umbrella',\n 'umbrella-beach',\n 'underline',\n 'undo',\n 'undo-alt',\n 'unicorn',\n 'union',\n 'universal-access',\n 'university',\n 'unlink',\n 'unlock',\n 'unlock-alt',\n 'upload',\n 'usb-drive',\n 'usd-circle',\n 'usd-square',\n 'user',\n 'user-alien',\n 'user-alt',\n 'user-alt-slash',\n 'user-astronaut',\n 'user-chart',\n 'user-check',\n 'user-circle',\n 'user-clock',\n 'user-cog',\n 'user-cowboy',\n 'user-crown',\n 'user-edit',\n 'user-friends',\n 'user-graduate',\n 'user-hard-hat',\n 'user-headset',\n 'user-injured',\n 'user-lock',\n 'user-md',\n 'user-md-chat',\n 'user-minus',\n 'user-music',\n 'user-ninja',\n 'user-nurse',\n 'user-plus',\n 'user-robot',\n 'user-secret',\n 'user-shield',\n 'user-slash',\n 'user-tag',\n 'user-tie',\n 'user-times',\n 'user-visor',\n 'users',\n 'users-class',\n 'users-cog',\n 'users-crown',\n 'users-medical',\n 'utensil-fork',\n 'utensil-knife',\n 'utensil-spoon',\n 'utensils',\n 'utensils-alt',\n 'vacuum',\n 'vacuum-robot',\n 'value-absolute',\n 'vector-square',\n 'venus',\n 'venus-double',\n 'venus-mars',\n 'vhs',\n 'vial',\n 'vials',\n 'video',\n 'video-plus',\n 'video-slash',\n 'vihara',\n 'violin',\n 'voicemail',\n 'volcano',\n 'volleyball-ball',\n 'volume',\n 'volume-down',\n 'volume-mute',\n 'volume-off',\n 'volume-slash',\n 'volume-up',\n 'vote-nay',\n 'vote-yea',\n 'vr-cardboard',\n 'wagon-covered',\n 'walker',\n 'walkie-talkie',\n 'walking',\n 'wallet',\n 'wand',\n 'wand-magic',\n 'warehouse',\n 'warehouse-alt',\n 'washer',\n 'watch',\n 'watch-calculator',\n 'watch-fitness',\n 'water',\n 'water-lower',\n 'water-rise',\n 'wave-sine',\n 'wave-square',\n 'wave-triangle',\n 'waveform',\n 'waveform-path',\n 'webcam',\n 'webcam-slash',\n 'weight',\n 'weight-hanging',\n 'whale',\n 'wheat',\n 'wheelchair',\n 'whistle',\n 'wifi',\n 'wifi-1',\n 'wifi-2',\n 'wifi-slash',\n 'wind',\n 'wind-turbine',\n 'wind-warning',\n 'window',\n 'window-alt',\n 'window-close',\n 'window-frame',\n 'window-frame-open',\n 'window-maximize',\n 'window-minimize',\n 'window-restore',\n 'windsock',\n 'wine-bottle',\n 'wine-glass',\n 'wine-glass-alt',\n 'won-sign',\n 'wreath',\n 'wrench',\n 'x-ray',\n 'yen-sign',\n 'yin-yang',\n 'abacus',\n 'acorn',\n 'ad',\n 'address-book',\n 'address-card',\n 'adjust',\n 'air-conditioner',\n 'air-freshener',\n 'alarm-clock',\n 'alarm-exclamation',\n 'alarm-plus',\n 'alarm-snooze',\n 'album',\n 'album-collection',\n 'alicorn',\n 'alien',\n 'alien-monster',\n 'align-center',\n 'align-justify',\n 'align-left',\n 'align-right',\n 'align-slash',\n 'allergies',\n 'ambulance',\n 'american-sign-language-interpreting',\n 'amp-guitar',\n 'analytics',\n 'anchor',\n 'angel',\n 'angle-double-down',\n 'angle-double-left',\n 'angle-double-right',\n 'angle-double-up',\n 'angle-down',\n 'angle-left',\n 'angle-right',\n 'angle-up',\n 'angry',\n 'ankh',\n 'apple-alt',\n 'apple-crate',\n 'archive',\n 'archway',\n 'arrow-alt-circle-down',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-up',\n 'arrow-alt-down',\n 'arrow-alt-from-bottom',\n 'arrow-alt-from-left',\n 'arrow-alt-from-right',\n 'arrow-alt-from-top',\n 'arrow-alt-left',\n 'arrow-alt-right',\n 'arrow-alt-square-down',\n 'arrow-alt-square-left',\n 'arrow-alt-square-right',\n 'arrow-alt-square-up',\n 'arrow-alt-to-bottom',\n 'arrow-alt-to-left',\n 'arrow-alt-to-right',\n 'arrow-alt-to-top',\n 'arrow-alt-up',\n 'arrow-circle-down',\n 'arrow-circle-left',\n 'arrow-circle-right',\n 'arrow-circle-up',\n 'arrow-down',\n 'arrow-from-bottom',\n 'arrow-from-left',\n 'arrow-from-right',\n 'arrow-from-top',\n 'arrow-left',\n 'arrow-right',\n 'arrow-square-down',\n 'arrow-square-left',\n 'arrow-square-right',\n 'arrow-square-up',\n 'arrow-to-bottom',\n 'arrow-to-left',\n 'arrow-to-right',\n 'arrow-to-top',\n 'arrow-up',\n 'arrows',\n 'arrows-alt',\n 'arrows-alt-h',\n 'arrows-alt-v',\n 'arrows-h',\n 'arrows-v',\n 'assistive-listening-systems',\n 'asterisk',\n 'at',\n 'atlas',\n 'atom',\n 'atom-alt',\n 'audio-description',\n 'award',\n 'axe',\n 'axe-battle',\n 'baby',\n 'baby-carriage',\n 'backpack',\n 'backspace',\n 'backward',\n 'bacon',\n 'badge',\n 'badge-check',\n 'badge-dollar',\n 'badge-percent',\n 'badge-sheriff',\n 'badger-honey',\n 'bags-shopping',\n 'bahai',\n 'balance-scale',\n 'balance-scale-left',\n 'balance-scale-right',\n 'ball-pile',\n 'ballot',\n 'ballot-check',\n 'ban',\n 'band-aid',\n 'banjo',\n 'barcode',\n 'barcode-alt',\n 'barcode-read',\n 'barcode-scan',\n 'bars',\n 'baseball',\n 'baseball-ball',\n 'basketball-ball',\n 'basketball-hoop',\n 'bat',\n 'bath',\n 'battery-bolt',\n 'battery-empty',\n 'battery-full',\n 'battery-half',\n 'battery-quarter',\n 'battery-slash',\n 'battery-three-quarters',\n 'bed',\n 'bed-alt',\n 'bed-bunk',\n 'bed-empty',\n 'beer',\n 'bell',\n 'bell-exclamation',\n 'bell-on',\n 'bell-plus',\n 'bell-school',\n 'bell-school-slash',\n 'bell-slash',\n 'bells',\n 'betamax',\n 'bezier-curve',\n 'bible',\n 'bicycle',\n 'biking',\n 'biking-mountain',\n 'binoculars',\n 'biohazard',\n 'birthday-cake',\n 'blanket',\n 'blender',\n 'blender-phone',\n 'blind',\n 'blinds',\n 'blinds-open',\n 'blinds-raised',\n 'blog',\n 'bold',\n 'bolt',\n 'bomb',\n 'bone',\n 'bone-break',\n 'bong',\n 'book',\n 'book-alt',\n 'book-dead',\n 'book-heart',\n 'book-medical',\n 'book-open',\n 'book-reader',\n 'book-spells',\n 'book-user',\n 'bookmark',\n 'books',\n 'books-medical',\n 'boombox',\n 'boot',\n 'booth-curtain',\n 'border-all',\n 'border-bottom',\n 'border-center-h',\n 'border-center-v',\n 'border-inner',\n 'border-left',\n 'border-none',\n 'border-outer',\n 'border-right',\n 'border-style',\n 'border-style-alt',\n 'border-top',\n 'bow-arrow',\n 'bowling-ball',\n 'bowling-pins',\n 'box',\n 'box-alt',\n 'box-ballot',\n 'box-check',\n 'box-fragile',\n 'box-full',\n 'box-heart',\n 'box-open',\n 'box-up',\n 'box-usd',\n 'boxes',\n 'boxes-alt',\n 'boxing-glove',\n 'brackets',\n 'brackets-curly',\n 'braille',\n 'brain',\n 'bread-loaf',\n 'bread-slice',\n 'briefcase',\n 'briefcase-medical',\n 'bring-forward',\n 'bring-front',\n 'broadcast-tower',\n 'broom',\n 'browser',\n 'brush',\n 'bug',\n 'building',\n 'bullhorn',\n 'bullseye',\n 'bullseye-arrow',\n 'bullseye-pointer',\n 'burger-soda',\n 'burn',\n 'burrito',\n 'bus',\n 'bus-alt',\n 'bus-school',\n 'business-time',\n 'cabinet-filing',\n 'cactus',\n 'calculator',\n 'calculator-alt',\n 'calendar',\n 'calendar-alt',\n 'calendar-check',\n 'calendar-day',\n 'calendar-edit',\n 'calendar-exclamation',\n 'calendar-minus',\n 'calendar-plus',\n 'calendar-star',\n 'calendar-times',\n 'calendar-week',\n 'camcorder',\n 'camera',\n 'camera-alt',\n 'camera-home',\n 'camera-movie',\n 'camera-polaroid',\n 'camera-retro',\n 'campfire',\n 'campground',\n 'candle-holder',\n 'candy-cane',\n 'candy-corn',\n 'cannabis',\n 'capsules',\n 'car',\n 'car-alt',\n 'car-battery',\n 'car-building',\n 'car-bump',\n 'car-bus',\n 'car-crash',\n 'car-garage',\n 'car-mechanic',\n 'car-side',\n 'car-tilt',\n 'car-wash',\n 'caravan',\n 'caravan-alt',\n 'caret-circle-down',\n 'caret-circle-left',\n 'caret-circle-right',\n 'caret-circle-up',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-square-down',\n 'caret-square-left',\n 'caret-square-right',\n 'caret-square-up',\n 'caret-up',\n 'carrot',\n 'cars',\n 'cart-arrow-down',\n 'cart-plus',\n 'cash-register',\n 'cassette-tape',\n 'cat',\n 'cat-space',\n 'cauldron',\n 'cctv',\n 'certificate',\n 'chair',\n 'chair-office',\n 'chalkboard',\n 'chalkboard-teacher',\n 'charging-station',\n 'chart-area',\n 'chart-bar',\n 'chart-line',\n 'chart-line-down',\n 'chart-network',\n 'chart-pie',\n 'chart-pie-alt',\n 'chart-scatter',\n 'check',\n 'check-circle',\n 'check-double',\n 'check-square',\n 'cheese',\n 'cheese-swiss',\n 'cheeseburger',\n 'chess',\n 'chess-bishop',\n 'chess-bishop-alt',\n 'chess-board',\n 'chess-clock',\n 'chess-clock-alt',\n 'chess-king',\n 'chess-king-alt',\n 'chess-knight',\n 'chess-knight-alt',\n 'chess-pawn',\n 'chess-pawn-alt',\n 'chess-queen',\n 'chess-queen-alt',\n 'chess-rook',\n 'chess-rook-alt',\n 'chevron-circle-down',\n 'chevron-circle-left',\n 'chevron-circle-right',\n 'chevron-circle-up',\n 'chevron-double-down',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-double-up',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-square-down',\n 'chevron-square-left',\n 'chevron-square-right',\n 'chevron-square-up',\n 'chevron-up',\n 'child',\n 'chimney',\n 'church',\n 'circle',\n 'circle-notch',\n 'city',\n 'clarinet',\n 'claw-marks',\n 'clinic-medical',\n 'clipboard',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-list-check',\n 'clipboard-prescription',\n 'clipboard-user',\n 'clock',\n 'clone',\n 'closed-captioning',\n 'cloud',\n 'cloud-download',\n 'cloud-download-alt',\n 'cloud-drizzle',\n 'cloud-hail',\n 'cloud-hail-mixed',\n 'cloud-meatball',\n 'cloud-moon',\n 'cloud-moon-rain',\n 'cloud-music',\n 'cloud-rain',\n 'cloud-rainbow',\n 'cloud-showers',\n 'cloud-showers-heavy',\n 'cloud-sleet',\n 'cloud-snow',\n 'cloud-sun',\n 'cloud-sun-rain',\n 'cloud-upload',\n 'cloud-upload-alt',\n 'clouds',\n 'clouds-moon',\n 'clouds-sun',\n 'club',\n 'cocktail',\n 'code',\n 'code-branch',\n 'code-commit',\n 'code-merge',\n 'coffee',\n 'coffee-pot',\n 'coffee-togo',\n 'coffin',\n 'cog',\n 'cogs',\n 'coin',\n 'coins',\n 'columns',\n 'comet',\n 'comment',\n 'comment-alt',\n 'comment-alt-check',\n 'comment-alt-dollar',\n 'comment-alt-dots',\n 'comment-alt-edit',\n 'comment-alt-exclamation',\n 'comment-alt-lines',\n 'comment-alt-medical',\n 'comment-alt-minus',\n 'comment-alt-music',\n 'comment-alt-plus',\n 'comment-alt-slash',\n 'comment-alt-smile',\n 'comment-alt-times',\n 'comment-check',\n 'comment-dollar',\n 'comment-dots',\n 'comment-edit',\n 'comment-exclamation',\n 'comment-lines',\n 'comment-medical',\n 'comment-minus',\n 'comment-music',\n 'comment-plus',\n 'comment-slash',\n 'comment-smile',\n 'comment-times',\n 'comments',\n 'comments-alt',\n 'comments-alt-dollar',\n 'comments-dollar',\n 'compact-disc',\n 'compass',\n 'compass-slash',\n 'compress',\n 'compress-alt',\n 'compress-arrows-alt',\n 'compress-wide',\n 'computer-classic',\n 'computer-speaker',\n 'concierge-bell',\n 'construction',\n 'container-storage',\n 'conveyor-belt',\n 'conveyor-belt-alt',\n 'cookie',\n 'cookie-bite',\n 'copy',\n 'copyright',\n 'corn',\n 'couch',\n 'cow',\n 'cowbell',\n 'cowbell-more',\n 'credit-card',\n 'credit-card-blank',\n 'credit-card-front',\n 'cricket',\n 'croissant',\n 'crop',\n 'crop-alt',\n 'cross',\n 'crosshairs',\n 'crow',\n 'crown',\n 'crutch',\n 'crutches',\n 'cube',\n 'cubes',\n 'curling',\n 'cut',\n 'dagger',\n 'database',\n 'deaf',\n 'debug',\n 'deer',\n 'deer-rudolph',\n 'democrat',\n 'desktop',\n 'desktop-alt',\n 'dewpoint',\n 'dharmachakra',\n 'diagnoses',\n 'diamond',\n 'dice',\n 'dice-d10',\n 'dice-d12',\n 'dice-d20',\n 'dice-d4',\n 'dice-d6',\n 'dice-d8',\n 'dice-five',\n 'dice-four',\n 'dice-one',\n 'dice-six',\n 'dice-three',\n 'dice-two',\n 'digging',\n 'digital-tachograph',\n 'diploma',\n 'directions',\n 'disc-drive',\n 'disease',\n 'divide',\n 'dizzy',\n 'dna',\n 'do-not-enter',\n 'dog',\n 'dog-leashed',\n 'dollar-sign',\n 'dolly',\n 'dolly-empty',\n 'dolly-flatbed',\n 'dolly-flatbed-alt',\n 'dolly-flatbed-empty',\n 'donate',\n 'door-closed',\n 'door-open',\n 'dot-circle',\n 'dove',\n 'download',\n 'drafting-compass',\n 'dragon',\n 'draw-circle',\n 'draw-polygon',\n 'draw-square',\n 'dreidel',\n 'drone',\n 'drone-alt',\n 'drum',\n 'drum-steelpan',\n 'drumstick',\n 'drumstick-bite',\n 'dryer',\n 'dryer-alt',\n 'duck',\n 'dumbbell',\n 'dumpster',\n 'dumpster-fire',\n 'dungeon',\n 'ear',\n 'ear-muffs',\n 'eclipse',\n 'eclipse-alt',\n 'edit',\n 'egg',\n 'egg-fried',\n 'eject',\n 'elephant',\n 'ellipsis-h',\n 'ellipsis-h-alt',\n 'ellipsis-v',\n 'ellipsis-v-alt',\n 'empty-set',\n 'engine-warning',\n 'envelope',\n 'envelope-open',\n 'envelope-open-dollar',\n 'envelope-open-text',\n 'envelope-square',\n 'equals',\n 'eraser',\n 'ethernet',\n 'euro-sign',\n 'exchange',\n 'exchange-alt',\n 'exclamation',\n 'exclamation-circle',\n 'exclamation-square',\n 'exclamation-triangle',\n 'expand',\n 'expand-alt',\n 'expand-arrows',\n 'expand-arrows-alt',\n 'expand-wide',\n 'external-link',\n 'external-link-alt',\n 'external-link-square',\n 'external-link-square-alt',\n 'eye',\n 'eye-dropper',\n 'eye-evil',\n 'eye-slash',\n 'fan',\n 'fan-table',\n 'farm',\n 'fast-backward',\n 'fast-forward',\n 'faucet',\n 'faucet-drip',\n 'fax',\n 'feather',\n 'feather-alt',\n 'female',\n 'field-hockey',\n 'fighter-jet',\n 'file',\n 'file-alt',\n 'file-archive',\n 'file-audio',\n 'file-certificate',\n 'file-chart-line',\n 'file-chart-pie',\n 'file-check',\n 'file-code',\n 'file-contract',\n 'file-csv',\n 'file-download',\n 'file-edit',\n 'file-excel',\n 'file-exclamation',\n 'file-export',\n 'file-image',\n 'file-import',\n 'file-invoice',\n 'file-invoice-dollar',\n 'file-medical',\n 'file-medical-alt',\n 'file-minus',\n 'file-music',\n 'file-pdf',\n 'file-plus',\n 'file-powerpoint',\n 'file-prescription',\n 'file-search',\n 'file-signature',\n 'file-spreadsheet',\n 'file-times',\n 'file-upload',\n 'file-user',\n 'file-video',\n 'file-word',\n 'files-medical',\n 'fill',\n 'fill-drip',\n 'film',\n 'film-alt',\n 'film-canister',\n 'filter',\n 'fingerprint',\n 'fire',\n 'fire-alt',\n 'fire-extinguisher',\n 'fire-smoke',\n 'fireplace',\n 'first-aid',\n 'fish',\n 'fish-cooked',\n 'fist-raised',\n 'flag',\n 'flag-alt',\n 'flag-checkered',\n 'flag-usa',\n 'flame',\n 'flashlight',\n 'flask',\n 'flask-poison',\n 'flask-potion',\n 'flower',\n 'flower-daffodil',\n 'flower-tulip',\n 'flushed',\n 'flute',\n 'flux-capacitor',\n 'fog',\n 'folder',\n 'folder-minus',\n 'folder-open',\n 'folder-plus',\n 'folder-times',\n 'folder-tree',\n 'folders',\n 'font',\n 'font-awesome-logo-full',\n 'font-case',\n 'football-ball',\n 'football-helmet',\n 'forklift',\n 'forward',\n 'fragile',\n 'french-fries',\n 'frog',\n 'frosty-head',\n 'frown',\n 'frown-open',\n 'function',\n 'funnel-dollar',\n 'futbol',\n 'galaxy',\n 'game-board',\n 'game-board-alt',\n 'game-console-handheld',\n 'gamepad',\n 'gamepad-alt',\n 'garage',\n 'garage-car',\n 'garage-open',\n 'gas-pump',\n 'gas-pump-slash',\n 'gavel',\n 'gem',\n 'genderless',\n 'ghost',\n 'gift',\n 'gift-card',\n 'gifts',\n 'gingerbread-man',\n 'glass',\n 'glass-champagne',\n 'glass-cheers',\n 'glass-citrus',\n 'glass-martini',\n 'glass-martini-alt',\n 'glass-whiskey',\n 'glass-whiskey-rocks',\n 'glasses',\n 'glasses-alt',\n 'globe',\n 'globe-africa',\n 'globe-americas',\n 'globe-asia',\n 'globe-europe',\n 'globe-snow',\n 'globe-stand',\n 'golf-ball',\n 'golf-club',\n 'gopuram',\n 'graduation-cap',\n 'gramophone',\n 'greater-than',\n 'greater-than-equal',\n 'grimace',\n 'grin',\n 'grin-alt',\n 'grin-beam',\n 'grin-beam-sweat',\n 'grin-hearts',\n 'grin-squint',\n 'grin-squint-tears',\n 'grin-stars',\n 'grin-tears',\n 'grin-tongue',\n 'grin-tongue-squint',\n 'grin-tongue-wink',\n 'grin-wink',\n 'grip-horizontal',\n 'grip-lines',\n 'grip-lines-vertical',\n 'grip-vertical',\n 'guitar',\n 'guitar-electric',\n 'guitars',\n 'h-square',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'hamburger',\n 'hammer',\n 'hammer-war',\n 'hamsa',\n 'hand-heart',\n 'hand-holding',\n 'hand-holding-box',\n 'hand-holding-heart',\n 'hand-holding-magic',\n 'hand-holding-seedling',\n 'hand-holding-usd',\n 'hand-holding-water',\n 'hand-lizard',\n 'hand-middle-finger',\n 'hand-paper',\n 'hand-peace',\n 'hand-point-down',\n 'hand-point-left',\n 'hand-point-right',\n 'hand-point-up',\n 'hand-pointer',\n 'hand-receiving',\n 'hand-rock',\n 'hand-scissors',\n 'hand-spock',\n 'hands',\n 'hands-heart',\n 'hands-helping',\n 'hands-usd',\n 'handshake',\n 'handshake-alt',\n 'hanukiah',\n 'hard-hat',\n 'hashtag',\n 'hat-chef',\n 'hat-cowboy',\n 'hat-cowboy-side',\n 'hat-santa',\n 'hat-winter',\n 'hat-witch',\n 'hat-wizard',\n 'hdd',\n 'head-side',\n 'head-side-brain',\n 'head-side-headphones',\n 'head-side-medical',\n 'head-vr',\n 'heading',\n 'headphones',\n 'headphones-alt',\n 'headset',\n 'heart',\n 'heart-broken',\n 'heart-circle',\n 'heart-rate',\n 'heart-square',\n 'heartbeat',\n 'heat',\n 'helicopter',\n 'helmet-battle',\n 'hexagon',\n 'highlighter',\n 'hiking',\n 'hippo',\n 'history',\n 'hockey-mask',\n 'hockey-puck',\n 'hockey-sticks',\n 'holly-berry',\n 'home',\n 'home-alt',\n 'home-heart',\n 'home-lg',\n 'home-lg-alt',\n 'hood-cloak',\n 'horizontal-rule',\n 'horse',\n 'horse-head',\n 'horse-saddle',\n 'hospital',\n 'hospital-alt',\n 'hospital-symbol',\n 'hospital-user',\n 'hospitals',\n 'hot-tub',\n 'hotdog',\n 'hotel',\n 'hourglass',\n 'hourglass-end',\n 'hourglass-half',\n 'hourglass-start',\n 'house',\n 'house-damage',\n 'house-day',\n 'house-flood',\n 'house-leave',\n 'house-night',\n 'house-return',\n 'house-signal',\n 'hryvnia',\n 'humidity',\n 'hurricane',\n 'i-cursor',\n 'ice-cream',\n 'ice-skate',\n 'icicles',\n 'icons',\n 'icons-alt',\n 'id-badge',\n 'id-card',\n 'id-card-alt',\n 'igloo',\n 'image',\n 'image-polaroid',\n 'images',\n 'inbox',\n 'inbox-in',\n 'inbox-out',\n 'indent',\n 'industry',\n 'industry-alt',\n 'infinity',\n 'info',\n 'info-circle',\n 'info-square',\n 'inhaler',\n 'integral',\n 'intersection',\n 'inventory',\n 'island-tropical',\n 'italic',\n 'jack-o-lantern',\n 'jedi',\n 'joint',\n 'journal-whills',\n 'joystick',\n 'jug',\n 'kaaba',\n 'kazoo',\n 'kerning',\n 'key',\n 'key-skeleton',\n 'keyboard',\n 'keynote',\n 'khanda',\n 'kidneys',\n 'kiss',\n 'kiss-beam',\n 'kiss-wink-heart',\n 'kite',\n 'kiwi-bird',\n 'knife-kitchen',\n 'lambda',\n 'lamp',\n 'lamp-desk',\n 'lamp-floor',\n 'landmark',\n 'landmark-alt',\n 'language',\n 'laptop',\n 'laptop-code',\n 'laptop-medical',\n 'lasso',\n 'laugh',\n 'laugh-beam',\n 'laugh-squint',\n 'laugh-wink',\n 'layer-group',\n 'layer-minus',\n 'layer-plus',\n 'leaf',\n 'leaf-heart',\n 'leaf-maple',\n 'leaf-oak',\n 'lemon',\n 'less-than',\n 'less-than-equal',\n 'level-down',\n 'level-down-alt',\n 'level-up',\n 'level-up-alt',\n 'life-ring',\n 'light-ceiling',\n 'light-switch',\n 'light-switch-off',\n 'light-switch-on',\n 'lightbulb',\n 'lightbulb-dollar',\n 'lightbulb-exclamation',\n 'lightbulb-on',\n 'lightbulb-slash',\n 'lights-holiday',\n 'line-columns',\n 'line-height',\n 'link',\n 'lips',\n 'lira-sign',\n 'list',\n 'list-alt',\n 'list-music',\n 'list-ol',\n 'list-ul',\n 'location',\n 'location-arrow',\n 'location-circle',\n 'location-slash',\n 'lock',\n 'lock-alt',\n 'lock-open',\n 'lock-open-alt',\n 'long-arrow-alt-down',\n 'long-arrow-alt-left',\n 'long-arrow-alt-right',\n 'long-arrow-alt-up',\n 'long-arrow-down',\n 'long-arrow-left',\n 'long-arrow-right',\n 'long-arrow-up',\n 'loveseat',\n 'low-vision',\n 'luchador',\n 'luggage-cart',\n 'lungs',\n 'mace',\n 'magic',\n 'magnet',\n 'mail-bulk',\n 'mailbox',\n 'male',\n 'mandolin',\n 'map',\n 'map-marked',\n 'map-marked-alt',\n 'map-marker',\n 'map-marker-alt',\n 'map-marker-alt-slash',\n 'map-marker-check',\n 'map-marker-edit',\n 'map-marker-exclamation',\n 'map-marker-minus',\n 'map-marker-plus',\n 'map-marker-question',\n 'map-marker-slash',\n 'map-marker-smile',\n 'map-marker-times',\n 'map-pin',\n 'map-signs',\n 'marker',\n 'mars',\n 'mars-double',\n 'mars-stroke',\n 'mars-stroke-h',\n 'mars-stroke-v',\n 'mask',\n 'meat',\n 'medal',\n 'medkit',\n 'megaphone',\n 'meh',\n 'meh-blank',\n 'meh-rolling-eyes',\n 'memory',\n 'menorah',\n 'mercury',\n 'meteor',\n 'microchip',\n 'microphone',\n 'microphone-alt',\n 'microphone-alt-slash',\n 'microphone-slash',\n 'microphone-stand',\n 'microscope',\n 'microwave',\n 'mind-share',\n 'minus',\n 'minus-circle',\n 'minus-hexagon',\n 'minus-octagon',\n 'minus-square',\n 'mistletoe',\n 'mitten',\n 'mobile',\n 'mobile-alt',\n 'mobile-android',\n 'mobile-android-alt',\n 'money-bill',\n 'money-bill-alt',\n 'money-bill-wave',\n 'money-bill-wave-alt',\n 'money-check',\n 'money-check-alt',\n 'money-check-edit',\n 'money-check-edit-alt',\n 'monitor-heart-rate',\n 'monkey',\n 'monument',\n 'moon',\n 'moon-cloud',\n 'moon-stars',\n 'mortar-pestle',\n 'mosque',\n 'motorcycle',\n 'mountain',\n 'mountains',\n 'mouse',\n 'mouse-alt',\n 'mouse-pointer',\n 'mp3-player',\n 'mug',\n 'mug-hot',\n 'mug-marshmallows',\n 'mug-tea',\n 'music',\n 'music-alt',\n 'music-alt-slash',\n 'music-slash',\n 'narwhal',\n 'network-wired',\n 'neuter',\n 'newspaper',\n 'not-equal',\n 'notes-medical',\n 'object-group',\n 'object-ungroup',\n 'octagon',\n 'oil-can',\n 'oil-temp',\n 'om',\n 'omega',\n 'ornament',\n 'otter',\n 'outdent',\n 'outlet',\n 'oven',\n 'overline',\n 'page-break',\n 'pager',\n 'paint-brush',\n 'paint-brush-alt',\n 'paint-roller',\n 'palette',\n 'pallet',\n 'pallet-alt',\n 'paper-plane',\n 'paperclip',\n 'parachute-box',\n 'paragraph',\n 'paragraph-rtl',\n 'parking',\n 'parking-circle',\n 'parking-circle-slash',\n 'parking-slash',\n 'passport',\n 'pastafarianism',\n 'paste',\n 'pause',\n 'pause-circle',\n 'paw',\n 'paw-alt',\n 'paw-claws',\n 'peace',\n 'pegasus',\n 'pen',\n 'pen-alt',\n 'pen-fancy',\n 'pen-nib',\n 'pen-square',\n 'pencil',\n 'pencil-alt',\n 'pencil-paintbrush',\n 'pencil-ruler',\n 'pennant',\n 'people-carry',\n 'pepper-hot',\n 'percent',\n 'percentage',\n 'person-booth',\n 'person-carry',\n 'person-dolly',\n 'person-dolly-empty',\n 'person-sign',\n 'phone',\n 'phone-alt',\n 'phone-laptop',\n 'phone-office',\n 'phone-plus',\n 'phone-rotary',\n 'phone-slash',\n 'phone-square',\n 'phone-square-alt',\n 'phone-volume',\n 'photo-video',\n 'pi',\n 'piano',\n 'piano-keyboard',\n 'pie',\n 'pig',\n 'piggy-bank',\n 'pills',\n 'pizza',\n 'pizza-slice',\n 'place-of-worship',\n 'plane',\n 'plane-alt',\n 'plane-arrival',\n 'plane-departure',\n 'planet-moon',\n 'planet-ringed',\n 'play',\n 'play-circle',\n 'plug',\n 'plus',\n 'plus-circle',\n 'plus-hexagon',\n 'plus-octagon',\n 'plus-square',\n 'podcast',\n 'podium',\n 'podium-star',\n 'police-box',\n 'poll',\n 'poll-h',\n 'poll-people',\n 'poo',\n 'poo-storm',\n 'poop',\n 'popcorn',\n 'portal-enter',\n 'portal-exit',\n 'portrait',\n 'pound-sign',\n 'power-off',\n 'pray',\n 'praying-hands',\n 'prescription',\n 'prescription-bottle',\n 'prescription-bottle-alt',\n 'presentation',\n 'print',\n 'print-search',\n 'print-slash',\n 'procedures',\n 'project-diagram',\n 'projector',\n 'pumpkin',\n 'puzzle-piece',\n 'qrcode',\n 'question',\n 'question-circle',\n 'question-square',\n 'quidditch',\n 'quote-left',\n 'quote-right',\n 'quran',\n 'rabbit',\n 'rabbit-fast',\n 'racquet',\n 'radar',\n 'radiation',\n 'radiation-alt',\n 'radio',\n 'radio-alt',\n 'rainbow',\n 'raindrops',\n 'ram',\n 'ramp-loading',\n 'random',\n 'raygun',\n 'receipt',\n 'record-vinyl',\n 'rectangle-landscape',\n 'rectangle-portrait',\n 'rectangle-wide',\n 'recycle',\n 'redo',\n 'redo-alt',\n 'refrigerator',\n 'registered',\n 'remove-format',\n 'repeat',\n 'repeat-1',\n 'repeat-1-alt',\n 'repeat-alt',\n 'reply',\n 'reply-all',\n 'republican',\n 'restroom',\n 'retweet',\n 'retweet-alt',\n 'ribbon',\n 'ring',\n 'rings-wedding',\n 'road',\n 'robot',\n 'rocket',\n 'rocket-launch',\n 'route',\n 'route-highway',\n 'route-interstate',\n 'router',\n 'rss',\n 'rss-square',\n 'ruble-sign',\n 'ruler',\n 'ruler-combined',\n 'ruler-horizontal',\n 'ruler-triangle',\n 'ruler-vertical',\n 'running',\n 'rupee-sign',\n 'rv',\n 'sack',\n 'sack-dollar',\n 'sad-cry',\n 'sad-tear',\n 'salad',\n 'sandwich',\n 'satellite',\n 'satellite-dish',\n 'sausage',\n 'save',\n 'sax-hot',\n 'saxophone',\n 'scalpel',\n 'scalpel-path',\n 'scanner',\n 'scanner-image',\n 'scanner-keyboard',\n 'scanner-touchscreen',\n 'scarecrow',\n 'scarf',\n 'school',\n 'screwdriver',\n 'scroll',\n 'scroll-old',\n 'scrubber',\n 'scythe',\n 'sd-card',\n 'search',\n 'search-dollar',\n 'search-location',\n 'search-minus',\n 'search-plus',\n 'seedling',\n 'send-back',\n 'send-backward',\n 'sensor',\n 'sensor-alert',\n 'sensor-fire',\n 'sensor-on',\n 'sensor-smoke',\n 'server',\n 'shapes',\n 'share',\n 'share-all',\n 'share-alt',\n 'share-alt-square',\n 'share-square',\n 'sheep',\n 'shekel-sign',\n 'shield',\n 'shield-alt',\n 'shield-check',\n 'shield-cross',\n 'ship',\n 'shipping-fast',\n 'shipping-timed',\n 'shish-kebab',\n 'shoe-prints',\n 'shopping-bag',\n 'shopping-basket',\n 'shopping-cart',\n 'shovel',\n 'shovel-snow',\n 'shower',\n 'shredder',\n 'shuttle-van',\n 'shuttlecock',\n 'sickle',\n 'sigma',\n 'sign',\n 'sign-in',\n 'sign-in-alt',\n 'sign-language',\n 'sign-out',\n 'sign-out-alt',\n 'signal',\n 'signal-1',\n 'signal-2',\n 'signal-3',\n 'signal-4',\n 'signal-alt',\n 'signal-alt-1',\n 'signal-alt-2',\n 'signal-alt-3',\n 'signal-alt-slash',\n 'signal-slash',\n 'signal-stream',\n 'signature',\n 'sim-card',\n 'siren',\n 'siren-on',\n 'sitemap',\n 'skating',\n 'skeleton',\n 'ski-jump',\n 'ski-lift',\n 'skiing',\n 'skiing-nordic',\n 'skull',\n 'skull-cow',\n 'skull-crossbones',\n 'slash',\n 'sledding',\n 'sleigh',\n 'sliders-h',\n 'sliders-h-square',\n 'sliders-v',\n 'sliders-v-square',\n 'smile',\n 'smile-beam',\n 'smile-plus',\n 'smile-wink',\n 'smog',\n 'smoke',\n 'smoking',\n 'smoking-ban',\n 'sms',\n 'snake',\n 'snooze',\n 'snow-blowing',\n 'snowboarding',\n 'snowflake',\n 'snowflakes',\n 'snowman',\n 'snowmobile',\n 'snowplow',\n 'socks',\n 'solar-panel',\n 'solar-system',\n 'sort',\n 'sort-alpha-down',\n 'sort-alpha-down-alt',\n 'sort-alpha-up',\n 'sort-alpha-up-alt',\n 'sort-alt',\n 'sort-amount-down',\n 'sort-amount-down-alt',\n 'sort-amount-up',\n 'sort-amount-up-alt',\n 'sort-circle',\n 'sort-circle-down',\n 'sort-circle-up',\n 'sort-down',\n 'sort-numeric-down',\n 'sort-numeric-down-alt',\n 'sort-numeric-up',\n 'sort-numeric-up-alt',\n 'sort-shapes-down',\n 'sort-shapes-down-alt',\n 'sort-shapes-up',\n 'sort-shapes-up-alt',\n 'sort-size-down',\n 'sort-size-down-alt',\n 'sort-size-up',\n 'sort-size-up-alt',\n 'sort-up',\n 'soup',\n 'spa',\n 'space-shuttle',\n 'space-station-moon',\n 'space-station-moon-alt',\n 'spade',\n 'sparkles',\n 'speaker',\n 'speakers',\n 'spell-check',\n 'spider',\n 'spider-black-widow',\n 'spider-web',\n 'spinner',\n 'spinner-third',\n 'splotch',\n 'spray-can',\n 'sprinkler',\n 'square',\n 'square-full',\n 'square-root',\n 'square-root-alt',\n 'squirrel',\n 'staff',\n 'stamp',\n 'star',\n 'star-and-crescent',\n 'star-christmas',\n 'star-exclamation',\n 'star-half',\n 'star-half-alt',\n 'star-of-david',\n 'star-of-life',\n 'star-shooting',\n 'starfighter',\n 'starfighter-alt',\n 'stars',\n 'starship',\n 'starship-freighter',\n 'steak',\n 'steering-wheel',\n 'step-backward',\n 'step-forward',\n 'stethoscope',\n 'sticky-note',\n 'stocking',\n 'stomach',\n 'stop',\n 'stop-circle',\n 'stopwatch',\n 'store',\n 'store-alt',\n 'stream',\n 'street-view',\n 'stretcher',\n 'strikethrough',\n 'stroopwafel',\n 'subscript',\n 'subway',\n 'suitcase',\n 'suitcase-rolling',\n 'sun',\n 'sun-cloud',\n 'sun-dust',\n 'sun-haze',\n 'sunglasses',\n 'sunrise',\n 'sunset',\n 'superscript',\n 'surprise',\n 'swatchbook',\n 'swimmer',\n 'swimming-pool',\n 'sword',\n 'sword-laser',\n 'sword-laser-alt',\n 'swords',\n 'swords-laser',\n 'synagogue',\n 'sync',\n 'sync-alt',\n 'syringe',\n 'table',\n 'table-tennis',\n 'tablet',\n 'tablet-alt',\n 'tablet-android',\n 'tablet-android-alt',\n 'tablet-rugged',\n 'tablets',\n 'tachometer',\n 'tachometer-alt',\n 'tachometer-alt-average',\n 'tachometer-alt-fast',\n 'tachometer-alt-fastest',\n 'tachometer-alt-slow',\n 'tachometer-alt-slowest',\n 'tachometer-average',\n 'tachometer-fast',\n 'tachometer-fastest',\n 'tachometer-slow',\n 'tachometer-slowest',\n 'taco',\n 'tag',\n 'tags',\n 'tally',\n 'tanakh',\n 'tape',\n 'tasks',\n 'tasks-alt',\n 'taxi',\n 'teeth',\n 'teeth-open',\n 'telescope',\n 'temperature-down',\n 'temperature-frigid',\n 'temperature-high',\n 'temperature-hot',\n 'temperature-low',\n 'temperature-up',\n 'tenge',\n 'tennis-ball',\n 'terminal',\n 'text',\n 'text-height',\n 'text-size',\n 'text-width',\n 'th',\n 'th-large',\n 'th-list',\n 'theater-masks',\n 'thermometer',\n 'thermometer-empty',\n 'thermometer-full',\n 'thermometer-half',\n 'thermometer-quarter',\n 'thermometer-three-quarters',\n 'theta',\n 'thumbs-down',\n 'thumbs-up',\n 'thumbtack',\n 'thunderstorm',\n 'thunderstorm-moon',\n 'thunderstorm-sun',\n 'ticket',\n 'ticket-alt',\n 'tilde',\n 'times',\n 'times-circle',\n 'times-hexagon',\n 'times-octagon',\n 'times-square',\n 'tint',\n 'tint-slash',\n 'tire',\n 'tire-flat',\n 'tire-pressure-warning',\n 'tire-rugged',\n 'tired',\n 'toggle-off',\n 'toggle-on',\n 'toilet',\n 'toilet-paper',\n 'toilet-paper-alt',\n 'tombstone',\n 'tombstone-alt',\n 'toolbox',\n 'tools',\n 'tooth',\n 'toothbrush',\n 'torah',\n 'torii-gate',\n 'tornado',\n 'tractor',\n 'trademark',\n 'traffic-cone',\n 'traffic-light',\n 'traffic-light-go',\n 'traffic-light-slow',\n 'traffic-light-stop',\n 'trailer',\n 'train',\n 'tram',\n 'transgender',\n 'transgender-alt',\n 'transporter',\n 'transporter-1',\n 'transporter-2',\n 'transporter-3',\n 'transporter-empty',\n 'trash',\n 'trash-alt',\n 'trash-restore',\n 'trash-restore-alt',\n 'trash-undo',\n 'trash-undo-alt',\n 'treasure-chest',\n 'tree',\n 'tree-alt',\n 'tree-christmas',\n 'tree-decorated',\n 'tree-large',\n 'tree-palm',\n 'trees',\n 'triangle',\n 'triangle-music',\n 'trophy',\n 'trophy-alt',\n 'truck',\n 'truck-container',\n 'truck-couch',\n 'truck-loading',\n 'truck-monster',\n 'truck-moving',\n 'truck-pickup',\n 'truck-plow',\n 'truck-ramp',\n 'trumpet',\n 'tshirt',\n 'tty',\n 'turkey',\n 'turntable',\n 'turtle',\n 'tv',\n 'tv-alt',\n 'tv-music',\n 'tv-retro',\n 'typewriter',\n 'ufo',\n 'ufo-beam',\n 'umbrella',\n 'umbrella-beach',\n 'underline',\n 'undo',\n 'undo-alt',\n 'unicorn',\n 'union',\n 'universal-access',\n 'university',\n 'unlink',\n 'unlock',\n 'unlock-alt',\n 'upload',\n 'usb-drive',\n 'usd-circle',\n 'usd-square',\n 'user',\n 'user-alien',\n 'user-alt',\n 'user-alt-slash',\n 'user-astronaut',\n 'user-chart',\n 'user-check',\n 'user-circle',\n 'user-clock',\n 'user-cog',\n 'user-cowboy',\n 'user-crown',\n 'user-edit',\n 'user-friends',\n 'user-graduate',\n 'user-hard-hat',\n 'user-headset',\n 'user-injured',\n 'user-lock',\n 'user-md',\n 'user-md-chat',\n 'user-minus',\n 'user-music',\n 'user-ninja',\n 'user-nurse',\n 'user-plus',\n 'user-robot',\n 'user-secret',\n 'user-shield',\n 'user-slash',\n 'user-tag',\n 'user-tie',\n 'user-times',\n 'user-visor',\n 'users',\n 'users-class',\n 'users-cog',\n 'users-crown',\n 'users-medical',\n 'utensil-fork',\n 'utensil-knife',\n 'utensil-spoon',\n 'utensils',\n 'utensils-alt',\n 'vacuum',\n 'vacuum-robot',\n 'value-absolute',\n 'vector-square',\n 'venus',\n 'venus-double',\n 'venus-mars',\n 'vhs',\n 'vial',\n 'vials',\n 'video',\n 'video-plus',\n 'video-slash',\n 'vihara',\n 'violin',\n 'voicemail',\n 'volcano',\n 'volleyball-ball',\n 'volume',\n 'volume-down',\n 'volume-mute',\n 'volume-off',\n 'volume-slash',\n 'volume-up',\n 'vote-nay',\n 'vote-yea',\n 'vr-cardboard',\n 'wagon-covered',\n 'walker',\n 'walkie-talkie',\n 'walking',\n 'wallet',\n 'wand',\n 'wand-magic',\n 'warehouse',\n 'warehouse-alt',\n 'washer',\n 'watch',\n 'watch-calculator',\n 'watch-fitness',\n 'water',\n 'water-lower',\n 'water-rise',\n 'wave-sine',\n 'wave-square',\n 'wave-triangle',\n 'waveform',\n 'waveform-path',\n 'webcam',\n 'webcam-slash',\n 'weight',\n 'weight-hanging',\n 'whale',\n 'wheat',\n 'wheelchair',\n 'whistle',\n 'wifi',\n 'wifi-1',\n 'wifi-2',\n 'wifi-slash',\n 'wind',\n 'wind-turbine',\n 'wind-warning',\n 'window',\n 'window-alt',\n 'window-close',\n 'window-frame',\n 'window-frame-open',\n 'window-maximize',\n 'window-minimize',\n 'window-restore',\n 'windsock',\n 'wine-bottle',\n 'wine-glass',\n 'wine-glass-alt',\n 'won-sign',\n 'wreath',\n 'wrench',\n 'x-ray',\n 'yen-sign',\n 'yin-yang',\n 'abacus',\n 'acorn',\n 'ad',\n 'address-book',\n 'address-card',\n 'adjust',\n 'air-conditioner',\n 'air-freshener',\n 'alarm-clock',\n 'alarm-exclamation',\n 'alarm-plus',\n 'alarm-snooze',\n 'album',\n 'album-collection',\n 'alicorn',\n 'alien',\n 'alien-monster',\n 'align-center',\n 'align-justify',\n 'align-left',\n 'align-right',\n 'align-slash',\n 'allergies',\n 'ambulance',\n 'american-sign-language-interpreting',\n 'amp-guitar',\n 'analytics',\n 'anchor',\n 'angel',\n 'angle-double-down',\n 'angle-double-left',\n 'angle-double-right',\n 'angle-double-up',\n 'angle-down',\n 'angle-left',\n 'angle-right',\n 'angle-up',\n 'angry',\n 'ankh',\n 'apple-alt',\n 'apple-crate',\n 'archive',\n 'archway',\n 'arrow-alt-circle-down',\n 'arrow-alt-circle-left',\n 'arrow-alt-circle-right',\n 'arrow-alt-circle-up',\n 'arrow-alt-down',\n 'arrow-alt-from-bottom',\n 'arrow-alt-from-left',\n 'arrow-alt-from-right',\n 'arrow-alt-from-top',\n 'arrow-alt-left',\n 'arrow-alt-right',\n 'arrow-alt-square-down',\n 'arrow-alt-square-left',\n 'arrow-alt-square-right',\n 'arrow-alt-square-up',\n 'arrow-alt-to-bottom',\n 'arrow-alt-to-left',\n 'arrow-alt-to-right',\n 'arrow-alt-to-top',\n 'arrow-alt-up',\n 'arrow-circle-down',\n 'arrow-circle-left',\n 'arrow-circle-right',\n 'arrow-circle-up',\n 'arrow-down',\n 'arrow-from-bottom',\n 'arrow-from-left',\n 'arrow-from-right',\n 'arrow-from-top',\n 'arrow-left',\n 'arrow-right',\n 'arrow-square-down',\n 'arrow-square-left',\n 'arrow-square-right',\n 'arrow-square-up',\n 'arrow-to-bottom',\n 'arrow-to-left',\n 'arrow-to-right',\n 'arrow-to-top',\n 'arrow-up',\n 'arrows',\n 'arrows-alt',\n 'arrows-alt-h',\n 'arrows-alt-v',\n 'arrows-h',\n 'arrows-v',\n 'assistive-listening-systems',\n 'asterisk',\n 'at',\n 'atlas',\n 'atom',\n 'atom-alt',\n 'audio-description',\n 'award',\n 'axe',\n 'axe-battle',\n 'baby',\n 'baby-carriage',\n 'backpack',\n 'backspace',\n 'backward',\n 'bacon',\n 'badge',\n 'badge-check',\n 'badge-dollar',\n 'badge-percent',\n 'badge-sheriff',\n 'badger-honey',\n 'bags-shopping',\n 'bahai',\n 'balance-scale',\n 'balance-scale-left',\n 'balance-scale-right',\n 'ball-pile',\n 'ballot',\n 'ballot-check',\n 'ban',\n 'band-aid',\n 'banjo',\n 'barcode',\n 'barcode-alt',\n 'barcode-read',\n 'barcode-scan',\n 'bars',\n 'baseball',\n 'baseball-ball',\n 'basketball-ball',\n 'basketball-hoop',\n 'bat',\n 'bath',\n 'battery-bolt',\n 'battery-empty',\n 'battery-full',\n 'battery-half',\n 'battery-quarter',\n 'battery-slash',\n 'battery-three-quarters',\n 'bed',\n 'bed-alt',\n 'bed-bunk',\n 'bed-empty',\n 'beer',\n 'bell',\n 'bell-exclamation',\n 'bell-on',\n 'bell-plus',\n 'bell-school',\n 'bell-school-slash',\n 'bell-slash',\n 'bells',\n 'betamax',\n 'bezier-curve',\n 'bible',\n 'bicycle',\n 'biking',\n 'biking-mountain',\n 'binoculars',\n 'biohazard',\n 'birthday-cake',\n 'blanket',\n 'blender',\n 'blender-phone',\n 'blind',\n 'blinds',\n 'blinds-open',\n 'blinds-raised',\n 'blog',\n 'bold',\n 'bolt',\n 'bomb',\n 'bone',\n 'bone-break',\n 'bong',\n 'book',\n 'book-alt',\n 'book-dead',\n 'book-heart',\n 'book-medical',\n 'book-open',\n 'book-reader',\n 'book-spells',\n 'book-user',\n 'bookmark',\n 'books',\n 'books-medical',\n 'boombox',\n 'boot',\n 'booth-curtain',\n 'border-all',\n 'border-bottom',\n 'border-center-h',\n 'border-center-v',\n 'border-inner',\n 'border-left',\n 'border-none',\n 'border-outer',\n 'border-right',\n 'border-style',\n 'border-style-alt',\n 'border-top',\n 'bow-arrow',\n 'bowling-ball',\n 'bowling-pins',\n 'box',\n 'box-alt',\n 'box-ballot',\n 'box-check',\n 'box-fragile',\n 'box-full',\n 'box-heart',\n 'box-open',\n 'box-up',\n 'box-usd',\n 'boxes',\n 'boxes-alt',\n 'boxing-glove',\n 'brackets',\n 'brackets-curly',\n 'braille',\n 'brain',\n 'bread-loaf',\n 'bread-slice',\n 'briefcase',\n 'briefcase-medical',\n 'bring-forward',\n 'bring-front',\n 'broadcast-tower',\n 'broom',\n 'browser',\n 'brush',\n 'bug',\n 'building',\n 'bullhorn',\n 'bullseye',\n 'bullseye-arrow',\n 'bullseye-pointer',\n 'burger-soda',\n 'burn',\n 'burrito',\n 'bus',\n 'bus-alt',\n 'bus-school',\n 'business-time',\n 'cabinet-filing',\n 'cactus',\n 'calculator',\n 'calculator-alt',\n 'calendar',\n 'calendar-alt',\n 'calendar-check',\n 'calendar-day',\n 'calendar-edit',\n 'calendar-exclamation',\n 'calendar-minus',\n 'calendar-plus',\n 'calendar-star',\n 'calendar-times',\n 'calendar-week',\n 'camcorder',\n 'camera',\n 'camera-alt',\n 'camera-home',\n 'camera-movie',\n 'camera-polaroid',\n 'camera-retro',\n 'campfire',\n 'campground',\n 'candle-holder',\n 'candy-cane',\n 'candy-corn',\n 'cannabis',\n 'capsules',\n 'car',\n 'car-alt',\n 'car-battery',\n 'car-building',\n 'car-bump',\n 'car-bus',\n 'car-crash',\n 'car-garage',\n 'car-mechanic',\n 'car-side',\n 'car-tilt',\n 'car-wash',\n 'caravan',\n 'caravan-alt',\n 'caret-circle-down',\n 'caret-circle-left',\n 'caret-circle-right',\n 'caret-circle-up',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-square-down',\n 'caret-square-left',\n 'caret-square-right',\n 'caret-square-up',\n 'caret-up',\n 'carrot',\n 'cars',\n 'cart-arrow-down',\n 'cart-plus',\n 'cash-register',\n 'cassette-tape',\n 'cat',\n 'cat-space',\n 'cauldron',\n 'cctv',\n 'certificate',\n 'chair',\n 'chair-office',\n 'chalkboard',\n 'chalkboard-teacher',\n 'charging-station',\n 'chart-area',\n 'chart-bar',\n 'chart-line',\n 'chart-line-down',\n 'chart-network',\n 'chart-pie',\n 'chart-pie-alt',\n 'chart-scatter',\n 'check',\n 'check-circle',\n 'check-double',\n 'check-square',\n 'cheese',\n 'cheese-swiss',\n 'cheeseburger',\n 'chess',\n 'chess-bishop',\n 'chess-bishop-alt',\n 'chess-board',\n 'chess-clock',\n 'chess-clock-alt',\n 'chess-king',\n 'chess-king-alt',\n 'chess-knight',\n 'chess-knight-alt',\n 'chess-pawn',\n 'chess-pawn-alt',\n 'chess-queen',\n 'chess-queen-alt',\n 'chess-rook',\n 'chess-rook-alt',\n 'chevron-circle-down',\n 'chevron-circle-left',\n 'chevron-circle-right',\n 'chevron-circle-up',\n 'chevron-double-down',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-double-up',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-square-down',\n 'chevron-square-left',\n 'chevron-square-right',\n 'chevron-square-up',\n 'chevron-up',\n 'child',\n 'chimney',\n 'church',\n 'circle',\n 'circle-notch',\n 'city',\n 'clarinet',\n 'claw-marks',\n 'clinic-medical',\n 'clipboard',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-list-check',\n 'clipboard-prescription',\n 'clipboard-user',\n 'clock',\n 'clone',\n 'closed-captioning',\n 'cloud',\n 'cloud-download',\n 'cloud-download-alt',\n 'cloud-drizzle',\n 'cloud-hail',\n 'cloud-hail-mixed',\n 'cloud-meatball',\n 'cloud-moon',\n 'cloud-moon-rain',\n 'cloud-music',\n 'cloud-rain',\n 'cloud-rainbow',\n 'cloud-showers',\n 'cloud-showers-heavy',\n 'cloud-sleet',\n 'cloud-snow',\n 'cloud-sun',\n 'cloud-sun-rain',\n 'cloud-upload',\n 'cloud-upload-alt',\n 'clouds',\n 'clouds-moon',\n 'clouds-sun',\n 'club',\n 'cocktail',\n 'code',\n 'code-branch',\n 'code-commit',\n 'code-merge',\n 'coffee',\n 'coffee-pot',\n 'coffee-togo',\n 'coffin',\n 'cog',\n 'cogs',\n 'coin',\n 'coins',\n 'columns',\n 'comet',\n 'comment',\n 'comment-alt',\n 'comment-alt-check',\n 'comment-alt-dollar',\n 'comment-alt-dots',\n 'comment-alt-edit',\n 'comment-alt-exclamation',\n 'comment-alt-lines',\n 'comment-alt-medical',\n 'comment-alt-minus',\n 'comment-alt-music',\n 'comment-alt-plus',\n 'comment-alt-slash',\n 'comment-alt-smile',\n 'comment-alt-times',\n 'comment-check',\n 'comment-dollar',\n 'comment-dots',\n 'comment-edit',\n 'comment-exclamation',\n 'comment-lines',\n 'comment-medical',\n 'comment-minus',\n 'comment-music',\n 'comment-plus',\n 'comment-slash',\n 'comment-smile',\n 'comment-times',\n 'comments',\n 'comments-alt',\n 'comments-alt-dollar',\n 'comments-dollar',\n 'compact-disc',\n 'compass',\n 'compass-slash',\n 'compress',\n 'compress-alt',\n 'compress-arrows-alt',\n 'compress-wide',\n 'computer-classic',\n 'computer-speaker',\n 'concierge-bell',\n 'construction',\n 'container-storage',\n 'conveyor-belt',\n 'conveyor-belt-alt',\n 'cookie',\n 'cookie-bite',\n 'copy',\n 'copyright',\n 'corn',\n 'couch',\n 'cow',\n 'cowbell',\n 'cowbell-more',\n 'credit-card',\n 'credit-card-blank',\n 'credit-card-front',\n 'cricket',\n 'croissant',\n 'crop',\n 'crop-alt',\n 'cross',\n 'crosshairs',\n 'crow',\n 'crown',\n 'crutch',\n 'crutches',\n 'cube',\n 'cubes',\n 'curling',\n 'cut',\n 'dagger',\n 'database',\n 'deaf',\n 'debug',\n 'deer',\n 'deer-rudolph',\n 'democrat',\n 'desktop',\n 'desktop-alt',\n 'dewpoint',\n 'dharmachakra',\n 'diagnoses',\n 'diamond',\n 'dice',\n 'dice-d10',\n 'dice-d12',\n 'dice-d20',\n 'dice-d4',\n 'dice-d6',\n 'dice-d8',\n 'dice-five',\n 'dice-four',\n 'dice-one',\n 'dice-six',\n 'dice-three',\n 'dice-two',\n 'digging',\n 'digital-tachograph',\n 'diploma',\n 'directions',\n 'disc-drive',\n 'disease',\n 'divide',\n 'dizzy',\n 'dna',\n 'do-not-enter',\n 'dog',\n 'dog-leashed',\n 'dollar-sign',\n 'dolly',\n 'dolly-empty',\n 'dolly-flatbed',\n 'dolly-flatbed-alt',\n 'dolly-flatbed-empty',\n 'donate',\n 'door-closed',\n 'door-open',\n 'dot-circle',\n 'dove',\n 'download',\n 'drafting-compass',\n 'dragon',\n 'draw-circle',\n 'draw-polygon',\n 'draw-square',\n 'dreidel',\n 'drone',\n 'drone-alt',\n 'drum',\n 'drum-steelpan',\n 'drumstick',\n 'drumstick-bite',\n 'dryer',\n 'dryer-alt',\n 'duck',\n 'dumbbell',\n 'dumpster',\n 'dumpster-fire',\n 'dungeon',\n 'ear',\n 'ear-muffs',\n 'eclipse',\n 'eclipse-alt',\n 'edit',\n 'egg',\n 'egg-fried',\n 'eject',\n 'elephant',\n 'ellipsis-h',\n 'ellipsis-h-alt',\n 'ellipsis-v',\n 'ellipsis-v-alt',\n 'empty-set',\n 'engine-warning',\n 'envelope',\n 'envelope-open',\n 'envelope-open-dollar',\n 'envelope-open-text',\n 'envelope-square',\n 'equals',\n 'eraser',\n 'ethernet',\n 'euro-sign',\n 'exchange',\n 'exchange-alt',\n 'exclamation',\n 'exclamation-circle',\n 'exclamation-square',\n 'exclamation-triangle',\n 'expand',\n 'expand-alt',\n 'expand-arrows',\n 'expand-arrows-alt',\n 'expand-wide',\n 'external-link',\n 'external-link-alt',\n 'external-link-square',\n 'external-link-square-alt',\n 'eye',\n 'eye-dropper',\n 'eye-evil',\n 'eye-slash',\n 'fan',\n 'fan-table',\n 'farm',\n 'fast-backward',\n 'fast-forward',\n 'faucet',\n 'faucet-drip',\n 'fax',\n 'feather',\n 'feather-alt',\n 'female',\n 'field-hockey',\n 'fighter-jet',\n 'file',\n 'file-alt',\n 'file-archive',\n 'file-audio',\n 'file-certificate',\n 'file-chart-line',\n 'file-chart-pie',\n 'file-check',\n 'file-code',\n 'file-contract',\n 'file-csv',\n 'file-download',\n 'file-edit',\n 'file-excel',\n 'file-exclamation',\n 'file-export',\n 'file-image',\n 'file-import',\n 'file-invoice',\n 'file-invoice-dollar',\n 'file-medical',\n 'file-medical-alt',\n 'file-minus',\n 'file-music',\n 'file-pdf',\n 'file-plus',\n 'file-powerpoint',\n 'file-prescription',\n 'file-search',\n 'file-signature',\n 'file-spreadsheet',\n 'file-times',\n 'file-upload',\n 'file-user',\n 'file-video',\n 'file-word',\n 'files-medical',\n 'fill',\n 'fill-drip',\n 'film',\n 'film-alt',\n 'film-canister',\n 'filter',\n 'fingerprint',\n 'fire',\n 'fire-alt',\n 'fire-extinguisher',\n 'fire-smoke',\n 'fireplace',\n 'first-aid',\n 'fish',\n 'fish-cooked',\n 'fist-raised',\n 'flag',\n 'flag-alt',\n 'flag-checkered',\n 'flag-usa',\n 'flame',\n 'flashlight',\n 'flask',\n 'flask-poison',\n 'flask-potion',\n 'flower',\n 'flower-daffodil',\n 'flower-tulip',\n 'flushed',\n 'flute',\n 'flux-capacitor',\n 'fog',\n 'folder',\n 'folder-minus',\n 'folder-open',\n 'folder-plus',\n 'folder-times',\n 'folder-tree',\n 'folders',\n 'font',\n 'font-awesome-logo-full',\n 'font-case',\n 'football-ball',\n 'football-helmet',\n 'forklift',\n 'forward',\n 'fragile',\n 'french-fries',\n 'frog',\n 'frosty-head',\n 'frown',\n 'frown-open',\n 'function',\n 'funnel-dollar',\n 'futbol',\n 'galaxy',\n 'game-board',\n 'game-board-alt',\n 'game-console-handheld',\n 'gamepad',\n 'gamepad-alt',\n 'garage',\n 'garage-car',\n 'garage-open',\n 'gas-pump',\n 'gas-pump-slash',\n 'gavel',\n 'gem',\n 'genderless',\n 'ghost',\n 'gift',\n 'gift-card',\n 'gifts',\n 'gingerbread-man',\n 'glass',\n 'glass-champagne',\n 'glass-cheers',\n 'glass-citrus',\n 'glass-martini',\n 'glass-martini-alt',\n 'glass-whiskey',\n 'glass-whiskey-rocks',\n 'glasses',\n 'glasses-alt',\n 'globe',\n 'globe-africa',\n 'globe-americas',\n 'globe-asia',\n 'globe-europe',\n 'globe-snow',\n 'globe-stand',\n 'golf-ball',\n 'golf-club',\n 'gopuram',\n 'graduation-cap',\n 'gramophone',\n 'greater-than',\n 'greater-than-equal',\n 'grimace',\n 'grin',\n 'grin-alt',\n 'grin-beam',\n 'grin-beam-sweat',\n 'grin-hearts',\n 'grin-squint',\n 'grin-squint-tears',\n 'grin-stars',\n 'grin-tears',\n 'grin-tongue',\n 'grin-tongue-squint',\n 'grin-tongue-wink',\n 'grin-wink',\n 'grip-horizontal',\n 'grip-lines',\n 'grip-lines-vertical',\n 'grip-vertical',\n 'guitar',\n 'guitar-electric',\n 'guitars',\n 'h-square',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'hamburger',\n 'hammer',\n 'hammer-war',\n 'hamsa',\n 'hand-heart',\n 'hand-holding',\n 'hand-holding-box',\n 'hand-holding-heart',\n 'hand-holding-magic',\n 'hand-holding-seedling',\n 'hand-holding-usd',\n 'hand-holding-water',\n 'hand-lizard',\n 'hand-middle-finger',\n 'hand-paper',\n 'hand-peace',\n 'hand-point-down',\n 'hand-point-left',\n 'hand-point-right',\n 'hand-point-up',\n 'hand-pointer',\n 'hand-receiving',\n 'hand-rock',\n 'hand-scissors',\n 'hand-spock',\n 'hands',\n 'hands-heart',\n 'hands-helping',\n 'hands-usd',\n 'handshake',\n 'handshake-alt',\n 'hanukiah',\n 'hard-hat',\n 'hashtag',\n 'hat-chef',\n 'hat-cowboy',\n 'hat-cowboy-side',\n 'hat-santa',\n 'hat-winter',\n 'hat-witch',\n 'hat-wizard',\n 'hdd',\n 'head-side',\n 'head-side-brain',\n 'head-side-headphones',\n 'head-side-medical',\n 'head-vr',\n 'heading',\n 'headphones',\n 'headphones-alt',\n 'headset',\n 'heart',\n 'heart-broken',\n 'heart-circle',\n 'heart-rate',\n 'heart-square',\n 'heartbeat',\n 'heat',\n 'helicopter',\n 'helmet-battle',\n 'hexagon',\n 'highlighter',\n 'hiking',\n 'hippo',\n 'history',\n 'hockey-mask',\n 'hockey-puck',\n 'hockey-sticks',\n 'holly-berry',\n 'home',\n 'home-alt',\n 'home-heart',\n 'home-lg',\n 'home-lg-alt',\n 'hood-cloak',\n 'horizontal-rule',\n 'horse',\n 'horse-head',\n 'horse-saddle',\n 'hospital',\n 'hospital-alt',\n 'hospital-symbol',\n 'hospital-user',\n 'hospitals',\n 'hot-tub',\n 'hotdog',\n 'hotel',\n 'hourglass',\n 'hourglass-end',\n 'hourglass-half',\n 'hourglass-start',\n 'house',\n 'house-damage',\n 'house-day',\n 'house-flood',\n 'house-leave',\n 'house-night',\n 'house-return',\n 'house-signal',\n 'hryvnia',\n 'humidity',\n 'hurricane',\n 'i-cursor',\n 'ice-cream',\n 'ice-skate',\n 'icicles',\n 'icons',\n 'icons-alt',\n 'id-badge',\n 'id-card',\n 'id-card-alt',\n 'igloo',\n 'image',\n 'image-polaroid',\n 'images',\n 'inbox',\n 'inbox-in',\n 'inbox-out',\n 'indent',\n 'industry',\n 'industry-alt',\n 'infinity',\n 'info',\n 'info-circle',\n 'info-square',\n 'inhaler',\n 'integral',\n 'intersection',\n 'inventory',\n 'island-tropical',\n 'italic',\n 'jack-o-lantern',\n 'jedi',\n 'joint',\n 'journal-whills',\n 'joystick',\n 'jug',\n 'kaaba',\n 'kazoo',\n 'kerning',\n 'key',\n 'key-skeleton',\n 'keyboard',\n 'keynote',\n 'khanda',\n 'kidneys',\n 'kiss',\n 'kiss-beam',\n 'kiss-wink-heart',\n 'kite',\n 'kiwi-bird',\n 'knife-kitchen',\n 'lambda',\n 'lamp',\n 'lamp-desk',\n 'lamp-floor',\n 'landmark',\n 'landmark-alt',\n 'language',\n 'laptop',\n 'laptop-code',\n 'laptop-medical',\n 'lasso',\n 'laugh',\n 'laugh-beam',\n 'laugh-squint',\n 'laugh-wink',\n 'layer-group',\n 'layer-minus',\n 'layer-plus',\n 'leaf',\n 'leaf-heart',\n 'leaf-maple',\n 'leaf-oak',\n 'lemon',\n 'less-than',\n 'less-than-equal',\n 'level-down',\n 'level-down-alt',\n 'level-up',\n 'level-up-alt',\n 'life-ring',\n 'light-ceiling',\n 'light-switch',\n 'light-switch-off',\n 'light-switch-on',\n 'lightbulb',\n 'lightbulb-dollar',\n 'lightbulb-exclamation',\n 'lightbulb-on',\n 'lightbulb-slash',\n 'lights-holiday',\n 'line-columns',\n 'line-height',\n 'link',\n 'lips',\n 'lira-sign',\n 'list',\n 'list-alt',\n 'list-music',\n 'list-ol',\n 'list-ul',\n 'location',\n 'location-arrow',\n 'location-circle',\n 'location-slash',\n 'lock',\n 'lock-alt',\n 'lock-open',\n 'lock-open-alt',\n 'long-arrow-alt-down',\n 'long-arrow-alt-left',\n 'long-arrow-alt-right',\n 'long-arrow-alt-up',\n 'long-arrow-down',\n 'long-arrow-left',\n 'long-arrow-right',\n 'long-arrow-up',\n 'loveseat',\n 'low-vision',\n 'luchador',\n 'luggage-cart',\n 'lungs',\n 'mace',\n 'magic',\n 'magnet',\n 'mail-bulk',\n 'mailbox',\n 'male',\n 'mandolin',\n 'map',\n 'map-marked',\n 'map-marked-alt',\n 'map-marker',\n 'map-marker-alt',\n 'map-marker-alt-slash',\n 'map-marker-check',\n 'map-marker-edit',\n 'map-marker-exclamation',\n 'map-marker-minus',\n 'map-marker-plus',\n 'map-marker-question',\n 'map-marker-slash',\n 'map-marker-smile',\n 'map-marker-times',\n 'map-pin',\n 'map-signs',\n 'marker',\n 'mars',\n 'mars-double',\n 'mars-stroke',\n 'mars-stroke-h',\n 'mars-stroke-v',\n 'mask',\n 'meat',\n 'medal',\n 'medkit',\n 'megaphone',\n 'meh',\n 'meh-blank',\n 'meh-rolling-eyes',\n 'memory',\n 'menorah',\n 'mercury',\n 'meteor',\n 'microchip',\n 'microphone',\n 'microphone-alt',\n 'microphone-alt-slash',\n 'microphone-slash',\n 'microphone-stand',\n 'microscope',\n 'microwave',\n 'mind-share',\n 'minus',\n 'minus-circle',\n 'minus-hexagon',\n 'minus-octagon',\n 'minus-square',\n 'mistletoe',\n 'mitten',\n 'mobile',\n 'mobile-alt',\n 'mobile-android',\n 'mobile-android-alt',\n 'money-bill',\n 'money-bill-alt',\n 'money-bill-wave',\n 'money-bill-wave-alt',\n 'money-check',\n 'money-check-alt',\n 'money-check-edit',\n 'money-check-edit-alt',\n 'monitor-heart-rate',\n 'monkey',\n 'monument',\n 'moon',\n 'moon-cloud',\n 'moon-stars',\n 'mortar-pestle',\n 'mosque',\n 'motorcycle',\n 'mountain',\n 'mountains',\n 'mouse',\n 'mouse-alt',\n 'mouse-pointer',\n 'mp3-player',\n 'mug',\n 'mug-hot',\n 'mug-marshmallows',\n 'mug-tea',\n 'music',\n 'music-alt',\n 'music-alt-slash',\n 'music-slash',\n 'narwhal',\n 'network-wired',\n 'neuter',\n 'newspaper',\n 'not-equal',\n 'notes-medical',\n 'object-group',\n 'object-ungroup',\n 'octagon',\n 'oil-can',\n 'oil-temp',\n 'om',\n 'omega',\n 'ornament',\n 'otter',\n 'outdent',\n 'outlet',\n 'oven',\n 'overline',\n 'page-break',\n 'pager',\n 'paint-brush',\n 'paint-brush-alt',\n 'paint-roller',\n 'palette',\n 'pallet',\n 'pallet-alt',\n 'paper-plane',\n 'paperclip',\n 'parachute-box',\n 'paragraph',\n 'paragraph-rtl',\n 'parking',\n 'parking-circle',\n 'parking-circle-slash',\n 'parking-slash',\n 'passport',\n 'pastafarianism',\n 'paste',\n 'pause',\n 'pause-circle',\n 'paw',\n 'paw-alt',\n 'paw-claws',\n 'peace',\n 'pegasus',\n 'pen',\n 'pen-alt',\n 'pen-fancy',\n 'pen-nib',\n 'pen-square',\n 'pencil',\n 'pencil-alt',\n 'pencil-paintbrush',\n 'pencil-ruler',\n 'pennant',\n 'people-carry',\n 'pepper-hot',\n 'percent',\n 'percentage',\n 'person-booth',\n 'person-carry',\n 'person-dolly',\n 'person-dolly-empty',\n 'person-sign',\n 'phone',\n 'phone-alt',\n 'phone-laptop',\n 'phone-office',\n 'phone-plus',\n 'phone-rotary',\n 'phone-slash',\n 'phone-square',\n 'phone-square-alt',\n 'phone-volume',\n 'photo-video',\n 'pi',\n 'piano',\n 'piano-keyboard',\n 'pie',\n 'pig',\n 'piggy-bank',\n 'pills',\n 'pizza',\n 'pizza-slice',\n 'place-of-worship',\n 'plane',\n 'plane-alt',\n 'plane-arrival',\n 'plane-departure',\n 'planet-moon',\n 'planet-ringed',\n 'play',\n 'play-circle',\n 'plug',\n 'plus',\n 'plus-circle',\n 'plus-hexagon',\n 'plus-octagon',\n 'plus-square',\n 'podcast',\n 'podium',\n 'podium-star',\n 'police-box',\n 'poll',\n 'poll-h',\n 'poll-people',\n 'poo',\n 'poo-storm',\n 'poop',\n 'popcorn',\n 'portal-enter',\n 'portal-exit',\n 'portrait',\n 'pound-sign',\n 'power-off',\n 'pray',\n 'praying-hands',\n 'prescription',\n 'prescription-bottle',\n 'prescription-bottle-alt',\n 'presentation',\n 'print',\n 'print-search',\n 'print-slash',\n 'procedures',\n 'project-diagram',\n 'projector',\n 'pumpkin',\n 'puzzle-piece',\n 'qrcode',\n 'question',\n 'question-circle',\n 'question-square',\n 'quidditch',\n 'quote-left',\n 'quote-right',\n 'quran',\n 'rabbit',\n 'rabbit-fast',\n 'racquet',\n 'radar',\n 'radiation',\n 'radiation-alt',\n 'radio',\n 'radio-alt',\n 'rainbow',\n 'raindrops',\n 'ram',\n 'ramp-loading',\n 'random',\n 'raygun',\n 'receipt',\n 'record-vinyl',\n 'rectangle-landscape',\n 'rectangle-portrait',\n 'rectangle-wide',\n 'recycle',\n 'redo',\n 'redo-alt',\n 'refrigerator',\n 'registered',\n 'remove-format',\n 'repeat',\n 'repeat-1',\n 'repeat-1-alt',\n 'repeat-alt',\n 'reply',\n 'reply-all',\n 'republican',\n 'restroom',\n 'retweet',\n 'retweet-alt',\n 'ribbon',\n 'ring',\n 'rings-wedding',\n 'road',\n 'robot',\n 'rocket',\n 'rocket-launch',\n 'route',\n 'route-highway',\n 'route-interstate',\n 'router',\n 'rss',\n 'rss-square',\n 'ruble-sign',\n 'ruler',\n 'ruler-combined',\n 'ruler-horizontal',\n 'ruler-triangle',\n 'ruler-vertical',\n 'running',\n 'rupee-sign',\n 'rv',\n 'sack',\n 'sack-dollar',\n 'sad-cry',\n 'sad-tear',\n 'salad',\n 'sandwich',\n 'satellite',\n 'satellite-dish',\n 'sausage',\n 'save',\n 'sax-hot',\n 'saxophone',\n 'scalpel',\n 'scalpel-path',\n 'scanner',\n 'scanner-image',\n 'scanner-keyboard',\n 'scanner-touchscreen',\n 'scarecrow',\n 'scarf',\n 'school',\n 'screwdriver',\n 'scroll',\n 'scroll-old',\n 'scrubber',\n 'scythe',\n 'sd-card',\n 'search',\n 'search-dollar',\n 'search-location',\n 'search-minus',\n 'search-plus',\n 'seedling',\n 'send-back',\n 'send-backward',\n 'sensor',\n 'sensor-alert',\n 'sensor-fire',\n 'sensor-on',\n 'sensor-smoke',\n 'server',\n 'shapes',\n 'share',\n 'share-all',\n 'share-alt',\n 'share-alt-square',\n 'share-square',\n 'sheep',\n 'shekel-sign',\n 'shield',\n 'shield-alt',\n 'shield-check',\n 'shield-cross',\n 'ship',\n 'shipping-fast',\n 'shipping-timed',\n 'shish-kebab',\n 'shoe-prints',\n 'shopping-bag',\n 'shopping-basket',\n 'shopping-cart',\n 'shovel',\n 'shovel-snow',\n 'shower',\n 'shredder',\n 'shuttle-van',\n 'shuttlecock',\n 'sickle',\n 'sigma',\n 'sign',\n 'sign-in',\n 'sign-in-alt',\n 'sign-language',\n 'sign-out',\n 'sign-out-alt',\n 'signal',\n 'signal-1',\n 'signal-2',\n 'signal-3',\n 'signal-4',\n 'signal-alt',\n 'signal-alt-1',\n 'signal-alt-2',\n 'signal-alt-3',\n 'signal-alt-slash',\n 'signal-slash',\n 'signal-stream',\n 'signature',\n 'sim-card',\n 'siren',\n 'siren-on',\n 'sitemap',\n 'skating',\n 'skeleton',\n 'ski-jump',\n 'ski-lift',\n 'skiing',\n 'skiing-nordic',\n 'skull',\n 'skull-cow',\n 'skull-crossbones',\n 'slash',\n 'sledding',\n 'sleigh',\n 'sliders-h',\n 'sliders-h-square',\n 'sliders-v',\n 'sliders-v-square',\n 'smile',\n 'smile-beam',\n 'smile-plus',\n 'smile-wink',\n 'smog',\n 'smoke',\n 'smoking',\n 'smoking-ban',\n 'sms',\n 'snake',\n 'snooze',\n 'snow-blowing',\n 'snowboarding',\n 'snowflake',\n 'snowflakes',\n 'snowman',\n 'snowmobile',\n 'snowplow',\n 'socks',\n 'solar-panel',\n 'solar-system',\n 'sort',\n 'sort-alpha-down',\n 'sort-alpha-down-alt',\n 'sort-alpha-up',\n 'sort-alpha-up-alt',\n 'sort-alt',\n 'sort-amount-down',\n 'sort-amount-down-alt',\n 'sort-amount-up',\n 'sort-amount-up-alt',\n 'sort-circle',\n 'sort-circle-down',\n 'sort-circle-up',\n 'sort-down',\n 'sort-numeric-down',\n 'sort-numeric-down-alt',\n 'sort-numeric-up',\n 'sort-numeric-up-alt',\n 'sort-shapes-down',\n 'sort-shapes-down-alt',\n 'sort-shapes-up',\n 'sort-shapes-up-alt',\n 'sort-size-down',\n 'sort-size-down-alt',\n 'sort-size-up',\n 'sort-size-up-alt',\n 'sort-up',\n 'soup',\n 'spa',\n 'space-shuttle',\n 'space-station-moon',\n 'space-station-moon-alt',\n 'spade',\n 'sparkles',\n 'speaker',\n 'speakers',\n 'spell-check',\n 'spider',\n 'spider-black-widow',\n 'spider-web',\n 'spinner',\n 'spinner-third',\n 'splotch',\n 'spray-can',\n 'sprinkler',\n 'square',\n 'square-full',\n 'square-root',\n 'square-root-alt',\n 'squirrel',\n 'staff',\n 'stamp',\n 'star',\n 'star-and-crescent',\n 'star-christmas',\n 'star-exclamation',\n 'star-half',\n 'star-half-alt',\n 'star-of-david',\n 'star-of-life',\n 'star-shooting',\n 'starfighter',\n 'starfighter-alt',\n 'stars',\n 'starship',\n 'starship-freighter',\n 'steak',\n 'steering-wheel',\n 'step-backward',\n 'step-forward',\n 'stethoscope',\n 'sticky-note',\n 'stocking',\n 'stomach',\n 'stop',\n 'stop-circle',\n 'stopwatch',\n 'store',\n 'store-alt',\n 'stream',\n 'street-view',\n 'stretcher',\n 'strikethrough',\n 'stroopwafel',\n 'subscript',\n 'subway',\n 'suitcase',\n 'suitcase-rolling',\n 'sun',\n 'sun-cloud',\n 'sun-dust',\n 'sun-haze',\n 'sunglasses',\n 'sunrise',\n 'sunset',\n 'superscript',\n 'surprise',\n 'swatchbook',\n 'swimmer',\n 'swimming-pool',\n 'sword',\n 'sword-laser',\n 'sword-laser-alt',\n 'swords',\n 'swords-laser',\n 'synagogue',\n 'sync',\n 'sync-alt',\n 'syringe',\n 'table',\n 'table-tennis',\n 'tablet',\n 'tablet-alt',\n 'tablet-android',\n 'tablet-android-alt',\n 'tablet-rugged',\n 'tablets',\n 'tachometer',\n 'tachometer-alt',\n 'tachometer-alt-average',\n 'tachometer-alt-fast',\n 'tachometer-alt-fastest',\n 'tachometer-alt-slow',\n 'tachometer-alt-slowest',\n 'tachometer-average',\n 'tachometer-fast',\n 'tachometer-fastest',\n 'tachometer-slow',\n 'tachometer-slowest',\n 'taco',\n 'tag',\n 'tags',\n 'tally',\n 'tanakh',\n 'tape',\n 'tasks',\n 'tasks-alt',\n 'taxi',\n 'teeth',\n 'teeth-open',\n 'telescope',\n 'temperature-down',\n 'temperature-frigid',\n 'temperature-high',\n 'temperature-hot',\n 'temperature-low',\n 'temperature-up',\n 'tenge',\n 'tennis-ball',\n 'terminal',\n 'text',\n 'text-height',\n 'text-size',\n 'text-width',\n 'th',\n 'th-large',\n 'th-list',\n 'theater-masks',\n 'thermometer',\n 'thermometer-empty',\n 'thermometer-full',\n 'thermometer-half',\n 'thermometer-quarter',\n 'thermometer-three-quarters',\n 'theta',\n 'thumbs-down',\n 'thumbs-up',\n 'thumbtack',\n 'thunderstorm',\n 'thunderstorm-moon',\n 'thunderstorm-sun',\n 'ticket',\n 'ticket-alt',\n 'tilde',\n 'times',\n 'times-circle',\n 'times-hexagon',\n 'times-octagon',\n 'times-square',\n 'tint',\n 'tint-slash',\n 'tire',\n 'tire-flat',\n 'tire-pressure-warning',\n 'tire-rugged',\n 'tired',\n 'toggle-off',\n 'toggle-on',\n 'toilet',\n 'toilet-paper',\n 'toilet-paper-alt',\n 'tombstone',\n 'tombstone-alt',\n 'toolbox',\n 'tools',\n 'tooth',\n 'toothbrush',\n 'torah',\n 'torii-gate',\n 'tornado',\n 'tractor',\n 'trademark',\n 'traffic-cone',\n 'traffic-light',\n 'traffic-light-go',\n 'traffic-light-slow',\n 'traffic-light-stop',\n 'trailer',\n 'train',\n 'tram',\n 'transgender',\n 'transgender-alt',\n 'transporter',\n 'transporter-1',\n 'transporter-2',\n 'transporter-3',\n 'transporter-empty',\n 'trash',\n 'trash-alt',\n 'trash-restore',\n 'trash-restore-alt',\n 'trash-undo',\n 'trash-undo-alt',\n 'treasure-chest',\n 'tree',\n 'tree-alt',\n 'tree-christmas',\n 'tree-decorated',\n 'tree-large',\n 'tree-palm',\n 'trees',\n 'triangle',\n 'triangle-music',\n 'trophy',\n 'trophy-alt',\n 'truck',\n 'truck-container',\n 'truck-couch',\n 'truck-loading',\n 'truck-monster',\n 'truck-moving',\n 'truck-pickup',\n 'truck-plow',\n 'truck-ramp',\n 'trumpet',\n 'tshirt',\n 'tty',\n 'turkey',\n 'turntable',\n 'turtle',\n 'tv',\n 'tv-alt',\n 'tv-music',\n 'tv-retro',\n 'typewriter',\n 'ufo',\n 'ufo-beam',\n 'umbrella',\n 'umbrella-beach',\n 'underline',\n 'undo',\n 'undo-alt',\n 'unicorn',\n 'union',\n 'universal-access',\n 'university',\n 'unlink',\n 'unlock',\n 'unlock-alt',\n 'upload',\n 'usb-drive',\n 'usd-circle',\n 'usd-square',\n 'user',\n 'user-alien',\n 'user-alt',\n 'user-alt-slash',\n 'user-astronaut',\n 'user-chart',\n 'user-check',\n 'user-circle',\n 'user-clock',\n 'user-cog',\n 'user-cowboy',\n 'user-crown',\n 'user-edit',\n 'user-friends',\n 'user-graduate',\n 'user-hard-hat',\n 'user-headset',\n 'user-injured',\n 'user-lock',\n 'user-md',\n 'user-md-chat',\n 'user-minus',\n 'user-music',\n 'user-ninja',\n 'user-nurse',\n 'user-plus',\n 'user-robot',\n 'user-secret',\n 'user-shield',\n 'user-slash',\n 'user-tag',\n 'user-tie',\n 'user-times',\n 'user-visor',\n 'users',\n 'users-class',\n 'users-cog',\n 'users-crown',\n 'users-medical',\n 'utensil-fork',\n 'utensil-knife',\n 'utensil-spoon',\n 'utensils',\n 'utensils-alt',\n 'vacuum',\n 'vacuum-robot',\n 'value-absolute',\n 'vector-square',\n 'venus',\n 'venus-double',\n 'venus-mars',\n 'vhs',\n 'vial',\n 'vials',\n 'video',\n 'video-plus',\n 'video-slash',\n 'vihara',\n 'violin',\n 'voicemail',\n 'volcano',\n 'volleyball-ball',\n 'volume',\n 'volume-down',\n 'volume-mute',\n 'volume-off',\n 'volume-slash',\n 'volume-up',\n 'vote-nay',\n 'vote-yea',\n 'vr-cardboard',\n 'wagon-covered',\n 'walker',\n 'walkie-talkie',\n 'walking',\n 'wallet',\n 'wand',\n 'wand-magic',\n 'warehouse',\n 'warehouse-alt',\n 'washer',\n 'watch',\n 'watch-calculator',\n 'watch-fitness',\n 'water',\n 'water-lower',\n 'water-rise',\n 'wave-sine',\n 'wave-square',\n 'wave-triangle',\n 'waveform',\n 'waveform-path',\n 'webcam',\n 'webcam-slash',\n 'weight',\n 'weight-hanging',\n 'whale',\n 'wheat',\n 'wheelchair',\n 'whistle',\n 'wifi',\n 'wifi-1',\n 'wifi-2',\n 'wifi-slash',\n 'wind',\n 'wind-turbine',\n 'wind-warning',\n 'window',\n 'window-alt',\n 'window-close',\n 'window-frame',\n 'window-frame-open',\n 'window-maximize',\n 'window-minimize',\n 'window-restore',\n 'windsock',\n 'wine-bottle',\n 'wine-glass',\n 'wine-glass-alt',\n 'won-sign',\n 'wreath',\n 'wrench',\n 'x-ray',\n 'yen-sign',\n 'yin-yang'\n];\n","import { Injectable } from '@angular/core';\nimport { ICON_NAME_LIST } from '../../dtos/configs/fonts/font-awesome.dto';\nimport { library, findIconDefinition, IconName } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { fab } from '@fortawesome/free-brands-svg-icons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FontAwesomeService {\n readonly MAX_LIMIT_FONT = 55;\n\n constructor() {\n library.add(fas, far, fab);\n }\n\n getList(search = '') {\n const listIcon = [];\n const randomIconList = this.shuffle(ICON_NAME_LIST);\n\n let limit = 0;\n for (let i = 0; i < randomIconList.length; i++) {\n const v: IconName = <IconName>randomIconList[i];\n\n const iconFas = this.searchIcon('fas', v);\n const iconFar = this.searchIcon('far', v);\n const iconFab = this.searchIcon('fab', v);\n\n if (search !== '') {\n if (iconFas && iconFas.includes(search) && !listIcon.includes(iconFas)) {\n listIcon.push(iconFas);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n\n if (iconFar && iconFar.includes(search) && !listIcon.includes(iconFar)) {\n listIcon.push(iconFar);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n\n if (iconFab && iconFab.includes(search) && !listIcon.includes(iconFab)) {\n listIcon.push(iconFab);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n } else {\n if (iconFas) {\n listIcon.push(iconFas);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n if (iconFar) {\n listIcon.push(iconFar);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n if (iconFab) {\n listIcon.push(iconFab);\n limit++;\n if (limit > this.MAX_LIMIT_FONT) {\n break;\n }\n }\n }\n }\n\n return listIcon;\n }\n\n searchIcon(prefix, iconName) {\n const icon = findIconDefinition({ prefix: prefix, iconName: iconName });\n if (icon) {\n return icon.prefix + ' fa-' + icon.iconName;\n }\n\n return false;\n }\n\n shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n\n return array;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { FontAwesomeService } from '../../../services/utils/font-awesome.service';\nimport { FORM_NAME_ICON, FORM_NAME_ID, FORM_NAME_IMAGE_URL } from '../../../dtos/forms/forms.dto';\nimport { FontOrMediaDto } from '../../../dtos/configs/medias/image/font-or-media.dto';\nimport { MediaConnectorService } from '../../../services/utils/media-connector.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { MediaDto } from '../../../dtos/configs/medias/media.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { TextMediaDto } from '../../../dtos/configs/medias/text/text-media.dto';\n\n@Component({\n selector: 'wb-structure-config-font',\n templateUrl: './structure-config-font.component.html',\n})\nexport class StructureConfigFontComponent implements OnInit, OnDestroy {\n @Input() white = true;\n @Input() color;\n @Input() isSmall = false;\n @Input() isInline = false;\n @Input() withImage = true;\n @Input() alignLeft = false;\n @Input() recommendedSize = '';\n\n iconList = [];\n\n searchIconValue = '';\n\n showPopup = false;\n\n id = uuid();\n\n @Output()\n valueChange: EventEmitter<MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto> = new EventEmitter<\n MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto\n >();\n\n _value: FontOrMediaDto;\n\n protected mediaEventSubscription: Subscription = null;\n\n protected chosenImage = new Subject<MediaDto | ImageMediaDto | TextMediaDto | FontOrMediaDto>();\n\n protected image = this.chosenImage.asObservable();\n\n constructor(private fontAwesomeService: FontAwesomeService, private mediaConnectorService: MediaConnectorService) {}\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(v: any) {\n this._value = v;\n this.valueChange.emit(this._value);\n }\n\n selectThisIcon(icon) {\n const value = this.value;\n value[FORM_NAME_ICON] = icon;\n value[FORM_NAME_IMAGE_URL] = '';\n\n this.value = value;\n this.showBelow();\n }\n\n showBelow() {\n this.showPopup = !this.showPopup;\n\n if (!this.showPopup) {\n setTimeout(() => {\n this.searchIcon();\n }, 300);\n }\n }\n\n ngOnInit() {\n this.searchIcon();\n\n this.image.subscribe((media) => {\n const value = this.value;\n value[FORM_NAME_ICON] = '';\n value[FORM_NAME_IMAGE_URL] = media.image_url;\n value[FORM_NAME_ID] = media.id;\n\n this.value = value;\n this.showPopup = false;\n });\n }\n\n searchIcon() {\n this.searchIconValue = this.searchIconValue.trim();\n this.iconList = this.fontAwesomeService.getList(this.searchIconValue.trim());\n }\n\n getMedia() {\n this.mediaEventSubscription = this.mediaConnectorService.bindReturnedImage().subscribe(\n () => {\n if (this.id === this.mediaConnectorService.uuid) {\n this.chosenImage.next(this.mediaConnectorService.image);\n }\n this.mediaEventSubscription.unsubscribe();\n },\n () => {\n this.mediaEventSubscription.unsubscribe();\n }\n );\n this.mediaConnectorService.askImage(this.id);\n }\n\n ngOnDestroy(): void {\n if (this.mediaEventSubscription) {\n this.mediaEventSubscription.unsubscribe();\n }\n if (this.chosenImage) {\n this.chosenImage.unsubscribe();\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wb-star',\n templateUrl: './star.component.html'\n})\nexport class StarComponent implements OnInit {\n @Input() score = 1.0;\n @Input() maxNumber = 5;\n @Input() colorStar = '#e95656';\n @Input() colorBackgroundStar = '#d8d8d8';\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\n\n@Component({\n selector: 'wb-structure-search-product',\n templateUrl: './structure-search-product.component.html'\n})\nexport class StructureSearchProductComponent implements OnInit {\n @Input() label = '';\n\n @Input() searchNumber = 1;\n\n @Input() selectedProd = [];\n\n @Output() newSearch = new EventEmitter<Array<string>>();\n\n searchQueryChanged: Subject<string> = new Subject<string>();\n\n search = '';\n\n imageFrontUrl: string;\n\n currentSearchCatalog: CatalogDto[] = [];\n\n currentSelectedCatalog: CatalogDto[] = [];\n\n inSearch = false;\n\n inSearchSelected = false;\n\n toDelete = [];\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {}\n\n ngOnInit(): void {\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (typeof this.selectedProd === 'undefined') {\n this.selectedProd = [];\n }\n this.searchQueryChanged\n .pipe(debounceTime(300)) // wait 1 sec after the last event before emitting last event\n .subscribe(model => {\n this.search = model;\n this.searchProduct();\n });\n if (this.selectedProd.length) {\n this.fillCatalogSearch();\n }\n }\n\n selectProduct(id) {\n this.search = '';\n\n let alreadySelected = false;\n if (this.searchNumber === 1) {\n this.selectedProd = [];\n this.selectedProd.push(id);\n } else {\n this.selectedProd.forEach(v => {\n if (v === id) {\n alreadySelected = true;\n }\n });\n if (!alreadySelected) {\n this.selectedProd.push(id);\n }\n }\n\n if (!alreadySelected && this.selectedProd.length) {\n this.fillCatalogSearch();\n\n this.newSearch.emit(this.selectedProd);\n }\n }\n\n fillCatalogSearch() {\n this.apiService.getCatalogSpecific(this.selectedProd, this.searchNumber).subscribe(\n catalog => {\n this.currentSelectedCatalog = catalog.products;\n this.inSearchSelected = false;\n },\n () => {\n this.inSearchSelected = false;\n }\n );\n }\n\n removeThisOne(i) {\n this.toDelete.push(i);\n\n setTimeout(() => {\n this.selectedProd.splice(i, 1);\n this.currentSelectedCatalog.splice(i, 1);\n this.toDelete.splice(this.toDelete.indexOf(i), 1);\n\n this.newSearch.emit(this.selectedProd);\n }, 350);\n }\n\n searchProduct() {\n this.apiService.getCatalogSearch(this.search, 40).subscribe(\n catalog => {\n this.currentSearchCatalog = catalog.products;\n this.inSearch = false;\n },\n () => {\n this.inSearch = false;\n }\n );\n }\n\n onSearchChange(query: string) {\n if (query !== null) {\n this.inSearch = true;\n this.searchQueryChanged.next(query);\n }\n }\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wb-structure-config-extended-input',\n templateUrl: './structure-config-extended-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StructureConfigExtendedInputComponent),\n multi: true\n }\n ]\n})\nexport class StructureConfigExtendedInputComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value = '';\n @Input()\n type = 'text';\n @Input()\n placeholder = '';\n @Input()\n textInfo = null;\n @Input()\n textError = null;\n @Input()\n size = null;\n @Input()\n withoutBlock = false;\n @Input()\n icon = '';\n @Input()\n big = false;\n\n disabled = false;\n\n id = 'input' + uuid();\n\n private _onChange: Function;\n private _onTouched: Function;\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(obj: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wb-small-loader',\n templateUrl: './small-loader.component.html'\n})\nexport class SmallLoaderComponent {}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { FontAwesomeService } from '../../../services/utils/font-awesome.service';\nimport { FORM_NAME_ID, FORM_NAME_IMAGE_URL, FORM_NAME_PAYMENT } from '../../../dtos/forms/forms.dto';\nimport { MediaConnectorService } from '../../../services/utils/media-connector.service';\nimport { Subject, Subscription } from 'rxjs';\nimport { MediaDto } from '../../../dtos/configs/medias/media.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { TextMediaDto } from '../../../dtos/configs/medias/text/text-media.dto';\nimport { PaymentOrMediaDto } from '../../../dtos/configs/medias/image/payment-or-media.dto';\n\n@Component({\n selector: 'wb-structure-config-payment',\n templateUrl: './structure-config-payment.component.html'\n})\nexport class StructureConfigPaymentComponent implements OnInit, OnDestroy {\n paymentListLink = [\n '//img.wizishop.com/a/site/cards/CB-Visa-MCard.svg',\n '//img.wizishop.com/a/site/cards/CB-Visa-MCard-AmazonPay.svg',\n '//img.wizishop.com/a/site/cards/CB-Visa-MCard-Paypal.svg',\n '//img.wizishop.com/a/site/cards/CB-Visa-MCard-Paypal-AmazonPay.svg'\n ];\n\n showPopup = false;\n\n protected mediaEventSubscription: Subscription = null;\n\n protected chosenImage = new Subject<MediaDto | ImageMediaDto | TextMediaDto | PaymentOrMediaDto>();\n\n protected image = this.chosenImage.asObservable();\n\n id = uuid();\n\n @Output()\n valueChange: EventEmitter<MediaDto | ImageMediaDto | TextMediaDto | PaymentOrMediaDto> = new EventEmitter<\n MediaDto | ImageMediaDto | TextMediaDto | PaymentOrMediaDto\n >();\n\n _value: PaymentOrMediaDto;\n\n @Input()\n white = false;\n\n @Input()\n get value(): PaymentOrMediaDto {\n return this._value;\n }\n\n set value(v: PaymentOrMediaDto) {\n this._value = v;\n this.valueChange.emit(this._value);\n }\n\n selectThisIcon(paymentLink) {\n const value = this.value;\n if (this.white) {\n paymentLink = paymentLink.replace('/CB-', '/W_CB-');\n }\n value[FORM_NAME_PAYMENT] = paymentLink;\n value[FORM_NAME_IMAGE_URL] = '';\n\n this.value = value;\n this.showBelow();\n }\n\n showBelow() {\n this.showPopup = !this.showPopup;\n }\n\n constructor(private fontAwesomeService: FontAwesomeService, private mediaConnectorService: MediaConnectorService) {}\n\n ngOnInit() {\n console.log(this.value);\n if (this.white) {\n this.value[FORM_NAME_PAYMENT] = this.value[FORM_NAME_PAYMENT].replace('/CB-', '/W_CB-');\n }\n\n this.image.subscribe(media => {\n const value = this.value;\n value[FORM_NAME_PAYMENT] = '';\n value[FORM_NAME_IMAGE_URL] = media.image_url;\n value[FORM_NAME_ID] = media.id;\n\n this.value = value;\n this.showPopup = false;\n });\n }\n\n getMedia() {\n this.mediaEventSubscription = this.mediaConnectorService.bindReturnedImage().subscribe(\n () => {\n if (this.id === this.mediaConnectorService.uuid) {\n this.chosenImage.next(this.mediaConnectorService.image);\n }\n this.mediaEventSubscription.unsubscribe();\n },\n () => {\n this.mediaEventSubscription.unsubscribe();\n }\n );\n this.mediaConnectorService.askImage(this.id);\n }\n\n ngOnDestroy(): void {\n if (this.mediaEventSubscription) {\n this.mediaEventSubscription.unsubscribe();\n }\n if (this.chosenImage) {\n this.chosenImage.unsubscribe();\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\n\n@Component({\n selector: 'wb-structure-amplify-search-product',\n templateUrl: './structure-amplify-search-product.component.html',\n})\nexport class StructureAmplifySearchProductComponent implements OnInit {\n @Input() label = '';\n\n @Input() placeholder = 'wb.shared.components.amplifySearchCategory.2';\n\n @Input() searchNumber = 1;\n\n @Input() selectedProd = [];\n\n @Input()\n type = 'amplify';\n\n @Output() newSearch = new EventEmitter<Array<string>>();\n\n @Output() changeType = new EventEmitter<string>();\n\n searchQueryChanged: Subject<string> = new Subject<string>();\n\n search = '';\n\n currentSearchCatalog: AmplifyProductDto[] = [];\n\n currentSelectedCatalog: AmplifyProductDto[] = [];\n\n inSearch = false;\n\n inSearchSelected = false;\n\n toDelete = [];\n\n selectedValue = {\n id: 1,\n title: 'Boutique Amplify',\n value: 'amplify',\n };\n\n form = [\n {\n id: 1,\n title: 'Boutique Amplify',\n value: 'amplify',\n },\n {\n id: 2,\n title: 'Boutique Affiliée',\n value: 'affiliate',\n },\n ];\n\n constructor(private apiService: ApiService) {}\n\n ngOnInit(): void {\n console.log(this.searchNumber);\n this.form.forEach((f) => {\n if (f.value === this.type) {\n this.selectedValue = f;\n }\n });\n\n if (typeof this.selectedProd === 'undefined') {\n this.selectedProd = [];\n }\n this.searchQueryChanged\n .pipe(debounceTime(300)) // wait 1 sec after the last event before emitting last event\n .subscribe((model) => {\n this.search = model;\n this.searchProduct();\n });\n if (this.selectedProd.length) {\n this.fillCatalogSearch();\n }\n }\n\n selectProduct(id) {\n this.search = '';\n\n let alreadySelected = false;\n if (this.searchNumber === 1) {\n this.selectedProd = [];\n this.selectedProd.push(id);\n } else {\n this.selectedProd.forEach((v) => {\n if (v === id) {\n alreadySelected = true;\n }\n });\n if (!alreadySelected) {\n this.selectedProd.push(id);\n }\n }\n\n if (!alreadySelected && this.selectedProd.length) {\n this.fillCatalogSearch();\n\n this.newSearch.emit(this.selectedProd);\n }\n }\n\n fillCatalogSearch() {\n this.apiService.getAmplifySpecificRoute(this.selectedProd, this.type, 20).subscribe(\n (catalog) => {\n this.currentSelectedCatalog = catalog.results;\n console.log(this.currentSelectedCatalog);\n this.inSearchSelected = false;\n },\n () => {\n this.inSearchSelected = false;\n }\n );\n }\n\n removeThisOne(id) {\n // find index of item\n let index = 0;\n for (let i = 0; i < this.selectedProd.length; i++) {\n if (this.selectedProd[i] === id) {\n index = i;\n }\n }\n this.toDelete.push(index);\n\n setTimeout(() => {\n this.selectedProd.splice(index, 1);\n this.currentSelectedCatalog.splice(index, 1);\n this.toDelete.splice(this.toDelete.indexOf(index), 1);\n this.newSearch.emit(this.selectedProd);\n }, 350);\n }\n\n searchProduct() {\n this.apiService.getAmplifyProductRoute(this.search, this.type, 40).subscribe(\n (catalog) => {\n this.currentSearchCatalog = <AmplifyProductDto[]>catalog.results;\n this.inSearch = false;\n },\n () => {\n this.inSearch = false;\n }\n );\n }\n\n selectThisType(event) {\n this.type = event.value;\n this.selectedProd = [];\n this.currentSelectedCatalog = [];\n this.currentSearchCatalog = [];\n this.changeType.emit(this.type);\n }\n\n onSearchChange(query: string) {\n if (query !== null) {\n this.inSearch = true;\n this.searchQueryChanged.next(query);\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { AmplifyCategoryDto } from '../../../dtos/apis/amplify/amplify-category.dto';\n\n@Component({\n selector: 'wb-structure-amplify-search-category',\n templateUrl: './structure-amplify-search-category.component.html',\n})\nexport class StructureAmplifySearchCategoryComponent implements OnInit {\n @Input() label = '';\n\n @Input() placeholder = 'wb.shared.components.amplifySearchCategory.2';\n\n @Input() selectedCategory = '';\n\n type = 'amplify';\n\n @Output() newSearch = new EventEmitter<string>();\n\n @Output() changeType = new EventEmitter<string>();\n\n searchQueryChanged: Subject<string> = new Subject<string>();\n\n search = '';\n\n currentSearchCategory: AmplifyCategoryDto[] = [];\n\n currentSelectedCategory: AmplifyCategoryDto = null;\n\n inSearch = false;\n\n inSearchSelected = false;\n\n constructor(private apiService: ApiService) {}\n\n ngOnInit(): void {\n if (typeof this.selectedCategory === 'undefined') {\n this.selectedCategory = '';\n }\n this.searchQueryChanged\n .pipe(debounceTime(300)) // wait 1 sec after the last event before emitting last event\n .subscribe((model) => {\n this.search = model;\n this.searchCategory();\n });\n if (this.selectedCategory.length) {\n this.fillCatalogSearch();\n }\n }\n\n removeThisCategory() {\n this.selectedCategory = '';\n this.currentSelectedCategory = null;\n this.newSearch.emit(this.selectedCategory);\n }\n\n selectProduct(id) {\n this.search = '';\n\n this.selectedCategory = id;\n\n if (id) {\n this.fillCatalogSearch();\n\n this.newSearch.emit(this.selectedCategory);\n }\n }\n\n fillCatalogSearch() {\n this.apiService.getAmplifyCategoriesByIdsRoute(this.selectedCategory).subscribe(\n (catalog) => {\n this.currentSelectedCategory = catalog.results[0];\n this.inSearchSelected = false;\n },\n () => {\n this.inSearchSelected = false;\n }\n );\n }\n\n searchCategory() {\n this.apiService.getAmplifyCategoriesRoute(this.search, 30).subscribe(\n (catalog) => {\n this.currentSearchCategory = <AmplifyCategoryDto[]>catalog.results;\n this.inSearch = false;\n },\n () => {\n this.inSearch = false;\n }\n );\n }\n\n onSearchChange(query: string) {\n if (query !== null) {\n this.inSearch = true;\n this.searchQueryChanged.next(query);\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FORM_NAME_COLOR, FORM_NAME_CONTENT, FORM_NAME_TITLE } from '../../../dtos/forms/forms.dto';\nimport { FaqDto } from '../../../dtos/blocks/faq/faq.dto';\n\n@Component({\n selector: 'wb-faq',\n templateUrl: './faq.component.html',\n})\nexport class FaqComponent implements OnInit {\n FORM_NAME_TITLE = FORM_NAME_TITLE;\n FORM_NAME_CONTENT = FORM_NAME_CONTENT;\n FORM_NAME_COLOR = FORM_NAME_COLOR;\n\n @Input() faqRows = [];\n @Input() type = '';\n @Input() color = '';\n @Input() backgroundColor = '';\n @Input() borderColor = '';\n @Input() backgroundRowColor = '';\n @Input() backgroundQuestionColor = '';\n @Input() backgroundAnswerColor = '';\n @Input() shadowRowColor = '';\n @Input() Accordion = false;\n @Output() faqRowsChange = new EventEmitter<any>();\n hasTooltipFocused: boolean = false;\n\n ngOnInit() {}\n\n persist() {\n this.faqRowsChange.emit(this.faqRows);\n }\n\n addFaqRow() {\n this.faqRows.push(new FaqDto());\n }\n\n deleteRow(i) {\n this.faqRows.splice(i, 1);\n }\n\n showHide(i) {\n if (!this.Accordion) {\n this.faqRows[i].open = !this.faqRows[i].open;\n } else {\n const state = this.faqRows[i].open;\n this.faqRows.forEach((element) => {\n element.open = false;\n });\n this.faqRows[i].open = !state;\n }\n }\n\n /**\n * Set hasTooltipFocused.\n * @param index\n * @param event\n * @param keyLine : boolean. true -> question / false -> answer. Avoid reset of hasTooltipFocused when a question line is selected\n */\n checkQuillToolTip(index, event, keyLine) {\n this.faqRows[index]['hasTooltipFocused'] = keyLine ? event : this.faqRows[index]['hasTooltipFocused'] ? true : event;\n this.checkHasTooltipFocused();\n }\n\n checkHasTooltipFocused() {\n this.hasTooltipFocused = this.faqRows && this.faqRows.filter((row) => row['hasTooltipFocused']).length ? true : false;\n }\n}\n","export class StyleObject {\n property: string;\n value: string;\n default: string;\n input?: string;\n class?: string;\n}\n\nexport class AttributeObject {\n name: string;\n value: string;\n}\n\nexport abstract class EditorJSTool {\n api: any;\n\n parentEditor: HTMLDivElement = null;\n\n textContainers = 'h1,h2,h3,h4,h5,h6,p,li';\n\n currentSelection?: Selection;\n\n selectedAnchorNode: Node = null;\n\n selectedFocusNode: Node = null;\n\n anchorOffset: number = -1;\n\n focusOffset: number = -1;\n\n hasSeparatorBefore?: boolean = false;\n\n separatorClass: string = 'ce-inline-tool--separator';\n\n getSelection(): Selection {\n if (window?.getSelection) {\n return window.getSelection();\n } else if (document?.getSelection) {\n return document.getSelection();\n } else if (document && (document as any).selection) {\n return (document as any).selection.createRange().text;\n }\n return null;\n }\n\n getRangeObject(selectionObject: Selection): Range {\n if (selectionObject.getRangeAt) {\n return selectionObject.getRangeAt(0);\n } else {\n let range = document.createRange();\n range.setStart(selectionObject.anchorNode.parentElement, selectionObject.anchorOffset);\n range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);\n return range;\n }\n }\n\n saveUserSelection(): void {\n this.currentSelection = this.getSelection();\n this.selectedAnchorNode = this.currentSelection.anchorNode;\n this.selectedFocusNode = this.currentSelection.focusNode;\n this.anchorOffset = this.currentSelection.anchorOffset;\n this.focusOffset = this.currentSelection.focusOffset;\n }\n\n resetUserSelection(): void {\n console.log('reset here');\n if (this.selectedAnchorNode.nodeType === Node.ELEMENT_NODE && (<HTMLElement>this.selectedAnchorNode).children) {\n while (\n (<HTMLElement>this.selectedAnchorNode).children &&\n (<HTMLElement>this.selectedAnchorNode).innerText ===\n (<HTMLElement>(<HTMLElement>this.selectedAnchorNode).children[0])?.innerText &&\n (<HTMLElement>this.selectedAnchorNode).children.length === 1\n ) {\n this.selectedAnchorNode = (<HTMLElement>this.selectedAnchorNode).children[0];\n this.selectedFocusNode = this.selectedAnchorNode;\n this.anchorOffset = 0;\n this.focusOffset = 1;\n }\n if (this.textContainers.split(',').indexOf((<HTMLElement>this.selectedAnchorNode).tagName.toLowerCase()) > -1) {\n let childTextNodes = this.getTextNodes(this.selectedAnchorNode);\n let focusNode =\n childTextNodes.length > 1\n ? (<HTMLElement>this.selectedAnchorNode).childNodes[childTextNodes.length - 1]\n : (<HTMLElement>this.selectedAnchorNode).childNodes[0];\n let focusOffset = childTextNodes.length > 1 ? childTextNodes.length : childTextNodes[0].textContent.length;\n this.selectedAnchorNode = (<HTMLElement>this.selectedAnchorNode).childNodes[0];\n this.anchorOffset = 0;\n this.selectedFocusNode = focusNode;\n this.focusOffset = focusOffset;\n }\n }\n document.getSelection().setBaseAndExtent(this.selectedAnchorNode, this.anchorOffset, this.selectedFocusNode, this.focusOffset);\n }\n\n collapseSelection() {\n let selection = this.getSelection();\n document.getSelection().setBaseAndExtent(selection.anchorNode, 0, selection.anchorNode, 0);\n }\n\n findParentEditor(): HTMLDivElement | null {\n const selection: Selection | null = this.currentSelection ? this.currentSelection : this.getSelection();\n return selection.anchorNode.parentElement.closest('.editorJs');\n }\n\n findParentModifier(): HTMLElement | null {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n return <HTMLElement>(\n this.parentEditor.querySelectorAll('.ce-block')[this.api.blocks.getCurrentBlockIndex()].querySelector('.ce-paragraph')\n .children[0]\n );\n }\n\n clear() {\n resetBlockFocus(this.parentEditor);\n }\n\n private getTextNodes(container): Array<Node> {\n let childTextNodes: Array<Node> = [];\n if (container.childNodes) {\n for (var i = 0; i < container.childNodes.length; ++i) {\n if (container.childNodes[i].nodeType === Node.TEXT_NODE) {\n childTextNodes.push(container.childNodes[i]);\n }\n }\n }\n return childTextNodes;\n }\n}\n\nexport var isTextEditionTool: boolean = false;\n\nexport var isBlockFocused: boolean = false;\n\nexport function setIsTextEditionTool(value: boolean) {\n isTextEditionTool = value;\n}\n\nexport function setIsBlockFocused(value: boolean) {\n isBlockFocused = value;\n}\n\nexport function setBlockFocus(parentEditor: HTMLElement) {\n let block = parentEditor.closest('.wb-blocks__container');\n if (!block.classList.contains('wb-blocks__container--focused')) {\n block.classList.add('wb-blocks__container--focused');\n }\n\n let containerToFocus = parentEditor.closest('.column');\n if (!containerToFocus.classList.contains('editorjs-focused')) {\n containerToFocus.classList.add('editorjs-focused');\n }\n}\n\nexport function resetBlockFocus(parentEditor: HTMLElement) {\n let block = parentEditor.closest('.wb-blocks__container');\n if (block.classList.contains('wb-blocks__container--focused')) {\n block.classList.remove('wb-blocks__container--focused');\n }\n\n let containerToFocus = parentEditor.closest('.column');\n if (containerToFocus.classList.contains('editorjs-focused')) {\n containerToFocus.classList.remove('editorjs-focused');\n }\n}\n","import { AttributeObject, EditorJSTool, StyleObject } from '../../utils/editorjs-tool.component';\n\nexport abstract class InlineStyleTool extends EditorJSTool {\n tag: string;\n\n modifiers = 'strong,em';\n\n style?: StyleObject;\n\n foundAnchorOffset: number = 0;\n\n foundFocusOffset: number = 0;\n\n foundAnchorNode: boolean = false;\n\n foundFocusNode: boolean = false;\n\n tmpOffset: number = 0;\n\n classToApply?: string;\n\n classes?: string;\n\n modifiedContent: boolean = false;\n\n attributeName?: string;\n\n attributesToApply?: Array<AttributeObject>;\n\n linkDeletion: boolean = false;\n\n modifies = {\n tag: false,\n style: false,\n class: false,\n attribute: false,\n };\n\n async execCommandStyle(action: string) {\n const selection: Selection | null = this.currentSelection ? this.currentSelection : this.getSelection();\n if (!selection) {\n return;\n }\n let anchorNode: Node = selection.anchorNode;\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n\n if (!anchorNode) {\n return;\n }\n let container: HTMLElement =\n anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.COMMENT_NODE\n ? (anchorNode as HTMLElement)\n : anchorNode.parentElement;\n const sameSelection: boolean = container && container.innerText === selection.toString();\n await this.saveInlineSelection(container, true);\n console.log('=== inline tool execCommandStyle method ===');\n console.log(this.hasStyle(container));\n\n // Link delete exception\n if (this.linkDeletion) {\n await this.replaceLink(selection, this.hasStyle(container));\n } else {\n if (\n sameSelection &&\n !this.isContainer(this.textContainers, container) &&\n this.hasStyle(container) &&\n selection.toString() === this.hasStyle(container).innerText\n ) {\n console.log('-> update selection');\n await this.updateSelection(selection, this.hasStyle(container), action, this.textContainers);\n } else {\n console.log('-> replace selection');\n await this.replaceSelection(this.getMostDescendantChild(container), action, selection, this.textContainers);\n }\n }\n await this.cleanupContainer(selection, container, true);\n if (this.modifiedContent) {\n await this.resetInlineSelection(container, true);\n }\n }\n\n private async updateSelection(selection: Selection, container: HTMLElement, action: string, containers: string) {\n if (this.modifies.style) {\n const css = this.style.property;\n let value = await this.getStyleValue(container, action, containers);\n if (value !== this.style.default) {\n container.style[css] = value;\n } else {\n container.style.removeProperty(this.style.property);\n }\n } else {\n const range: Range = this.getRangeObject(selection);\n let newElement = document.createElement(this.hasStyle(container) ? 'span' : this.tag);\n if (this.modifies.class) {\n await this.removeChildrenClasses(newElement);\n if (this.classToApply !== '') {\n newElement.classList.add(this.classToApply);\n }\n }\n if (this.modifies.attribute) {\n this.attributesToApply.forEach((attribute) => {\n newElement.setAttribute(attribute.name, attribute.value);\n });\n }\n newElement = this.setInlineStyle(container, newElement);\n\n while (container.firstChild) {\n let elementClone = container.firstChild.cloneNode(true);\n newElement.appendChild(elementClone);\n container.firstChild.remove();\n }\n\n container.parentElement.replaceChild(newElement, container);\n\n range.insertNode(newElement);\n }\n }\n\n private async replaceSelection(container: HTMLElement, action: string, selection: Selection, containers: string) {\n const focusNode: Node = selection.focusNode;\n let offsetContainer: HTMLElement =\n focusNode.nodeType !== Node.TEXT_NODE && focusNode.nodeType !== Node.COMMENT_NODE\n ? (focusNode as HTMLElement)\n : focusNode.parentElement;\n\n let parentContainer = this.hasStyle(container);\n let offsetParentContainer = this.hasStyle(offsetContainer);\n if (\n parentContainer &&\n parentContainer === offsetParentContainer &&\n ((parentContainer.children.length > 0 && parentContainer.innerText !== parentContainer.children[0].textContent) ||\n parentContainer.innerText !== selection.toString())\n ) {\n console.log('if');\n const range: Range = this.getRangeObject(selection);\n const currentFragment: DocumentFragment = range.extractContents();\n const currentElement: HTMLSpanElement = document.createElement('span');\n currentElement.appendChild(currentFragment);\n if (this.modifies.style && this.style.value.indexOf('$1') > -1) {\n currentElement.style[this.style.property] = this.style.value.replace('$1', this.style.input);\n }\n if (this.modifies.class) {\n await this.removeChildrenClasses(currentElement);\n if (this.classToApply !== '') {\n currentElement.classList.add(this.classToApply);\n }\n }\n if (this.modifies.attribute) {\n this.attributesToApply.forEach((attribute) => {\n currentElement.setAttribute(attribute.name, attribute.value);\n });\n }\n let currentElementToAppend = currentElement;\n let currentParentElement = container;\n if (parentContainer.contains(currentParentElement)) {\n while (currentParentElement !== parentContainer) {\n let tmpElement = document.createElement(currentParentElement.tagName);\n tmpElement = this.setInlineStyle(currentParentElement, tmpElement);\n\n tmpElement.appendChild(currentElementToAppend);\n currentElementToAppend = tmpElement;\n currentParentElement = currentParentElement.parentElement;\n }\n }\n\n const isLTR = this.isAnchorBeforeFocus(\n selection.anchorNode,\n selection.anchorOffset,\n selection.focusNode,\n selection.focusOffset\n );\n\n let selectionFocusOffset = isLTR ? selection.anchorOffset : selection.focusOffset;\n let selectionFocusNode = isLTR ? selection.anchorNode : selection.focusNode;\n\n document.getSelection().setBaseAndExtent(parentContainer, 0, selectionFocusNode, selectionFocusOffset);\n const newSelection = this.getSelection();\n let preRange: Range = this.getRangeObject(newSelection);\n\n const preFragment: DocumentFragment = preRange.extractContents();\n\n let newElement: HTMLElement = <HTMLElement>parentContainer.cloneNode();\n newElement.innerHTML = '';\n newElement.appendChild(preFragment);\n\n parentContainer.parentElement.insertBefore(currentElementToAppend, parentContainer);\n parentContainer.parentElement.insertBefore(newElement, currentElementToAppend);\n if (!parentContainer.textContent || parentContainer.textContent.length === 0) {\n parentContainer.parentElement.removeChild(parentContainer);\n }\n selection.selectAllChildren(currentElementToAppend);\n } else {\n console.log('else');\n const range: Range = this.getRangeObject(selection);\n const fragment: DocumentFragment = range.extractContents();\n let fragmentElement = document.createElement('div');\n\n let newElement: HTMLElement | null = await this.createElement(container, action, containers);\n let elementToAppend = newElement;\n console.log(newElement);\n\n fragmentElement.append(fragment);\n if (\n fragmentElement.children?.length === 1 &&\n this.textContainers.split(',').indexOf(fragmentElement.children[0].tagName.toLowerCase()) > -1\n ) {\n elementToAppend = <HTMLElement>fragmentElement.children[0];\n newElement.innerHTML = (<HTMLElement>fragmentElement.children[0]).innerHTML;\n elementToAppend.innerHTML = '';\n elementToAppend.append(newElement);\n } else {\n newElement.innerHTML = fragmentElement.innerHTML;\n }\n if (this.modifies.class) {\n await this.removeChildrenClasses(newElement);\n if (this.classToApply !== '') {\n newElement.classList.add(this.classToApply);\n }\n }\n if (this.modifies.attribute) {\n this.attributesToApply.forEach((attribute) => {\n newElement.setAttribute(attribute.name, attribute.value);\n });\n }\n\n range.insertNode(elementToAppend);\n selection.selectAllChildren(elementToAppend);\n }\n }\n\n private async replaceLink(selection: Selection, container: HTMLElement) {\n let newElement = document.createElement('span');\n newElement.innerHTML = container.innerHTML;\n\n container.parentElement.replaceChild(newElement, container);\n selection.selectAllChildren(newElement);\n }\n\n private isAnchorBeforeFocus(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number) {\n let anchorRange = document.createRange();\n let focusRange = document.createRange();\n anchorRange.setStart(anchorNode, anchorOffset);\n anchorRange.setEnd(anchorNode, anchorOffset);\n focusRange.setStart(focusNode, focusOffset);\n focusRange.setEnd(focusNode, focusOffset);\n if (anchorRange.compareBoundaryPoints(Range.START_TO_START, focusRange) === -1) {\n return true;\n }\n return false;\n }\n\n hasStyle(element: HTMLElement, firstTimeCall: boolean = true): HTMLElement | null {\n if (firstTimeCall && element.children) {\n element = this.getMostDescendantChild(<HTMLElement>element);\n }\n\n // foundElement was added because of a return issue when a class is applied\n let foundElement: HTMLElement | null = null;\n\n if (!element || element.classList?.contains('ce-paragraph')) {\n return null;\n }\n if (this.modifies.style) {\n if (\n element.style &&\n element.style[this.style.property] &&\n (this.style.value.indexOf('$1') > -1 ? true : element.style[this.style.property] === this.style.value)\n ) {\n foundElement = element;\n return element;\n }\n } else if (this.modifies.class) {\n this.classes.split(',').forEach((className) => {\n if (element.classList?.contains(className) === true) {\n foundElement = element;\n return element;\n }\n });\n } else if (this.modifies.tag) {\n if (element.tagName?.toLowerCase() === this.tag.toLowerCase()) {\n return element;\n }\n } else if (this.modifies.attribute) {\n let attributes = this.attributeName.split(',');\n for (var i = 0; i < attributes.length; ++i) {\n if (typeof element.getAttribute === 'function' && element.getAttribute(attributes[i])) {\n foundElement = element;\n return element;\n }\n }\n }\n if (foundElement) {\n return foundElement;\n }\n if (!foundElement && element.parentElement) {\n return this.hasStyle(element.parentElement, false);\n }\n return null;\n }\n\n private async getStyleValue(container: HTMLElement, action: string, containers: string): Promise<string | null> {\n if (!container) {\n return this.style.value.indexOf('$1') > -1 ? this.style.value.replace('$1', this.style.input) : this.style.value;\n }\n\n if (this.hasStyle(container) && this.style.value.indexOf('$1') === -1) {\n return this.style.default;\n }\n\n const style: Node | null = await this.findStyleNode(container, action, containers);\n if (style && this.hasStyle(style as HTMLElement) && this.style.value.indexOf('$1') === -1) {\n return this.style.default;\n }\n\n return this.style.value.indexOf('$1') > -1 ? this.style.value.replace('$1', this.style.input) : this.style.value;\n }\n\n private async findStyleNode(node: Node, style: string, containers: string): Promise<Node | null> {\n if (node.nodeName.toUpperCase() === 'HTML' || node.nodeName.toUpperCase() === 'BODY') {\n return null;\n }\n\n if (!node.parentNode) {\n return null;\n }\n\n if (this.isContainer(containers, node)) {\n return null;\n }\n\n const hasStyle: boolean =\n (node as HTMLElement).style[style] !== null &&\n (node as HTMLElement).style[style] !== undefined &&\n (node as HTMLElement).style[style] !== '';\n\n if (hasStyle) {\n return node;\n }\n\n return await this.findStyleNode(node.parentNode, style, containers);\n }\n\n private async createElement(container: HTMLElement, action: string, containers: string): Promise<HTMLElement> {\n let newElement: HTMLElement = document.createElement(this.tag);\n if (this.modifies.style) {\n const property = this.style.property;\n let value = await this.getStyleValue(container, action, containers);\n if (value !== this.style.default) {\n newElement.style[property] = value;\n } else {\n newElement.style.removeProperty(property);\n }\n }\n\n return newElement;\n }\n\n private async removeChildrenClasses(element: HTMLElement) {\n if (!element) {\n return;\n }\n\n const children: HTMLCollection = element.children;\n for (var currentElement = children[0]; currentElement; currentElement = currentElement.nextElementSibling) {\n this.classes.split(',').forEach((className) => {\n if (currentElement.classList?.contains(className)) {\n if (currentElement.classList.length === 1) {\n currentElement.removeAttribute('class');\n } else {\n currentElement.classList.remove(className);\n }\n }\n });\n if (currentElement.children.length > 0) {\n await this.removeChildrenClasses(<HTMLElement>currentElement);\n }\n }\n }\n\n parentHasStyle(currentElement: HTMLElement, referenceElement: HTMLElement): boolean {\n // Link exception\n if (!currentElement || referenceElement.tagName.toLowerCase() === 'a' || referenceElement.tagName.toLowerCase() === 'div') {\n return false;\n }\n\n if (\n referenceElement.tagName.toLowerCase() !== 'span' &&\n referenceElement.tagName.toLowerCase() === currentElement.tagName.toLowerCase()\n ) {\n return true;\n }\n if (Object.keys(this.getInlineStyle(currentElement)).length > 0 && this.identicalInlineStyle(currentElement, referenceElement)) {\n return true;\n }\n if (currentElement.classList.length > 0 && this.identicalClassList(currentElement, referenceElement)) {\n return true;\n }\n if (currentElement.parentElement && currentElement.parentElement.tagName.toLowerCase() !== 'div') {\n return this.parentHasStyle(currentElement.parentElement, referenceElement);\n }\n return false;\n }\n\n private async cleanupContainer(selection: Selection, container, firstTimeCall: Boolean) {\n let parentContainer: HTMLElement;\n let parentFound: Boolean = false;\n if (firstTimeCall) {\n parentContainer = <HTMLElement>selection.anchorNode;\n while (parentContainer && !parentFound) {\n if (parentContainer.nodeType === Node.ELEMENT_NODE && parentContainer.classList?.contains('ce-paragraph')) {\n parentFound = true;\n } else {\n parentContainer = parentContainer.parentElement;\n }\n }\n } else {\n parentContainer = container;\n }\n if (!parentContainer || !parentContainer.hasChildNodes()) {\n return;\n }\n\n parentContainer.normalize();\n\n const children: Node[] = Array.from(parentContainer.childNodes);\n if (children?.length > 0) {\n for (var currentNode = children[0]; currentNode; currentNode = currentNode.nextSibling) {\n if (\n !currentNode.textContent ||\n currentNode.textContent.length === 0 ||\n (currentNode.nodeType === Node.ELEMENT_NODE && (<HTMLElement>currentNode).innerText.length === 0)\n ) {\n let previousSibling = currentNode.previousSibling;\n parentContainer.removeChild(currentNode);\n currentNode = previousSibling;\n }\n if (\n currentNode.nodeType === Node.ELEMENT_NODE &&\n this.parentHasStyle(currentNode.parentElement, <HTMLElement>currentNode)\n ) {\n let currentNodeFirstChild = currentNode;\n let nextCurrentElement = currentNode.firstChild;\n while (currentNode.firstChild) {\n parentContainer.insertBefore(currentNode.firstChild, currentNodeFirstChild.nextSibling);\n currentNodeFirstChild = currentNodeFirstChild.nextSibling;\n }\n parentContainer.removeChild(currentNode);\n currentNode = nextCurrentElement;\n }\n let identicalElements = true;\n while (\n identicalElements &&\n currentNode.nextSibling &&\n currentNode.nodeType === Node.ELEMENT_NODE &&\n currentNode.nextSibling.nodeType === Node.ELEMENT_NODE\n ) {\n let currentElement = <Element>currentNode;\n let nextElement = <Element>currentNode.nextSibling;\n\n if (\n this.identicalInlineStyle(currentElement, nextElement) &&\n currentElement.tagName.toLowerCase() === nextElement.tagName.toLowerCase() &&\n this.identicalClassList(currentElement, nextElement) &&\n this.identicalAttributes(currentElement, nextElement)\n ) {\n currentElement.innerHTML += nextElement.innerHTML;\n nextElement.remove();\n this.modifiedContent = true;\n } else {\n identicalElements = false;\n }\n }\n if (\n currentNode.nodeType === Node.ELEMENT_NODE &&\n (<Element>currentNode).tagName.toLowerCase() === 'span' &&\n Object.keys(this.getInlineStyle(<Element>currentNode)).length === 0 &&\n (!(<Element>currentNode).classList || (<Element>currentNode).classList.length === 0) &&\n this.hasNoAttributes(<Element>currentNode)\n ) {\n let currentNodeFirstChild = currentNode;\n\n while (currentNode.firstChild) {\n (<Element>currentNodeFirstChild.parentElement).insertBefore(\n currentNode.firstChild,\n currentNodeFirstChild.nextSibling\n );\n currentNodeFirstChild = currentNodeFirstChild.nextSibling;\n }\n (<Element>currentNode).remove();\n this.modifiedContent = true;\n }\n currentNode.normalize();\n if (currentNode.childNodes.length > 0) {\n await this.cleanupContainer(selection, currentNode, false);\n }\n }\n }\n }\n\n private hasNoAttributes(node: Element): boolean {\n let nodeStyle = Object.keys(this.getInlineStyle(node));\n let nodeAttributes = Object.keys(\n node.getAttributeNames().reduce((acc, name) => {\n return { ...acc, [name]: node.getAttribute(name) };\n }, {})\n );\n\n if (nodeAttributes.length === 0 || (nodeAttributes.length === 1 && nodeStyle.length === 0)) {\n return true;\n }\n return false;\n }\n\n private identicalClassList(currentElement, nextElement): boolean {\n return (\n [...currentElement.classList].every((classList) => nextElement.classList.contains(classList)) &&\n [...nextElement.classList].every((classList) => currentElement.classList.contains(classList))\n );\n }\n\n private identicalAttributes(currentElement, nextElement): boolean {\n let currentElementAttributes = currentElement.getAttributeNames();\n if (currentElementAttributes) {\n currentElementAttributes.forEach((attribute) => {\n if (attribute !== 'style') {\n if (\n !nextElement.getAttribute(attribute) ||\n nextElement.getAttribute(attribute) !== currentElement.getAttribute(attribute)\n ) {\n return false;\n }\n }\n });\n }\n return true;\n }\n\n private identicalInlineStyle(currentElement, nextElement): boolean {\n const currentElementInlineStyle = this.getInlineStyle(currentElement);\n const nextElementInlineStyle = this.getInlineStyle(nextElement);\n let currentElementInlineStyleSorted = this.sortInlineStyle(currentElementInlineStyle);\n let nextElementInlineStyleSorted = this.sortInlineStyle(nextElementInlineStyle);\n return JSON.stringify(currentElementInlineStyleSorted) === JSON.stringify(nextElementInlineStyleSorted);\n }\n\n private sortInlineStyle(currentElement): Object {\n return Object.entries(currentElement)\n .sort(([, a]: any, [, b]: any) => a - b)\n .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});\n }\n\n private getInlineStyle(currentElement): Object {\n return Array.from(currentElement.style).reduce((style: string, name: string) => {\n style[name] = currentElement.style[name];\n return style;\n }, {});\n }\n\n private setInlineStyle(currentElement, nextElement): HTMLElement {\n const currentElementInlineStyle: Object = Array.from(currentElement.style).reduce((style: string, name: string) => {\n style[name] = currentElement.style[name];\n return style;\n }, {});\n for (const property in currentElementInlineStyle) {\n nextElement.style[property] = currentElementInlineStyle[property];\n }\n return nextElement;\n }\n\n private isContainer(containers: string, node: Node): Boolean {\n if (containers.split(',').indexOf(node.nodeName.toLowerCase()) === -1) {\n return false;\n }\n return true;\n }\n\n private async saveInlineSelection(container: HTMLElement, firstTimeCall: boolean = false) {\n if (firstTimeCall) {\n container = <HTMLElement>this.parentEditor.querySelector('.ce-paragraph').firstElementChild;\n this.foundAnchorNode = false;\n this.foundFocusNode = false;\n this.foundAnchorOffset = 0;\n this.foundFocusOffset = 0;\n\n if (this.getSelection().toString() === (<HTMLElement>this.parentEditor.querySelector('.ce-paragraph')).textContent) {\n this.foundAnchorOffset = 0;\n this.foundAnchorNode = true;\n\n this.foundFocusOffset = this.getSelection().toString().length;\n this.foundFocusNode = true;\n return;\n }\n }\n let nextNode = container.firstChild;\n while (nextNode && (!this.foundAnchorNode || !this.foundFocusNode)) {\n if (nextNode === this.selectedAnchorNode) {\n let selection = this.getSelection();\n const isLTR = this.isAnchorBeforeFocus(\n selection.anchorNode,\n selection.anchorOffset,\n selection.focusNode,\n selection.focusOffset\n );\n this.foundAnchorNode = true;\n this.foundAnchorOffset += isLTR ? this.anchorOffset : this.focusOffset;\n let range = this.getRangeObject(selection);\n const currentFragment: DocumentFragment = range.cloneContents();\n const currentElement: HTMLSpanElement = document.createElement('span');\n currentElement.appendChild(currentFragment);\n\n this.foundFocusOffset = this.foundAnchorOffset + currentElement.innerText.length;\n this.foundFocusNode = true;\n currentElement.remove();\n return;\n }\n if (nextNode.nodeType === Node.TEXT_NODE) {\n if (!this.foundAnchorNode) {\n this.foundAnchorOffset += nextNode.textContent.length;\n }\n if (!this.foundFocusNode) {\n this.foundFocusOffset += nextNode.textContent.length;\n }\n }\n if (nextNode.firstChild) {\n await this.saveInlineSelection(<HTMLElement>nextNode);\n }\n nextNode = nextNode.nextSibling;\n }\n }\n\n private async resetInlineSelection(container: HTMLElement | null = null, firstTimeCall: boolean = false) {\n if (firstTimeCall) {\n container = <HTMLElement>this.parentEditor.querySelector('.ce-paragraph').firstElementChild;\n this.foundAnchorNode = false;\n this.foundFocusNode = false;\n this.tmpOffset = 0;\n\n if (\n this.foundAnchorOffset === 0 &&\n (<HTMLElement>this.parentEditor.querySelector('.ce-paragraph')).textContent.length === this.foundFocusOffset\n ) {\n this.selectedAnchorNode = (<HTMLElement>this.parentEditor.querySelector('.ce-paragraph')).firstElementChild;\n this.anchorOffset = 0;\n this.selectedFocusNode = (<HTMLElement>this.parentEditor.querySelector('.ce-paragraph')).firstElementChild;\n this.focusOffset = 1;\n this.resetUserSelection();\n return;\n }\n }\n let nextNode = container.firstChild;\n while (nextNode && (!this.foundAnchorNode || !this.foundFocusNode)) {\n if (nextNode.nodeType === Node.TEXT_NODE) {\n if (!this.foundAnchorNode && this.foundAnchorOffset - nextNode.textContent.length < 0) {\n this.foundAnchorNode = true;\n this.anchorOffset = this.foundAnchorOffset;\n this.selectedAnchorNode = nextNode;\n }\n if (!this.foundFocusNode && this.foundFocusOffset - nextNode.textContent.length <= 0) {\n this.foundFocusNode = true;\n this.focusOffset = this.foundFocusOffset;\n this.selectedFocusNode = nextNode;\n }\n this.tmpOffset += nextNode.textContent.length;\n this.foundAnchorOffset -= nextNode.textContent.length;\n this.foundFocusOffset -= nextNode.textContent.length;\n }\n if (nextNode.firstChild) {\n await this.resetInlineSelection(<HTMLElement>nextNode);\n }\n nextNode = nextNode.nextSibling;\n }\n if (firstTimeCall) {\n this.resetUserSelection();\n }\n }\n\n private getMostDescendantChild(element: HTMLElement) {\n while (element.children && element.innerText === (<HTMLElement>element.children[0])?.innerText && element.children.length === 1) {\n element = <HTMLElement>element.children[0];\n }\n return element;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class StrikeTool extends InlineStyleTool implements InlineTool {\n public static title = 'Strike';\n\n private readonly commandName: string = 'strikethrough';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--strike',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'S';\n\n modifies = {\n tag: true,\n style: false,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class SubscriptTool extends InlineStyleTool implements InlineTool {\n public static title = 'Subscript';\n\n private readonly commandName: string = 'subscript';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--subscript',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SUB';\n\n modifies = {\n tag: true,\n style: false,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class SuperscriptTool extends InlineStyleTool implements InlineTool {\n public static title = 'Superscript';\n\n private readonly commandName: string = 'superscript';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--superscript',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SUP';\n\n modifies = {\n tag: true,\n style: false,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class BoldTool extends InlineStyleTool implements InlineTool {\n public static title = 'Bold';\n\n private readonly commandName: string = 'bold';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--bold',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'STRONG';\n\n hasSeparatorBefore = true;\n\n modifies = {\n tag: true,\n style: false,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n public get shortcut() {\n return 'CMD+B';\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class ItalicTool extends InlineStyleTool implements InlineTool {\n public static title = 'Italic';\n\n private readonly commandName: string = 'italic';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--italic',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'EM';\n\n modifies = {\n tag: true,\n style: false,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n public get shortcut() {\n return 'CMD+I';\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class UnderlineTool extends InlineStyleTool implements InlineTool {\n public static title = 'Underline';\n\n private readonly commandName: string = 'underline';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--underline',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n style: StyleObject = {\n property: 'text-decoration-line',\n value: 'underline',\n default: 'initial',\n };\n\n modifies = {\n tag: false,\n style: true,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n public get shortcut() {\n return 'CMD+U';\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class CapitalizeTool extends InlineStyleTool implements InlineTool {\n public static title = 'Capitalize';\n\n private readonly commandName: string = 'capitalize';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--capitalize',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n style: StyleObject = {\n property: 'text-transform',\n value: 'uppercase',\n default: 'initial',\n };\n\n modifies = {\n tag: false,\n style: true,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { I18nConfig } from '@editorjs/editorjs';\n\nexport var editorJSI18nDictionnary: I18nConfig;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditorJSTranslationService {\n constructor() {}\n\n setDictionnary(dictionnary: I18nConfig) {\n editorJSI18nDictionnary = dictionnary;\n }\n\n get(key: string): string {\n return editorJSI18nDictionnary[key];\n }\n}\n","export const DEFAULT_COLOR_ARRAY: Array<Array<string>> = [\n [\n 'rgb(0, 0, 0)',\n 'rgb(67, 67, 67)',\n 'rgb(102, 102, 102)',\n 'rgb(153, 153, 153)',\n 'rgb(183, 183, 183)',\n 'rgb(204, 204, 204)',\n 'rgb(217, 217, 217)',\n 'rgb(239, 239, 239)',\n 'rgb(243, 243, 243)',\n 'rgb(255, 255, 255)',\n ],\n [\n 'rgb(152, 0, 0)',\n 'rgb(255, 0, 0)',\n 'rgb(255, 153, 0)',\n 'rgb(255, 255, 0)',\n 'rgb(0, 255, 0)',\n 'rgb(0, 255, 255)',\n 'rgb(74, 134, 232)',\n 'rgb(0, 0, 255)',\n 'rgb(153, 0, 255)',\n 'rgb(255, 0, 255)',\n ],\n [\n 'rgb(230, 184, 175)',\n 'rgb(244, 204, 204)',\n 'rgb(252, 229, 205)',\n 'rgb(255, 242, 204)',\n 'rgb(217, 234, 211)',\n 'rgb(208, 224, 227)',\n 'rgb(201, 218, 248)',\n 'rgb(207, 226, 243)',\n 'rgb(217, 210, 233)',\n 'rgb(234, 209, 220)',\n ],\n [\n 'rgb(221, 126, 107)',\n 'rgb(234, 153, 153)',\n 'rgb(249, 203, 156)',\n 'rgb(255, 229, 153)',\n 'rgb(182, 215, 168)',\n 'rgb(162, 196, 201)',\n 'rgb(164, 194, 244)',\n 'rgb(159, 197, 232)',\n 'rgb(180, 167, 214)',\n 'rgb(213, 166, 189)',\n ],\n [\n 'rgb(204, 65, 37)',\n 'rgb(224, 102, 102)',\n 'rgb(246, 178, 107)',\n 'rgb(255, 217, 102)',\n 'rgb(147, 196, 125)',\n 'rgb(118, 165, 175)',\n 'rgb(109, 158, 235)',\n 'rgb(111, 168, 220)',\n 'rgb(142, 124, 195)',\n 'rgb(194, 123, 160)',\n ],\n [\n 'rgb(166, 28, 0)',\n 'rgb(204, 0, 0)',\n 'rgb(230, 145, 56)',\n 'rgb(241, 194, 50)',\n 'rgb(106, 168, 79)',\n 'rgb(69, 129, 142)',\n 'rgb(60, 120, 216)',\n 'rgb(61, 133, 198)',\n 'rgb(103, 78, 167)',\n 'rgb(166, 77, 121)',\n ],\n [\n 'rgb(133, 32, 12)',\n 'rgb(153, 0, 0)',\n 'rgb(180, 95, 6)',\n 'rgb(191, 144, 0)',\n 'rgb(56, 118, 29)',\n 'rgb(19, 79, 92)',\n 'rgb(17, 85, 204)',\n 'rgb(11, 83, 148)',\n 'rgb(53, 28, 117)',\n 'rgb(116, 27, 71)',\n ],\n [\n 'rgb(91, 15, 0)',\n 'rgb(102, 0, 0)',\n 'rgb(120, 63, 4)',\n 'rgb(127, 96, 0)',\n 'rgb(39, 78, 19)',\n 'rgb(12, 52, 61)',\n 'rgb(28, 69, 135)',\n 'rgb(7, 55, 99)',\n 'rgb(32, 18, 77)',\n 'rgb(76, 17, 48)',\n ],\n];\n\nexport const GLOBAL_KEY_CODES = [\n 'Backspace',\n 'ControlLeft',\n 'ControlRight',\n 'ShiftLeft',\n 'ShiftRight',\n 'Tab',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n];\n\nexport const LIST_EDIT_KEY_CODES = ['Backspace', 'Enter', 'NumpadEnter'];\n","import { DEFAULT_COLOR_ARRAY, GLOBAL_KEY_CODES } from '../../utils/colors.component';\nimport { InlineStyleTool } from './inline-style-tool.component';\nimport iro from '@jaames/iro';\n\nenum ColorType {\n HEX,\n RGB,\n HSL,\n}\n\nexport abstract class ColorTool extends InlineStyleTool {\n nodes: { button: HTMLButtonElement };\n\n isColorSelectionOpen: boolean = false;\n\n colorSelection: any;\n\n colors: Array<Array<string>> = DEFAULT_COLOR_ARRAY;\n\n colorIndicator: HTMLSpanElement = null;\n\n CSS: any;\n\n api: any;\n\n colorSelectionCss: Object = {\n wrapper: 'ce-inline-actions--color',\n container: 'ce-inline-actions--color__container',\n colorPickerContainer: 'ce-inline-actions--color__container__colorPicker',\n row: 'ce-inline-actions--color__row',\n item: 'ce-inline-actions--color__row__item',\n };\n\n customColorPicker: iro.ColorPicker | null = null;\n\n abstract applyColor(color: string, inputToFocus: HTMLInputElement): Promise<void>;\n\n openColorPicker() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let colorSelection = this.parentEditor.querySelectorAll('.' + this.CSS.colorSelectionModifier)[0];\n let currentColor = this.getCurrentColorApplied(this.getSelection().anchorNode.parentElement);\n this.saveUserSelection();\n if (colorSelection) {\n if (colorSelection.classList.contains('hidden')) {\n (<HTMLElement>colorSelection).style.left =\n (\n this.nodes.button.offsetLeft +\n (this.nodes.button.offsetWidth / 2 - (<HTMLElement>colorSelection).offsetWidth / 2)\n ).toString() + 'px';\n (<HTMLElement>colorSelection).style.top =\n '-' +\n (\n (<HTMLElement>this.parentEditor.querySelector('.ce-inline-toolbar__buttons')).offsetHeight -\n (this.nodes.button.offsetTop + this.nodes.button.offsetHeight)\n ).toString() +\n 'px';\n let viewportOffset = colorSelection.getBoundingClientRect();\n let totalWidth =\n (<HTMLElement>colorSelection).offsetWidth +\n (<HTMLElement>colorSelection.querySelector('.' + this.colorSelectionCss['colorPickerContainer'])).offsetWidth;\n if (viewportOffset.left + totalWidth > document.body.offsetWidth) {\n let left =\n parseInt(window.getComputedStyle(colorSelection, null).getPropertyValue('left')) -\n (viewportOffset.left + totalWidth - document.body.offsetWidth);\n (<HTMLElement>colorSelection).style.left = left.toString() + 'px';\n }\n this.checkDefaultColors();\n colorSelection.classList.remove('hidden');\n let colorPickerWrapper = <HTMLElement>this.parentEditor.querySelector('#' + this.CSS.colorPickerId);\n if (colorPickerWrapper.children.length === 0) {\n this.customColorPicker = iro.ColorPicker(colorPickerWrapper, {\n width: 170,\n height: 170,\n layoutDirection: 'horizontal',\n });\n this.customColorPicker.on(['color:init'], (color: iro.Color) => this.changeColor(color, true, currentColor));\n this.customColorPicker.on(['color:change'], (color: iro.Color) => this.changeColor(color, false));\n }\n this.currentSelection = this.getSelection();\n document.addEventListener('click', ($event) => this.isColorSelectionFocusedOut($event));\n setTimeout(() => {\n this.isColorSelectionOpen = true;\n }, 400);\n } else {\n this.isColorSelectionOpen = false;\n colorSelection.classList.add('hidden');\n }\n }\n }\n\n getCurrentColorApplied(element: Element): string | null {\n if (element && element.className && element.classList.contains('ce-paragraph') && element.children.length === 1) {\n element = element.firstElementChild;\n }\n return window.getComputedStyle(element, null).getPropertyValue(this.style.property);\n }\n\n isColorSelectionFocusedOut($event) {\n let colorSelection = this.parentEditor.querySelectorAll('.' + this.CSS.colorSelectionModifier)[0];\n if (this.isColorSelectionOpen) {\n let element = $event.target;\n while (element) {\n if (element.classList.contains(this.colorSelectionCss['container'])) {\n return;\n }\n element = element.parentElement;\n }\n document.removeEventListener('click', ($event) => this.isColorSelectionFocusedOut($event));\n this.isColorSelectionOpen = false;\n colorSelection.classList.add('hidden');\n this.api.toolbar.close();\n return true;\n }\n }\n\n checkDefaultColors() {\n let currentColor = this.getCurrentColorApplied(this.getSelection().anchorNode.parentElement);\n this.colors.forEach((colorRow, rowIndex) => {\n colorRow.forEach((color, columnIndex) => {\n if (color === currentColor) {\n this.parentEditor\n .querySelectorAll('.' + this.CSS.colorSelectionModifier)[0]\n .querySelectorAll('.' + this.colorSelectionCss['row'])\n [rowIndex].querySelectorAll('.' + this.colorSelectionCss['item'])\n [columnIndex].classList.add(this.colorSelectionCss['item'] + '--active');\n } else {\n this.parentEditor\n .querySelectorAll('.' + this.CSS.colorSelectionModifier)[0]\n .querySelectorAll('.' + this.colorSelectionCss['row'])\n [rowIndex].querySelectorAll('.' + this.colorSelectionCss['item'])\n [columnIndex].classList.remove(this.colorSelectionCss['item'] + '--active');\n }\n });\n });\n }\n\n openCustomColorPicker(event: MouseEvent) {\n event.stopPropagation();\n let customColorPicker = (<HTMLDivElement>event.target).querySelectorAll('.' + this.colorSelectionCss['colorPickerContainer'])[0];\n if (customColorPicker) {\n if (customColorPicker.classList.contains(this.colorSelectionCss['colorPickerContainer'] + '--active')) {\n customColorPicker.classList.remove(this.colorSelectionCss['colorPickerContainer'] + '--active');\n } else {\n customColorPicker.classList.add(this.colorSelectionCss['colorPickerContainer'] + '--active');\n }\n }\n if ((<HTMLElement>event.target).tagName.toLowerCase() === 'div') {\n this.resetUserSelection();\n }\n }\n\n changeColor(color: iro.Color, isInit: boolean, initColor: string = '') {\n let colorSelectionModifier = this.parentEditor.querySelector('.' + this.CSS.colorSelectionModifier);\n let hexInput = <HTMLInputElement>colorSelectionModifier.querySelector('.hex input');\n let rgbInput1 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[0];\n let rgbInput2 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[1];\n let rgbInput3 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[2];\n /*\n let hslInput1 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[0];\n let hslInput2 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[1];\n let hslInput3 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[2];\n */\n if (isInit) {\n if (initColor.indexOf('rgba') > -1) {\n initColor = initColor.replace('rgba(', '').replace(')', '').replace(' ', '');\n let rgbInitColor = initColor.split(',');\n this.customColorPicker.color.red = parseInt(rgbInitColor[0]);\n this.customColorPicker.color.green = parseInt(rgbInitColor[1]);\n this.customColorPicker.color.blue = parseInt(rgbInitColor[2]);\n hexInput.value = this.rgbToHex(parseInt(rgbInitColor[0]), parseInt(rgbInitColor[1]), parseInt(rgbInitColor[2]));\n rgbInput1.value = rgbInitColor[0];\n rgbInput2.value = rgbInitColor[1];\n rgbInput3.value = rgbInitColor[2];\n } else {\n initColor = initColor.replace('rgb(', '').replace(')', '').replace(' ', '');\n let rgbInitColor = initColor.split(',');\n this.customColorPicker.color.red = parseInt(rgbInitColor[0]);\n this.customColorPicker.color.green = parseInt(rgbInitColor[1]);\n this.customColorPicker.color.blue = parseInt(rgbInitColor[2]);\n hexInput.value = this.rgbToHex(parseInt(rgbInitColor[0]), parseInt(rgbInitColor[1]), parseInt(rgbInitColor[2]));\n rgbInput1.value = rgbInitColor[0];\n rgbInput2.value = rgbInitColor[1];\n rgbInput3.value = rgbInitColor[2];\n }\n } else {\n hexInput.value = color.hexString;\n rgbInput1.value = color.rgb.r.toString();\n rgbInput2.value = color.rgb.g.toString();\n rgbInput3.value = color.rgb.b.toString();\n this.checkColorInput(ColorType.RGB);\n }\n /*\n hslInput1.value = color.hsl.h.toString();\n hslInput2.value = color.hsl.s + '%';\n hslInput3.value = color.hsl.l + '%';\n */\n }\n\n changeColorInput(event: KeyboardEvent, colorType: ColorType) {\n if (colorType === ColorType.HEX) {\n let hexRegex = /[0-9A-Fa-f#]/;\n let hexInput = <HTMLInputElement>(\n this.parentEditor.querySelector('.' + this.CSS.colorSelectionModifier).querySelector('.hex input')\n );\n if (GLOBAL_KEY_CODES.indexOf(event.code) > -1 || hexRegex.test(event.key)) {\n if (hexInput.value.length > 0 && event.key === '#') {\n event.preventDefault();\n }\n if (hexInput.value.length === 5 && hexInput.value[0] !== '#' && hexRegex.test(event.key)) {\n hexInput.value = '#' + hexInput.value + event.key;\n return;\n }\n } else {\n event.preventDefault();\n }\n } else if (colorType === ColorType.RGB) {\n let rgbRegex = /[0-9]/;\n let selectedInput = <HTMLInputElement>event.target;\n if (\n GLOBAL_KEY_CODES.indexOf(event.code) === -1 &&\n (selectedInput.value.length === 3 || event.key.length !== 1 || !rgbRegex.test(event.key))\n ) {\n event.preventDefault();\n }\n if (parseInt(selectedInput.value) > 255) {\n selectedInput.value = '255';\n }\n } else {\n let maxInputLength = 3;\n let hslRegex = /[0-9]/;\n let selectedInput = <HTMLInputElement>event.target;\n let selectedInputPosition = Array.from(selectedInput.parentElement.children).indexOf(selectedInput);\n if (selectedInputPosition > 0) {\n hslRegex = /[0-9%]/;\n maxInputLength = 4;\n }\n if (\n GLOBAL_KEY_CODES.indexOf(event.code) === -1 &&\n (selectedInput.value.length === maxInputLength || event.key.length !== 1 || !hslRegex.test(event.key))\n ) {\n event.preventDefault();\n }\n if (selectedInputPosition === 0 && parseInt(selectedInput.value) > 360) {\n selectedInput.value = '360';\n } else if (selectedInputPosition > 0 && parseInt(selectedInput.value.replace('%', '')) > 100) {\n selectedInput.value = '100';\n }\n }\n }\n\n checkColorInput(colorType: ColorType) {\n let colorSelectionModifier = this.parentEditor.querySelector('.' + this.CSS.colorSelectionModifier);\n let focusedInput = null;\n if (colorType === ColorType.HEX) {\n let hexInput = <HTMLInputElement>colorSelectionModifier.querySelector('.hex input');\n focusedInput = <HTMLInputElement>colorSelectionModifier.querySelector('.hex input:focus');\n if (hexInput.value.length === 7 && hexInput.value[0] === '#') {\n this.customColorPicker.color.hexString = hexInput.value;\n }\n } else if (colorType === ColorType.RGB) {\n let rgbInput1 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[0];\n let rgbInput2 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[1];\n let rgbInput3 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.rgb input')[2];\n focusedInput = <HTMLInputElement>colorSelectionModifier.querySelector('.rgb input:focus');\n if (rgbInput1.value.length > 0 && rgbInput2.value.length > 0 && rgbInput3.value.length > 0) {\n this.customColorPicker.color.red = parseInt(rgbInput1.value);\n this.customColorPicker.color.green = parseInt(rgbInput2.value);\n this.customColorPicker.color.blue = parseInt(rgbInput3.value);\n }\n } else {\n let hslInput1 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[0];\n let hslInput2 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[1];\n let hslInput3 = <HTMLInputElement>colorSelectionModifier.querySelectorAll('.hsl input')[2];\n focusedInput = <HTMLInputElement>colorSelectionModifier.querySelector('.hsl input:focus');\n if (hslInput1.value.length > 0 && hslInput2.value.replace('%', '').length > 0 && hslInput3.value.replace('%', '').length > 0) {\n this.customColorPicker.color.hue = parseInt(hslInput1.value);\n this.customColorPicker.color.saturation = parseInt(hslInput2.value.replace('%', ''));\n this.customColorPicker.color.value = parseInt(hslInput3.value.replace('%', ''));\n }\n }\n let rgbColor =\n 'rgb(' +\n this.customColorPicker.color.rgb.r +\n ',' +\n this.customColorPicker.color.rgb.g +\n ',' +\n this.customColorPicker.color.rgb.b +\n ')';\n this.resetUserSelection();\n this.applyColor(rgbColor, focusedInput);\n }\n\n createCustomColorPicker() {\n let customColorPicker = document.createElement('div');\n customColorPicker.className = this.colorSelectionCss['colorPickerContainer'];\n let wrapper = document.createElement('div');\n wrapper.id = this.CSS.colorPickerId;\n customColorPicker.appendChild(wrapper);\n\n let container = document.createElement('div');\n let select = document.createElement('select');\n select.addEventListener('change', (event) => this.changeColorType(event));\n\n let hexOption = document.createElement('option');\n hexOption.value = 'hex';\n hexOption.innerText = 'HEX';\n let rgbOption = document.createElement('option');\n rgbOption.value = 'rgb';\n rgbOption.innerText = 'RGB';\n let hslOption = document.createElement('option');\n hslOption.value = 'hsl';\n hslOption.innerText = 'HSL';\n\n let hexContainer = document.createElement('div');\n hexContainer.className = 'hex';\n let hexInput = document.createElement('input');\n hexInput.placeholder = '#23272b';\n hexContainer.appendChild(hexInput);\n hexInput.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.HEX));\n hexInput.addEventListener('keyup', () => this.checkColorInput(ColorType.HEX));\n\n let rgbContainer = document.createElement('div');\n rgbContainer.className = 'rgb hidden';\n let rgbInput1 = document.createElement('input');\n rgbInput1.placeholder = '255';\n let rgbInput2 = document.createElement('input');\n rgbInput2.placeholder = '0';\n let rgbInput3 = document.createElement('input');\n rgbInput3.placeholder = '0';\n rgbInput1.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.RGB));\n rgbInput2.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.RGB));\n rgbInput3.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.RGB));\n rgbInput1.addEventListener('keyup', () => this.checkColorInput(ColorType.RGB));\n rgbInput2.addEventListener('keyup', () => this.checkColorInput(ColorType.RGB));\n rgbInput3.addEventListener('keyup', () => this.checkColorInput(ColorType.RGB));\n rgbContainer.appendChild(rgbInput1);\n rgbContainer.appendChild(rgbInput2);\n rgbContainer.appendChild(rgbInput3);\n\n let hslContainer = document.createElement('div');\n hslContainer.className = 'hsl hidden';\n let hslInput1 = document.createElement('input');\n hslInput1.placeholder = '0';\n let hslInput2 = document.createElement('input');\n hslInput2.placeholder = '100%';\n let hslInput3 = document.createElement('input');\n hslInput3.placeholder = '50%';\n hslInput1.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.HSL));\n hslInput2.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.HSL));\n hslInput3.addEventListener('keydown', (event) => this.changeColorInput(event, ColorType.HSL));\n hslInput1.addEventListener('keyup', () => this.checkColorInput(ColorType.HSL));\n hslInput2.addEventListener('keyup', () => this.checkColorInput(ColorType.HSL));\n hslInput3.addEventListener('keyup', () => this.checkColorInput(ColorType.HSL));\n hslContainer.appendChild(hslInput1);\n hslContainer.appendChild(hslInput2);\n hslContainer.appendChild(hslInput3);\n\n select.appendChild(hexOption);\n select.appendChild(rgbOption);\n //select.appendChild(hslOption);\n container.appendChild(select);\n\n container.appendChild(hexContainer);\n container.appendChild(rgbContainer);\n //container.appendChild(hslContainer);\n\n customColorPicker.appendChild(container);\n\n return customColorPicker;\n }\n\n changeColorType(event: Event) {\n let parent = (<HTMLSelectElement>event.target).parentElement;\n let children = parent.getElementsByTagName('div');\n for (var i = 0; i < children.length; ++i) {\n if (children[i].classList.contains((<HTMLSelectElement>event.target).value)) {\n if (children[i].classList.contains('hidden')) {\n children[i].classList.remove('hidden');\n }\n } else {\n if (!children[i].classList.contains('hidden')) {\n children[i].classList.add('hidden');\n }\n }\n }\n }\n\n private rgbToHex(red, green, blue) {\n return '#' + this.colorToHex(red) + this.colorToHex(green) + this.colorToHex(blue);\n }\n\n private colorToHex(color) {\n var hexadecimal = color.toString(16);\n return hexadecimal.length == 1 ? '0' + hexadecimal : hexadecimal;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';\nimport { ColorTool } from './tool-type/color-tool.component';\n\n// @dynamic\nexport class TextColorTool extends ColorTool implements InlineTool {\n public static title = 'Text Color';\n\n private readonly commandName: string = 'textcolor';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--textColor',\n colorIndicatorModifier: 'ce-inline-tool--textColor__colorIndicator',\n colorSelectionModifier: 'ce-inline-actions--textColor',\n colorPickerId: 'colorPicker-textColor',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n style: StyleObject = {\n property: 'color',\n value: '$1',\n default: 'initial',\n input: '#f5f1cc',\n };\n\n modifies = {\n tag: false,\n style: true,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n this.nodes.button.addEventListener('click', () => this.openColorPicker());\n this.colorIndicator = document.createElement('span');\n this.colorIndicator.classList.add(this.CSS.colorIndicatorModifier);\n this.colorIndicator.setAttribute(\n 'style',\n 'background-color:' + this.getCurrentColorApplied(this.getSelection().anchorNode.parentElement)\n );\n this.nodes.button.append(this.colorIndicator);\n\n return this.nodes.button;\n }\n\n async surround(range: Range, applyColor: boolean = false) {\n if (applyColor) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n }\n\n async applyColor(color: string, inputToFocus: HTMLInputElement = null): Promise<void> {\n let colorIndicator = this.nodes.button.querySelectorAll('.' + this.CSS.colorIndicatorModifier)[0];\n this.style.input = color;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkDefaultColors();\n this.checkState(this.currentSelection);\n colorIndicator.setAttribute('style', 'background-color:' + color);\n this.saveUserSelection();\n if (inputToFocus) {\n inputToFocus.focus();\n }\n //this.hideActions();\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n this.checkDefaultColors();\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n\n renderActions() {\n this.colorSelection = document.createElement('div');\n this.colorSelection.className = this.colorSelectionCss['wrapper'] + ' hidden ' + this.CSS.colorSelectionModifier;\n this.colors.forEach((colorRow) => {\n let row = document.createElement('div');\n row.className = this.colorSelectionCss['row'];\n colorRow.forEach((color) => {\n if (color && color !== '') {\n let colorElement = document.createElement('div');\n colorElement.className = this.colorSelectionCss['item'];\n colorElement.setAttribute('style', 'background-color:' + color);\n colorElement.addEventListener('click', () => this.applyColor(color));\n row.appendChild(colorElement);\n }\n });\n this.colorSelection.appendChild(row);\n });\n let customColor = document.createElement('div');\n customColor.className = this.colorSelectionCss['container'];\n let text = document.createElement('p');\n text.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['customColor'];\n let button = document.createElement('div');\n button.addEventListener('click', (event) => this.openCustomColorPicker(event));\n let container = this.createCustomColorPicker();\n button.appendChild(container);\n\n customColor.appendChild(text);\n customColor.appendChild(button);\n this.colorSelection.appendChild(customColor);\n\n return this.colorSelection;\n }\n\n showActions(mark) {\n this.style.input = mark && mark.style && mark.style.backgroundColor ? mark.style.backgroundColor : '#f5f1cc';\n\n this.colorSelection.onchange = () => {\n mark.style.backgroundColor = this.style.input;\n };\n this.colorSelection.hidden = false;\n }\n\n hideActions() {\n let colorSelection = document.querySelectorAll('.' + this.CSS.colorSelectionModifier)[0];\n this.isColorSelectionOpen = false;\n if (!colorSelection.classList.contains('hidden')) {\n colorSelection.classList.add('hidden');\n }\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, StyleObject } from '../utils/editorjs-tool.component';\nimport { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';\nimport { ColorTool } from './tool-type/color-tool.component';\n\n// @dynamic\nexport class TextBackgroundColorTool extends ColorTool implements InlineTool {\n public static title = 'Background Color';\n\n private readonly commandName: string = 'textbackgroundcolor';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--textBackgroundColor',\n colorIndicatorModifier: 'ce-inline-tool--textBackgroundColor__colorIndicator',\n colorSelectionModifier: 'ce-inline-actions--backgroundColor',\n colorPickerId: 'colorPicker-textBackgroundColor',\n removeBackgroundColorClass: 'ce-inline-tool--textBackgroundColor__remove',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n style: StyleObject = {\n property: 'background-color',\n value: '$1',\n default: 'transparent',\n input: '',\n };\n\n modifies = {\n tag: false,\n style: true,\n class: false,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n this.nodes.button.addEventListener('click', () => this.openColorPicker());\n this.colorIndicator = document.createElement('span');\n this.colorIndicator.classList.add(this.CSS.colorIndicatorModifier);\n this.colorIndicator.setAttribute(\n 'style',\n 'background-color:' + this.getCurrentColorApplied(this.getSelection().anchorNode.parentElement)\n );\n this.nodes.button.append(this.colorIndicator);\n\n return this.nodes.button;\n }\n\n async surround(range: Range, applyColor: boolean = false) {\n if (applyColor) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n }\n\n async applyColor(color: string, inputToFocus: HTMLInputElement = null): Promise<void> {\n let colorIndicator = this.nodes.button.querySelectorAll('.' + this.CSS.colorIndicatorModifier)[0];\n this.style.input = color;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkDefaultColors();\n this.checkState(this.currentSelection);\n colorIndicator.setAttribute('style', 'background-color:' + color);\n this.saveUserSelection();\n if (inputToFocus) {\n inputToFocus.focus();\n }\n //this.hideActions();\n this.collapseSelection();\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n this.checkDefaultColors();\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n\n renderActions() {\n this.colorSelection = document.createElement('div');\n this.colorSelection.className = this.colorSelectionCss['wrapper'] + ' hidden ' + this.CSS.colorSelectionModifier;\n this.colors.forEach((colorRow) => {\n let row = document.createElement('div');\n row.className = this.colorSelectionCss['row'];\n colorRow.forEach((color) => {\n if (color && color !== '') {\n let colorElement = document.createElement('div');\n colorElement.className = this.colorSelectionCss['item'];\n colorElement.setAttribute('style', 'background-color:' + color);\n colorElement.addEventListener('click', () => this.applyColor(color));\n row.appendChild(colorElement);\n }\n });\n this.colorSelection.appendChild(row);\n });\n let removeColorContainer = document.createElement('div');\n let removeColorContainerIcon = document.createElement('span');\n removeColorContainer.classList.add(this.CSS.removeBackgroundColorClass);\n removeColorContainer.addEventListener('click', () => this.applyColor('rgba(0,0,0,0)'));\n removeColorContainer.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['None'];\n removeColorContainer.appendChild(removeColorContainerIcon);\n this.colorSelection.appendChild(removeColorContainer);\n\n let customColor = document.createElement('div');\n customColor.className = this.colorSelectionCss['container'];\n let text = document.createElement('p');\n text.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['customColor'];\n let button = document.createElement('div');\n button.addEventListener('click', (event) => this.openCustomColorPicker(event));\n let container = this.createCustomColorPicker();\n button.appendChild(container);\n\n customColor.appendChild(text);\n customColor.appendChild(button);\n this.colorSelection.appendChild(customColor);\n\n return this.colorSelection;\n }\n\n showActions(mark) {\n this.style.input = mark && mark.style && mark.style.backgroundColor ? mark.style.backgroundColor : '#f5f1cc';\n\n this.colorSelection.onchange = () => {\n mark.style.backgroundColor = this.style.input;\n };\n this.colorSelection.hidden = false;\n }\n\n hideActions() {\n let colorSelection = document.querySelectorAll('.' + this.CSS.colorSelectionModifier)[0];\n this.isColorSelectionOpen = false;\n if (!colorSelection.classList.contains('hidden')) {\n colorSelection.classList.add('hidden');\n }\n }\n}\n","import { LIST_EDIT_KEY_CODES } from '../../utils/colors.component';\nimport { EditorJSTool } from '../../utils/editorjs-tool.component';\n\nexport abstract class ParagraphStyleTool extends EditorJSTool {\n tag: string;\n\n classToApply?: string;\n\n classes?: string;\n\n input?: number;\n\n containers = 'div';\n\n modifiers = 'h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote';\n\n removableModifiers = 'ul,ol,blockquote';\n\n api: any;\n\n async execCommandStyle(action: string) {\n const selection: Selection | null = this.currentSelection ? this.currentSelection : this.getSelection();\n if (!selection) {\n return;\n }\n this.saveUserSelection();\n const anchorNode: Node = selection.anchorNode;\n\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n\n if (!anchorNode) {\n return;\n }\n let parentModifier = this.findParentModifier();\n\n try {\n if (this.tag.toLowerCase() !== 'span') {\n this.changeContainerTag(parentModifier, selection);\n }\n if ((this.classToApply && this.classToApply.length > 0) || (this.classes && this.classes.length > 0)) {\n this.changeCurrentClass(parentModifier);\n }\n this.collapseSelection();\n } catch (error) {\n console.warn('Paragraph Tool Error : ' + error);\n }\n }\n\n private checkOrderedListValue(): string {\n let value = 1;\n let currentIndex = this.api.blocks.getCurrentBlockIndex();\n if (currentIndex > 0) {\n while (currentIndex > 0) {\n let previousParagraph = this.parentEditor.querySelectorAll('.ce-paragraph')[currentIndex - 1];\n if (previousParagraph.firstElementChild.tagName.toLowerCase() === 'ol') {\n value++;\n } else {\n return value.toString();\n }\n currentIndex--;\n }\n }\n\n return value.toString();\n }\n\n private checkFollowingList(value: string) {\n let currentIndex = this.api.blocks.getCurrentBlockIndex() + 1;\n let blocks = this.parentEditor.querySelectorAll('.ce-block');\n let currentValue = parseInt(value);\n while (blocks[currentIndex]) {\n let paragraph = blocks[currentIndex].querySelector('.ce-paragraph');\n if (paragraph.firstElementChild.tagName.toLowerCase() === 'ol') {\n paragraph.firstElementChild.firstElementChild.setAttribute('value', (++currentValue).toString());\n } else {\n return;\n }\n currentIndex++;\n }\n }\n\n private getCurrentParagraph(anchorNode: Node): HTMLElement {\n if (anchorNode.nodeType === Node.ELEMENT_NODE && (<HTMLElement>anchorNode).classList.contains('ce-paragraph')) {\n return <HTMLElement>anchorNode;\n }\n if (anchorNode.parentElement.classList.contains('ce-paragraph')) {\n return anchorNode.parentElement;\n }\n return anchorNode.parentElement.closest('.ce-paragraph');\n }\n\n private changeContainerTag(container: HTMLElement, selection: Selection) {\n const range: Range = this.getRangeObject(selection);\n let currentParagraph = this.getCurrentParagraph(selection.anchorNode);\n let tagToCreate = this.tag;\n if (container.tagName.toLowerCase() === this.tag.toLowerCase() && this.removableModifiers.indexOf(this.tag.toLowerCase()) > -1) {\n tagToCreate = 'p';\n }\n let newContainer = document.createElement(tagToCreate);\n if (container.className) {\n newContainer.className = container.className;\n }\n let containerToCopy = container;\n if (container.tagName.toLowerCase() === 'ul' || container.tagName.toLowerCase() === 'ol') {\n currentParagraph.removeEventListener('keydown', onEditList, true);\n containerToCopy = <HTMLElement>container.firstElementChild;\n }\n if (newContainer.tagName.toLowerCase() === 'ul' || newContainer.tagName.toLowerCase() === 'ol') {\n listApi = this.api;\n listEditor = this.parentEditor;\n currentParagraph.addEventListener('keydown', onEditList, true);\n }\n if (\n (this.tag.toLowerCase() === 'ul' || this.tag.toLowerCase() === 'ol') &&\n container.tagName.toLowerCase() !== this.tag.toLowerCase()\n ) {\n let newChildContainer = document.createElement('li');\n if (this.tag.toLowerCase() === 'ol') {\n let value = this.checkOrderedListValue();\n newChildContainer.setAttribute('value', value);\n this.checkFollowingList(value);\n }\n while (containerToCopy.firstChild) {\n let elementClone = containerToCopy.firstChild.cloneNode(true);\n newChildContainer.appendChild(elementClone);\n containerToCopy.firstChild.remove();\n }\n newContainer.appendChild(newChildContainer);\n } else {\n while (containerToCopy.firstChild) {\n let elementClone = containerToCopy.firstChild.cloneNode(true);\n newContainer.appendChild(elementClone);\n containerToCopy.firstChild.remove();\n }\n }\n container.parentElement.replaceChild(newContainer, container);\n\n range.insertNode(newContainer);\n }\n\n private changeCurrentClass(container: HTMLElement) {\n if (this.classes.indexOf('{{input}}') > -1) {\n let regexp = new RegExp('^' + this.classes.replace('{{input}}', ''));\n let found = -1;\n let newIndex = this.input;\n for (var i = 0; i < container.classList.length && found === -1; ++i) {\n if (container.classList[i].match(regexp)) {\n newIndex += parseInt(container.classList[i].replace(this.classes.replace('{{input}}', ''), ''));\n found = i;\n }\n }\n newIndex = newIndex < 0 ? 0 : newIndex > 10 ? 10 : newIndex;\n if (found === -1) {\n if (newIndex > 0) {\n container.classList.add(this.classes.replace('{{input}}', newIndex.toString()));\n }\n } else {\n container.classList.remove(container.classList[found]);\n if (newIndex > 0) {\n container.classList.add(this.classes.replace('{{input}}', newIndex.toString()));\n }\n }\n } else {\n if (this.classes) {\n this.classes.split(',').forEach((elementClass) => {\n container.classList.remove(elementClass);\n });\n }\n container.className += (container.className.length > 0 ? ' ' : '') + this.classToApply;\n }\n }\n}\n\nexport var listApi = null;\nexport var listEditor = null;\n\nexport function setlistApiEditor(api, editor) {\n listApi = api;\n listEditor = editor;\n}\n\nexport function onEditList(event: KeyboardEvent) {\n let focusedBlock = <HTMLElement>event.target;\n if (LIST_EDIT_KEY_CODES.indexOf(event.code) > -1) {\n if (event.code === 'Backspace') {\n if (focusedBlock.innerText.length === 0) {\n let currentParagraph = listEditor.querySelectorAll('.ce-paragraph')[listApi.blocks.getCurrentBlockIndex()];\n currentParagraph.innerHTML = '';\n currentParagraph.appendChild(document.createElement('p'));\n currentParagraph.removeEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('p'), 0, currentParagraph.querySelector('p'), 0);\n } else {\n let selection = document.getSelection();\n if (selection.anchorOffset === 0) {\n let newParagraph = document.createElement('p');\n let currentParagraph = listEditor.querySelectorAll('.ce-paragraph')[listApi.blocks.getCurrentBlockIndex()];\n newParagraph.innerHTML = currentParagraph.querySelector('li').innerHTML;\n currentParagraph.innerHTML = '';\n currentParagraph.appendChild(newParagraph);\n currentParagraph.removeEventListener('keydown', onEditList, true);\n document\n .getSelection()\n .setBaseAndExtent(currentParagraph.querySelector('p'), 0, currentParagraph.querySelector('p'), 0);\n }\n }\n } else {\n event.preventDefault();\n event.stopPropagation();\n if (focusedBlock.innerText !== '') {\n listApi.blocks.insert('paragraph', listApi.blocks.getCurrentBlockIndex());\n let currentBlock = listEditor.querySelectorAll('.ce-block')[listApi.blocks.getCurrentBlockIndex()];\n let previousBlock = listEditor.querySelectorAll('.ce-block')[listApi.blocks.getCurrentBlockIndex() - 1];\n let currentParagraph = currentBlock.querySelector('.ce-paragraph');\n let listElement = document.createElement(previousBlock.querySelector('.ce-paragraph').firstElementChild.tagName);\n listElement.appendChild(document.createElement('li'));\n if (listElement.tagName.toLowerCase() === 'ol') {\n let value = parseInt(previousBlock.querySelector('li').getAttribute('value')) + 1;\n let nextListElement = true;\n listElement.firstElementChild.setAttribute('value', value.toString());\n for (\n var i = listApi.blocks.getCurrentBlockIndex() + 1;\n i < listEditor.querySelectorAll('.ce-block').length && nextListElement;\n ++i\n ) {\n let followingOlBlock = listEditor.querySelectorAll('.ce-block')[i];\n if (followingOlBlock.querySelector('ol')) {\n ++value;\n followingOlBlock.querySelector('li').setAttribute('value', value.toString());\n } else {\n nextListElement = false;\n }\n }\n }\n currentParagraph.appendChild(listElement);\n currentParagraph.addEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('li'), 0, currentParagraph.querySelector('li'), 0);\n } else {\n let currentParagraph = listEditor.querySelectorAll('.ce-paragraph')[listApi.blocks.getCurrentBlockIndex()];\n currentParagraph.innerHTML = '';\n currentParagraph.appendChild(document.createElement('p'));\n currentParagraph.removeEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('p'), 0, currentParagraph.querySelector('p'), 0);\n }\n }\n }\n}\n","import { ParagraphStyleTool } from './paragraph-style-tool.component';\n\nexport abstract class ParagraphTextTool extends ParagraphStyleTool {\n nodes: { button: HTMLButtonElement };\n\n isDropdownOpen: boolean = false;\n\n currentSelection?: Selection;\n\n selectedAnchorNode: Node = null;\n\n selectedFocusNode: Node = null;\n\n anchorOffset: number = -1;\n\n focusOffset: number = -1;\n\n CSS: any;\n\n api: any;\n\n dropdownCss: Object = {\n container: 'ce-inline-actions--text',\n row: 'ce-inline-actions--text__row',\n };\n\n openDropdown() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let dropdown = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n (<HTMLElement>dropdown).style.top =\n '-' +\n (\n (<HTMLElement>this.parentEditor.querySelector('.ce-inline-toolbar__buttons')).offsetHeight -\n (this.nodes.button.offsetTop + this.nodes.button.offsetHeight)\n ).toString() +\n 'px';\n this.saveUserSelection();\n if (dropdown) {\n if (dropdown.classList.contains('hidden')) {\n (<HTMLElement>dropdown).style.left = this.nodes.button.offsetLeft.toString() + 'px';\n dropdown.classList.remove('hidden');\n this.currentSelection = this.getSelection();\n document.addEventListener('click', ($event) => this.isDropdownFocusedOut($event));\n setTimeout(() => {\n this.isDropdownOpen = true;\n }, 400);\n } else {\n this.isDropdownOpen = false;\n dropdown.classList.add('hidden');\n }\n }\n }\n\n closeDropdown() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let dropdown = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n this.saveUserSelection();\n if (dropdown) {\n if (!dropdown.classList.contains('hidden')) {\n dropdown.classList.add('hidden');\n setTimeout(() => {\n this.isDropdownOpen = false;\n }, 400);\n }\n }\n }\n\n saveUserSelection(): void {\n this.currentSelection = this.getSelection();\n this.selectedAnchorNode = this.currentSelection.anchorNode;\n this.selectedFocusNode = this.currentSelection.focusNode;\n this.anchorOffset = this.currentSelection.anchorOffset;\n this.focusOffset = this.currentSelection.focusOffset;\n }\n\n resetUserSelection(): void {\n document.getSelection().setBaseAndExtent(this.selectedAnchorNode, this.anchorOffset, this.selectedFocusNode, this.focusOffset);\n this.currentSelection = this.getSelection();\n }\n\n isDropdownFocusedOut($event) {\n let dropdownSelection = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n if (this.isDropdownOpen) {\n let element = $event.target;\n while (element) {\n if (element.classList.contains(this.dropdownCss['container'])) {\n return;\n }\n element = element.parentElement;\n }\n document.removeEventListener('click', ($event) => this.isDropdownFocusedOut($event));\n this.isDropdownOpen = false;\n dropdownSelection.classList.add('hidden');\n this.api.toolbar.close();\n return true;\n }\n }\n}\n","export class TextType {\n tag: string;\n name: string;\n}\n\nexport const TEXT_TYPES: Array<TextType> = [\n {\n tag: 'H1',\n name: 'Heading 1',\n },\n {\n tag: 'H2',\n name: 'Heading 2',\n },\n {\n tag: 'H3',\n name: 'Heading 3',\n },\n {\n tag: 'H4',\n name: 'Heading 4',\n },\n {\n tag: 'H5',\n name: 'Heading 5',\n },\n {\n tag: 'H6',\n name: 'Heading 6',\n },\n {\n tag: 'P',\n name: 'Paragraph',\n },\n];\n\nexport class TextSize {\n class: string;\n name: string;\n}\n\nexport const TEXT_SIZES: Array<TextAlign> = [\n {\n class: 'we-size-small',\n name: 'Small',\n },\n {\n class: '',\n name: 'Normal',\n },\n {\n class: 'we-size-large',\n name: 'Large',\n },\n {\n class: 'we-size-huge',\n name: 'Huge',\n },\n];\n\nexport class TextAlign {\n class: string;\n name: string;\n}\n\nexport const TEXT_ALIGN: Array<TextAlign> = [\n {\n class: 'we-align-left',\n name: 'Left',\n },\n {\n class: 'we-align-center',\n name: 'Center',\n },\n {\n class: 'we-align-right',\n name: 'Right',\n },\n {\n class: 'we-align-justify',\n name: 'Justify',\n },\n];\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { ParagraphTextTool } from './tool-type/text-tool.component';\nimport { TextType, TEXT_TYPES } from '../utils/texts.component';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';\n\n// @dynamic\nexport class TextTypeTool extends ParagraphTextTool implements InlineTool {\n public static title = 'Text Type';\n\n private readonly commandName: string = 'textType';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--textType',\n arrowButtonModifier: 'ce-inline-tool--textType__arrow',\n textSelectionModifier: 'ce-inline-actions--textType',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'P';\n\n textTypes: Array<TextType> = TEXT_TYPES;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n this.nodes.button.addEventListener('click', () => this.openDropdown());\n\n let dropdownArrow = document.createElement('span');\n dropdownArrow.classList.add(this.CSS.arrowButtonModifier);\n this.nodes.button.appendChild(dropdownArrow);\n\n console.log('rendering paragraph tool');\n return this.nodes.button;\n }\n\n async surround(range: Range, applyStyle: boolean = false) {\n if (applyStyle) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n this.closeDropdown();\n }\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const parentModifier = this.findParentModifier();\n if (!parentModifier) {\n return false;\n }\n let classToApply = parentModifier.tagName.toLowerCase();\n this.textTypes.forEach((textType) => {\n this.nodes.button.classList.remove(textType.tag.toLowerCase());\n });\n\n this.nodes.button.classList.add(classToApply);\n\n console.log('checkState method on paragraph tool');\n return true;\n }\n\n renderActions() {\n let textTypeDropdown = document.createElement('div');\n textTypeDropdown.className = this.dropdownCss['container'] + ' hidden ' + this.CSS.textSelectionModifier;\n this.textTypes.forEach((textType) => {\n let row = document.createElement('div');\n row.className = this.dropdownCss['row'];\n row.innerText = editorJSI18nDictionnary.messages.tools.textType[textType.name];\n row.addEventListener('click', () => this.applyTextStyle(textType.tag));\n textTypeDropdown.appendChild(row);\n });\n return textTypeDropdown;\n }\n\n showActions(mark) {\n //this.style.input = mark && mark.style && mark.style.backgroundColor ? mark.style.backgroundColor : '#f5f1cc';\n }\n\n hideActions() {}\n\n async applyTextStyle(tag: string) {\n this.tag = tag;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkState(this.currentSelection);\n this.saveUserSelection();\n this.hideActions();\n }\n}\n","import { I18nConfig } from '@editorjs/editorjs';\n\nexport const frI18nDictionnary: I18nConfig = {\n messages: {\n ui: {\n blockTunes: {\n toggler: {\n 'Click to tune': 'Cliquer pour régler',\n 'or drag to move': 'ou faire glisser pour déplacer',\n },\n },\n toolbar: {\n toolbox: {\n Add: 'Ajouter',\n },\n },\n },\n toolNames: {\n 'Text Type': 'Type de texte',\n 'Text Size': 'Taille de texte',\n Undo: 'Annuler',\n Redo: 'Rétablir',\n Bold: 'Gras',\n Italic: 'Italique',\n Underline: 'Souligner',\n Strike: 'Barrer',\n Capitalize: 'Majuscules',\n Subscript: 'Indice',\n Superscript: 'Exposant',\n 'Text Color': 'Couleur du texte',\n 'Background Color': 'Couleur de surlignage',\n Link: 'Lien',\n Quote: 'Citation',\n 'Text Align': 'Alignement du texte',\n 'Ordered List': 'Liste numérotée',\n 'Unordered List': 'Liste à puces',\n Indent: 'Augmenter le retrait',\n Outdent: 'Diminuer le retrait',\n 'Code Edit': 'Edition de code',\n },\n tools: {\n link: {\n add: 'Ajouter un lien',\n placeholder: 'https://www.maboutique.fr or /monlien/',\n external: 'Externe ?',\n obfuscated: 'Lien Obfusqué ?',\n info:\n 'L\\'obfuscation de liens est une technique SEO avancée qui consiste à cacher un lien aux robots des moteurs de recherche, tout en le laissant accessible pour les internautes. <a href=\"https://www.wizishop.fr/blog/obfuscation-lien\" target=\"_blank\">Découvrir l\\'article complet.</a>',\n },\n textBackgroundColor: {\n customColor: 'Sélectionner une couleur personnalisée :',\n None: 'Aucune',\n },\n textType: {\n 'Heading 1': 'Heading 1',\n 'Heading 2': 'Heading 2',\n 'Heading 3': 'Heading 3',\n 'Heading 4': 'Heading 4',\n 'Heading 5': 'Heading 5',\n 'Heading 6': 'Heading 6',\n Paragraph: 'Paragraphe',\n },\n textSize: {\n Small: 'Petit',\n Normal: 'Normal',\n Large: 'Grand',\n Huge: 'Très grand',\n },\n codeEdit: {\n Cancel: 'Annuler',\n Save: 'Enregistrer',\n },\n },\n blockTunes: {\n delete: {\n Delete: 'Supprimer',\n },\n moveUp: {\n 'Move up': 'Déplacer vers le haut',\n },\n moveDown: {\n 'Move down': 'Déplacer vers le bas',\n },\n },\n },\n};\n","import { I18nConfig } from '@editorjs/editorjs';\n\nexport const enI18nDictionnary: I18nConfig = {\n messages: {\n ui: {\n blockTunes: {\n toggler: {\n 'Click to tune': 'Click to tune',\n 'or drag to move': 'or drag to move',\n },\n },\n toolbar: {\n toolbox: {\n Add: 'Add',\n },\n },\n },\n toolNames: {\n 'Text Type': 'Text Type',\n 'Text Size': 'Text Size',\n Undo: 'Undo',\n Redo: 'Redo',\n Bold: 'Bold',\n Italic: 'Italic',\n Underline: 'Underline',\n Strike: 'Strike',\n Capitalize: 'Capitalize',\n Subscript: 'Subscript',\n Superscript: 'Superscript',\n 'Text Color': 'Text Color',\n 'Background Color': 'Background Color',\n Link: 'Link',\n Quote: 'Quote',\n 'Text Align': 'Text Align',\n 'Ordered List': 'Ordered List',\n 'Unordered List': 'Unordered List',\n Indent: 'Indent',\n Outdent: 'Outdent',\n 'Code Edit': 'Code Edit',\n },\n tools: {\n link: {\n add: 'Add a link',\n placeholder: 'https://www.myshop.fr or /mylink/',\n external: 'External?',\n obfuscated: 'Obfuscated link?',\n info:\n 'Link obfuscation is an advanced SEO technique that consists in hiding a link from search engine robots, while leaving it available for users. <a href=\"https://wizishop.com/blog/url-obfuscation\" target=\"_blank\">Read more</a>',\n },\n textBackgroundColor: {\n customColor: 'Select a custom color :',\n None: 'None',\n },\n textType: {\n 'Heading 1': 'Heading 1',\n 'Heading 2': 'Heading 2',\n 'Heading 3': 'Heading 3',\n 'Heading 4': 'Heading 4',\n 'Heading 5': 'Heading 5',\n 'Heading 6': 'Heading 6',\n Paragraph: 'Paragraph',\n },\n textSize: {\n Small: 'Small',\n Normal: 'Normal',\n Large: 'Large',\n Huge: 'Very large',\n },\n codeEdit: {\n Cancel: 'Cancel',\n Save: 'Save',\n },\n },\n blockTunes: {\n delete: {\n Delete: 'Delete',\n },\n moveUp: {\n 'Move up': 'Move up',\n },\n moveDown: {\n 'Move down': 'Move down',\n },\n },\n },\n};\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { ParagraphTextTool } from './tool-type/text-tool.component';\nimport { TextAlign, TEXT_ALIGN } from '../utils/texts.component';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\n\n// @dynamic\nexport class TextAlignTool extends ParagraphTextTool implements InlineTool {\n public static title = 'Text Align';\n\n private readonly commandName: string = 'textAlign';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--textAlign',\n arrowButtonModifier: 'ce-inline-tool--textAlign__arrow',\n textSelectionModifier: 'ce-inline-actions--textAlign',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n hasSeparatorBefore = true;\n\n textAlign: Array<TextAlign> = TEXT_ALIGN;\n\n classes = '';\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n this.nodes.button.addEventListener('click', () => this.openDropdown());\n\n let dropdownArrow = document.createElement('span');\n dropdownArrow.classList.add(this.CSS.arrowButtonModifier);\n this.nodes.button.appendChild(dropdownArrow);\n\n return this.nodes.button;\n }\n\n async surround(range: Range, applyStyle: boolean = false) {\n if (applyStyle) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n this.closeDropdown();\n }\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const parentModifier = this.findParentModifier();\n if (!parentModifier) {\n return false;\n }\n this.textAlign.forEach((textAlign) => {\n if (parentModifier.classList.contains(textAlign.class)) {\n this.nodes.button.classList.add(textAlign.class);\n } else {\n this.nodes.button.classList.remove(textAlign.class);\n }\n });\n\n return true;\n }\n\n renderActions() {\n let textAlignDropdown = document.createElement('div');\n textAlignDropdown.className = this.dropdownCss['container'] + ' hidden ' + this.CSS.textSelectionModifier;\n this.textAlign.forEach((textAlign) => {\n let row = document.createElement('div');\n row.className = this.dropdownCss['row'] + ' ' + textAlign.class;\n row.addEventListener('click', () => this.applyTextStyle(textAlign.class));\n textAlignDropdown.appendChild(row);\n });\n if (this.classes === '') {\n this.textAlign.forEach((textAlign) => {\n if (this.classes !== '') {\n this.classes += ',';\n }\n this.classes += textAlign.class;\n });\n }\n return textAlignDropdown;\n }\n\n showActions(mark) {\n //this.style.input = mark && mark.style && mark.style.backgroundColor ? mark.style.backgroundColor : '#f5f1cc';\n }\n\n hideActions() {}\n\n async applyTextStyle(classToApply: string) {\n this.classToApply = classToApply;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkState(this.currentSelection);\n this.saveUserSelection();\n this.hideActions();\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { ParagraphStyleTool } from './tool-type/paragraph-style-tool.component';\n\n// @dynamic\nexport class UnorderedListTool extends ParagraphStyleTool implements InlineTool {\n public static title = 'Unordered List';\n\n private readonly commandName: string = 'unorderedList';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--unorderedList',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'UL';\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const parentModifier = this.findParentModifier();\n if (!parentModifier) {\n return false;\n }\n let isActive = parentModifier.tagName.toLowerCase() === this.tag.toLowerCase();\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { ParagraphStyleTool } from './tool-type/paragraph-style-tool.component';\n\n// @dynamic\nexport class OrderedListTool extends ParagraphStyleTool implements InlineTool {\n public static title = 'Ordered List';\n\n private readonly commandName: string = 'orderedList';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--orderedList',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'OL';\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const parentModifier = this.findParentModifier();\n if (!parentModifier) {\n return false;\n }\n let isActive = parentModifier.tagName.toLowerCase() === this.tag.toLowerCase();\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { ParagraphStyleTool } from './tool-type/paragraph-style-tool.component';\n\n// @dynamic\nexport class QuoteTool extends ParagraphStyleTool implements InlineTool {\n public static title = 'Quote';\n\n private readonly commandName: string = 'quote';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--quote',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'BLOCKQUOTE';\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const parentModifier = this.findParentModifier();\n if (!parentModifier) {\n return false;\n }\n let isActive = parentModifier.tagName.toLowerCase() === this.tag.toLowerCase();\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { AttributeObject, isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';\nimport { InlineStyleTool } from './tool-type/inline-style-tool.component';\n\n// @dynamic\nexport class LinkTool extends InlineStyleTool implements InlineTool {\n public static title = 'Link';\n\n private readonly commandName: string = 'link';\n\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--link',\n };\n\n private nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n hasSeparatorBefore = true;\n\n linkDeletion: boolean = false;\n\n modifies = {\n tag: false,\n style: false,\n class: false,\n attribute: true,\n };\n\n linkCss: Object = {\n container: 'ce-inline-actions--link',\n linkContainer: 'ce-inline-actions--link__container',\n targetContainer: 'ce-inline-actions--link__target',\n obfuscationContainer: 'ce-inline-actions--link__obfuscation',\n linkInputId: 'linkInput',\n targetCheckboxId: 'targetCheckbox',\n obfuscationCheckboxId: 'obfuscationCheckbox',\n addButtonClass: 'ce-inline-actions--link__add',\n deleteButtonClass: 'ce-inline-actions--link__delete',\n };\n\n attributeName: string = 'data-htap,href,data-knalb';\n\n attributesToApply: Array<AttributeObject> | null = [];\n\n isLinkDropdownOpen: boolean = false;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n public get shortcut() {\n return 'CMD+K';\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.addEventListener('click', () => this.openLinkDropdown());\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range, applyLink: boolean = false) {\n if (applyLink) {\n this.saveUserSelection();\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const isActive = this.hasStyle(<HTMLElement>selection.anchorNode) ? true : false;\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n\n return isActive;\n }\n\n async applyLink() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');\n this.attributesToApply = [];\n\n let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId'] + uuid) as HTMLInputElement;\n let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId'] + uuid) as HTMLInputElement;\n let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId'] + uuid) as HTMLInputElement;\n\n if (obfuscationCheckbox.checked) {\n this.tag = 'SPAN';\n this.modifies.tag = false;\n this.attributesToApply.push({\n name: 'data-htap',\n value: btoa(linkInput.value),\n });\n\n if (targetCheckbox.checked) {\n this.attributesToApply.push({\n name: 'data-knalb',\n value: 'true',\n });\n }\n } else {\n this.tag = 'A';\n this.modifies.tag = true;\n this.attributesToApply.push({\n name: 'href',\n value: linkInput.value,\n });\n\n if (targetCheckbox.checked) {\n this.attributesToApply.push({\n name: 'target',\n value: '_blank',\n });\n }\n }\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkState(this.currentSelection);\n this.openLinkDropdown();\n }\n\n async deleteLink() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');\n\n let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId'] + uuid) as HTMLInputElement;\n let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId'] + uuid) as HTMLInputElement;\n let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId'] + uuid) as HTMLInputElement;\n if (obfuscationCheckbox.checked) {\n this.tag = 'SPAN';\n this.modifies.tag = false;\n this.attributesToApply.push({\n name: 'data-htap',\n value: btoa(linkInput.value),\n });\n\n if (targetCheckbox.checked) {\n this.attributesToApply.push({\n name: 'data-knalb',\n value: 'true',\n });\n }\n } else {\n this.tag = 'A';\n this.modifies.tag = true;\n this.attributesToApply.push({\n name: 'href',\n value: linkInput.value,\n });\n\n if (targetCheckbox.checked) {\n this.attributesToApply.push({\n name: 'target',\n value: '_blank',\n });\n }\n }\n this.linkDeletion = true;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkState(this.currentSelection);\n this.openLinkDropdown();\n this.linkDeletion = false;\n }\n\n renderActions() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');\n let container = document.createElement('div');\n container.className = this.linkCss['container'] + ' hidden';\n\n let linkContainer = document.createElement('div');\n linkContainer.className = this.linkCss['linkContainer'];\n let targetContainer = document.createElement('div');\n targetContainer.className = this.linkCss['targetContainer'];\n let obfuscationContainer = document.createElement('div');\n obfuscationContainer.className = this.linkCss['obfuscationContainer'];\n let applyButton = document.createElement('button');\n applyButton.className = this.linkCss['addButtonClass'];\n applyButton.innerText = editorJSI18nDictionnary.messages.tools.link['add'];\n applyButton.addEventListener('click', () => this.applyLink());\n\n let linkInput = document.createElement('input');\n linkInput.setAttribute('id', this.linkCss['linkInputId'] + uuid);\n linkInput.setAttribute('placeholder', editorJSI18nDictionnary.messages.tools.link['placeholder']);\n let targetCheckbox = document.createElement('input');\n targetCheckbox.setAttribute('id', this.linkCss['targetCheckboxId'] + uuid);\n targetCheckbox.setAttribute('type', 'checkbox');\n let targetLabel = document.createElement('label');\n targetLabel.innerText = editorJSI18nDictionnary.messages.tools.link['external'];\n targetLabel.setAttribute('for', this.linkCss['targetCheckboxId'] + uuid);\n let obfuscationCheckbox = document.createElement('input');\n obfuscationCheckbox.setAttribute('id', this.linkCss['obfuscationCheckboxId'] + uuid);\n obfuscationCheckbox.setAttribute('type', 'checkbox');\n let obfuscationLabel = document.createElement('label');\n obfuscationLabel.innerText = editorJSI18nDictionnary.messages.tools.link['obfuscated'];\n obfuscationLabel.setAttribute('for', this.linkCss['obfuscationCheckboxId'] + uuid);\n let obfuscationTooltipContainer = document.createElement('div');\n let obbfuscationTooltip = document.createElement('div');\n obbfuscationTooltip.innerHTML = editorJSI18nDictionnary.messages.tools.link['info'];\n obfuscationTooltipContainer.appendChild(obbfuscationTooltip);\n let deleteButton = document.createElement('button');\n deleteButton.className = this.linkCss['deleteButtonClass'] + ' hidden';\n deleteButton.addEventListener('click', () => this.deleteLink());\n\n linkContainer.appendChild(linkInput);\n targetContainer.appendChild(targetCheckbox);\n targetContainer.appendChild(targetLabel);\n obfuscationContainer.appendChild(obfuscationCheckbox);\n obfuscationContainer.appendChild(obfuscationLabel);\n obfuscationContainer.appendChild(obfuscationTooltipContainer);\n\n container.appendChild(linkContainer);\n container.appendChild(targetContainer);\n container.appendChild(obfuscationContainer);\n container.appendChild(applyButton);\n container.appendChild(deleteButton);\n\n return container;\n }\n\n showActions(mark) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');\n\n let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId'] + uuid) as HTMLInputElement;\n let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId'] + uuid) as HTMLInputElement;\n let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId'] + uuid) as HTMLInputElement;\n let deleteButton = this.parentEditor.querySelector('.' + this.linkCss['deleteButtonClass']);\n let addButton = this.parentEditor.querySelector('.' + this.linkCss['addButtonClass']);\n linkInput.value = '';\n if (this.checkState(this.getSelection())) {\n let selection = this.getSelection();\n let element = this.hasStyle(<HTMLElement>selection.anchorNode);\n linkInput.value = element.getAttribute(element.tagName.toLowerCase() === 'a' ? 'href' : 'data-htap');\n targetCheckbox.checked = element.getAttribute('target') === '_blank';\n obfuscationCheckbox.checked = element.tagName.toLowerCase() === 'span';\n if (deleteButton.classList.contains('hidden')) {\n deleteButton.classList.remove('hidden');\n }\n if (!addButton.classList.contains('hidden')) {\n addButton.classList.add('hidden');\n }\n } else {\n linkInput.value = '';\n targetCheckbox.checked = false;\n obfuscationCheckbox.checked = false;\n if (!deleteButton.classList.contains('hidden')) {\n deleteButton.classList.add('hidden');\n }\n if (addButton.classList.contains('hidden')) {\n addButton.classList.remove('hidden');\n }\n }\n }\n\n hideActions() {}\n\n openLinkDropdown() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let linkDropdown = this.parentEditor.querySelector('.' + this.linkCss['container']);\n this.saveUserSelection();\n if (linkDropdown) {\n if (linkDropdown.classList.contains('hidden')) {\n this.showActions(null);\n let viewportOffset = linkDropdown.getBoundingClientRect();\n if (viewportOffset.left + (<HTMLElement>linkDropdown).offsetWidth > document.body.offsetWidth) {\n let left =\n parseInt(window.getComputedStyle(linkDropdown, null).getPropertyValue('left')) -\n (viewportOffset.left + (<HTMLElement>linkDropdown).offsetWidth - document.body.offsetWidth);\n (<HTMLElement>linkDropdown).style.left = left.toString() + 'px';\n }\n (<HTMLElement>linkDropdown).style.top =\n '-' +\n (\n (<HTMLElement>this.parentEditor.querySelector('.ce-inline-toolbar__buttons')).offsetHeight -\n (this.nodes.button.offsetTop + this.nodes.button.offsetHeight)\n ).toString() +\n 'px';\n linkDropdown.classList.remove('hidden');\n this.currentSelection = this.getSelection();\n document.addEventListener('click', ($event) => this.isLinkDropdownFocusedOut($event));\n setTimeout(() => {\n this.isLinkDropdownOpen = true;\n }, 400);\n } else {\n this.resetUserSelection();\n this.isLinkDropdownOpen = false;\n linkDropdown.classList.add('hidden');\n }\n }\n }\n\n isLinkDropdownFocusedOut($event) {\n let colorSelection = this.parentEditor.querySelector('.' + this.linkCss['container']);\n if (this.isLinkDropdownOpen) {\n let element = $event.target;\n while (element) {\n if (element.classList.contains(this.linkCss['container'])) {\n return;\n }\n element = element.parentElement;\n }\n document.removeEventListener('click', ($event) => this.isLinkDropdownFocusedOut($event));\n this.isLinkDropdownOpen = false;\n colorSelection.classList.add('hidden');\n this.api.toolbar.close();\n return true;\n }\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { ParagraphStyleTool } from './tool-type/paragraph-style-tool.component';\n\n// @dynamic\nexport class IndentTool extends ParagraphStyleTool implements InlineTool {\n public static title = 'Indent';\n\n private readonly commandName: string = 'indent';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--indent',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n classes = 'we-indent-{{input}}';\n\n input = 1;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n return false;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { ParagraphStyleTool } from './tool-type/paragraph-style-tool.component';\n\n// @dynamic\nexport class OutdentTool extends ParagraphStyleTool implements InlineTool {\n public static title = 'Outdent';\n\n private readonly commandName: string = 'outdent';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--outdent',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n classes = 'we-indent-{{input}}';\n\n input = -1;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n return false;\n }\n}\n","import { InlineStyleTool } from './inline-style-tool.component';\n\nexport abstract class InlineTextTool extends InlineStyleTool {\n nodes: { button: HTMLButtonElement };\n\n isDropdownOpen: boolean = false;\n\n currentSelection?: Selection;\n\n selectedAnchorNode: Node = null;\n\n selectedFocusNode: Node = null;\n\n anchorOffset: number = -1;\n\n focusOffset: number = -1;\n\n CSS: any;\n\n api: any;\n\n dropdownCss: Object = {\n container: 'ce-inline-actions--text',\n row: 'ce-inline-actions--text__row',\n };\n\n openDropdown() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let dropdown = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n this.saveUserSelection();\n if (dropdown) {\n if (dropdown.classList.contains('hidden')) {\n (<HTMLElement>dropdown).style.left = this.nodes.button.offsetLeft.toString() + 'px';\n (<HTMLElement>dropdown).style.top =\n '-' +\n (\n (<HTMLElement>this.parentEditor.querySelector('.ce-inline-toolbar__buttons')).offsetHeight -\n (this.nodes.button.offsetTop + this.nodes.button.offsetHeight)\n ).toString() +\n 'px';\n dropdown.classList.remove('hidden');\n this.currentSelection = this.getSelection();\n document.addEventListener('click', ($event) => this.isDropdownFocusedOut($event));\n setTimeout(() => {\n this.isDropdownOpen = true;\n }, 400);\n } else {\n this.isDropdownOpen = false;\n dropdown.classList.add('hidden');\n }\n }\n }\n\n closeDropdown() {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n let dropdown = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n this.saveUserSelection();\n if (dropdown) {\n if (!dropdown.classList.contains('hidden')) {\n dropdown.classList.add('hidden');\n setTimeout(() => {\n this.isDropdownOpen = false;\n }, 400);\n }\n }\n }\n\n saveUserSelection(): void {\n this.currentSelection = this.getSelection();\n this.selectedAnchorNode = this.currentSelection.anchorNode;\n this.selectedFocusNode = this.currentSelection.focusNode;\n this.anchorOffset = this.currentSelection.anchorOffset;\n this.focusOffset = this.currentSelection.focusOffset;\n }\n\n resetUserSelection(): void {\n document.getSelection().setBaseAndExtent(this.selectedAnchorNode, this.anchorOffset, this.selectedFocusNode, this.focusOffset);\n this.currentSelection = this.getSelection();\n }\n\n isDropdownFocusedOut($event) {\n let dropdownSelection = this.parentEditor.querySelectorAll('.' + this.CSS.textSelectionModifier)[0];\n if (this.isDropdownOpen) {\n let element = $event.target;\n while (element) {\n if (element.classList.contains(this.dropdownCss['container'])) {\n return;\n }\n element = element.parentElement;\n }\n document.removeEventListener('click', ($event) => this.isDropdownFocusedOut($event));\n this.isDropdownOpen = false;\n dropdownSelection.classList.add('hidden');\n this.api.toolbar.close();\n return true;\n }\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { InlineTextTool } from './tool-type/text-tool.component';\nimport { TextSize, TEXT_SIZES } from '../utils/texts.component';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';\n\n// @dynamic\nexport class textSizeTool extends InlineTextTool implements InlineTool {\n public static title = 'Text Size';\n\n private readonly commandName: string = 'textSize';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--textSize',\n arrowButtonModifier: 'ce-inline-tool--textSize__arrow',\n textSelectionModifier: 'ce-inline-actions--textSize',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n textSizes: Array<TextSize> = TEXT_SIZES;\n\n classToApply = '';\n\n classes = '';\n\n modifies = {\n tag: false,\n style: false,\n class: true,\n attribute: false,\n };\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n this.nodes.button.addEventListener('click', () => this.openDropdown());\n this.textSizes.forEach((textSize) => {\n let span = document.createElement('span');\n span.innerText = editorJSI18nDictionnary.messages.tools.textSize[textSize.name];\n this.nodes.button.appendChild(span);\n });\n\n let dropdownArrow = document.createElement('span');\n dropdownArrow.classList.add(this.CSS.arrowButtonModifier);\n this.nodes.button.appendChild(dropdownArrow);\n\n return this.nodes.button;\n }\n\n async surround(range: Range, applyStyle: boolean = false) {\n this.saveUserSelection();\n if (applyStyle) {\n await this.execCommandStyle(this.tag);\n this.checkState(this.getSelection());\n this.closeDropdown();\n }\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n const element = this.hasStyle(<HTMLElement>selection.anchorNode);\n const isActive = element ? true : false;\n\n this.textSizes.forEach((textSize) => {\n if (textSize.class !== '') {\n if (element?.classList.contains(textSize.class)) {\n this.nodes.button.classList.add(textSize.class);\n } else {\n this.nodes.button.classList.remove(textSize.class);\n }\n }\n });\n\n return isActive;\n }\n\n renderActions() {\n let textSizeDropdown = document.createElement('div');\n textSizeDropdown.className = this.dropdownCss['container'] + ' hidden ' + this.CSS.textSelectionModifier;\n this.textSizes.forEach((textSize) => {\n let row = document.createElement('div');\n row.className = this.dropdownCss['row'];\n row.innerText = editorJSI18nDictionnary.messages.tools.textSize[textSize.name];\n row.addEventListener('click', () => this.applyTextStyle(textSize.class));\n textSizeDropdown.appendChild(row);\n });\n if (this.classes === '') {\n this.textSizes.forEach((textSize) => {\n if (this.classes !== '') {\n this.classes += ',';\n }\n this.classes += textSize.class;\n });\n }\n return textSizeDropdown;\n }\n\n showActions(mark) {\n //this.style.input = mark && mark.style && mark.style.backgroundColor ? mark.style.backgroundColor : '#f5f1cc';\n }\n\n hideActions() {}\n\n async applyTextStyle(classToApply: string) {\n this.classToApply = classToApply;\n this.resetUserSelection();\n await this.surround(null, true);\n this.checkState(this.currentSelection);\n this.saveUserSelection();\n this.hideActions();\n }\n}\n","import { ParagraphStyleTool } from './paragraph-style-tool.component';\nimport { LIST_EDIT_KEY_CODES } from '../../utils/colors.component';\nimport { editorJSI18nDictionnary } from '../../utils/editorjs-translation.service';\n// import { EditorView, basicSetup } from 'codemirror';\n// import { EditorState } from '@codemirror/state';\n// import { html } from '@codemirror/lang-html';\n\nexport abstract class TextEditionTool extends ParagraphStyleTool {\n nodes: { button: HTMLButtonElement };\n\n CSS: any;\n\n containerClass = 'codeEdit__container';\n modalClass = 'codeEdit__container__modal';\n editorClass = 'codeEdit__container__modal__editor';\n buttonClass = 'codeEdit__container__modal__buttons';\n\n undo() {\n let editor = this.findParentEditor();\n let savedData = this.getSavedEditorContent(editor.id);\n let savedDataIndex = this.getSavedEditorContent(editor.id + '-index')\n ? parseInt(this.getSavedEditorContent(editor.id + '-index'))\n : -1;\n let parsedSavedData: Array<string> = [];\n if (!savedData) {\n return;\n }\n parsedSavedData = JSON.parse(savedData);\n --savedDataIndex;\n savedDataIndex = savedDataIndex < 0 ? 0 : savedDataIndex;\n codeEditEditor = this.findParentEditor();\n codeEditApi = this.api;\n saveCodeEditModal(parsedSavedData[savedDataIndex]);\n this.setSavedEditorContent(editor.id + '-index', savedDataIndex.toString());\n }\n\n redo() {\n let editor = this.findParentEditor();\n\n let savedData = this.getSavedEditorContent(editor.id);\n let savedDataIndex = this.getSavedEditorContent(editor.id + '-index')\n ? parseInt(this.getSavedEditorContent(editor.id + '-index'))\n : -1;\n let parsedSavedData: Array<string> = [];\n if (!savedData) {\n return;\n }\n parsedSavedData = JSON.parse(savedData);\n ++savedDataIndex;\n savedDataIndex = savedDataIndex > parsedSavedData.length ? parsedSavedData.length : savedDataIndex;\n codeEditEditor = this.findParentEditor();\n codeEditApi = this.api;\n saveCodeEditModal(parsedSavedData[savedDataIndex]);\n this.setSavedEditorContent(editor.id + '-index', savedDataIndex.toString());\n }\n\n editHTML() {\n let content = this.getEditorContent();\n this.createHTMLEditModal(content);\n }\n\n private createHTMLEditModal(content: string) {\n let container = document.createElement('div');\n container.classList.add(this.containerClass);\n let modal = document.createElement('div');\n modal.classList.add(this.modalClass);\n let editorContainer = document.createElement('div');\n editorContainer.classList.add(this.editorClass);\n codeEditEditor = this.findParentEditor();\n codeEditApi = this.api;\n\n let buttonContainer = document.createElement('div');\n let cancelButton = document.createElement('button');\n let saveButton = document.createElement('button');\n cancelButton.innerText = editorJSI18nDictionnary.messages.tools.codeEdit['Cancel'];\n saveButton.innerText = editorJSI18nDictionnary.messages.tools.codeEdit['Save'];\n cancelButton.addEventListener('click', closeCodeEditModal, true);\n buttonContainer.appendChild(cancelButton);\n buttonContainer.classList.add(this.buttonClass);\n\n modal.appendChild(editorContainer);\n modal.appendChild(buttonContainer);\n container.appendChild(modal);\n document.body.appendChild(container);\n\n // let state = EditorState.create({\n // doc: content,\n // extensions: [basicSetup, html()],\n // });\n // let view = new EditorView({\n // state: state,\n // parent: editorContainer,\n // });\n\n // saveButton.addEventListener('click', () => saveCodeEditModal(view.state.doc.toString()), true);\n buttonContainer.appendChild(saveButton);\n }\n\n private getSavedEditorContent(name: string) {\n return localStorage.getItem(name);\n }\n\n private setSavedEditorContent(name: string, value: string) {\n localStorage.setItem(name, value);\n }\n\n private getEditorContent(): string {\n let currentEditor = this.findParentEditor();\n let editorBlocks = currentEditor.querySelectorAll('.codex-editor__redactor .ce-paragraph');\n let content = '';\n editorBlocks.forEach((block) => {\n let closingTag = '</' + block.children[0]?.tagName.toLowerCase() + '>';\n let regexp = /((<\\/)\\w+(>))(?![\\s\\S]*((<\\/)\\w+(>))[\\s\\S]*$)/i;\n let lastContentClosingTag = content.match(regexp) ? content.match(regexp)[0] : '';\n if (\n (block.children[0]?.tagName.toLowerCase() === 'ul' || block.children[0]?.tagName.toLowerCase() === 'ol') &&\n lastContentClosingTag === closingTag\n ) {\n content = content.substring(0, content.length - closingTag.length);\n content += block.innerHTML.substring(closingTag.replace('/', '').length, block.innerHTML.length);\n } else {\n content += block.innerHTML;\n }\n });\n return this.FormatHTMLStringIndentation(content);\n }\n\n // Adapted FROM jsfiddle here: https://jsfiddle.net/buksy/rxucg1gd/\n private FormatHTMLStringIndentation(code: string): string {\n let stripWhiteSpaces = true;\n let stripEmptyLines = true;\n const whitespace = ' '.repeat(2); // Default indenting 4 whitespaces\n let currentIndent = 0;\n const newlineChar = '\\n';\n let prevChar = null;\n let char = null;\n let nextChar = null;\n\n let result = '';\n for (let pos = 0; pos <= code.length; pos++) {\n prevChar = char;\n char = code.substr(pos, 1);\n nextChar = code.substr(pos + 1, 1);\n\n const isBrTag = code.substr(pos, 4) === '<br>';\n const isOpeningTag = char === '<' && nextChar !== '/' && !isBrTag;\n const isClosingTag = char === '<' && nextChar === '/' && !isBrTag;\n const isTagEnd = prevChar === '>' && char !== '<' && currentIndent > 0;\n const isTagNext =\n !isBrTag && !isOpeningTag && !isClosingTag && isTagEnd && code.substr(pos, code.substr(pos).indexOf('<')).trim() === '';\n if (isBrTag) {\n // If opening tag, add newline character and indention\n result += newlineChar + whitespace.repeat(currentIndent);\n }\n if (isOpeningTag) {\n // If opening tag, add newline character and indention\n result += (pos === 0 ? '' : newlineChar) + whitespace.repeat(currentIndent);\n currentIndent++;\n }\n // if Closing tag, add newline and indention\n else if (isClosingTag) {\n // If there're more closing tags than opening\n if (--currentIndent < 0) currentIndent = 0;\n result += newlineChar + whitespace.repeat(currentIndent);\n }\n // remove multiple whitespaces\n else if (stripWhiteSpaces === true && char === ' ' && nextChar === ' ') char = '';\n // remove empty lines\n else if (stripEmptyLines === true && char === newlineChar) {\n //debugger;\n if (code.substr(pos, code.substr(pos).indexOf('<')).trim() === '') char = '';\n }\n if (isTagEnd && !isTagNext) {\n result += newlineChar + whitespace.repeat(currentIndent);\n }\n\n result += char;\n }\n return result;\n }\n}\n\nvar codeEditEditor = null;\nvar codeEditApi = null;\n\nfunction closeCodeEditModal() {\n document.querySelector('.codeEdit__container')?.remove();\n}\n\nfunction saveCodeEditModal(content) {\n let tmpElement = document.createElement('div');\n tmpElement.innerHTML = content;\n\n codeEditApi.blocks.clear();\n let paragraph = codeEditEditor.querySelectorAll('.ce-paragraph');\n let i = 0;\n\n while (tmpElement.firstElementChild) {\n if (tmpElement.firstElementChild.tagName.toLowerCase() === 'ul' || tmpElement.firstElementChild.tagName.toLowerCase() === 'ol') {\n let listMarker = 1;\n let previousContainerWasOl = false;\n while (tmpElement.firstElementChild.firstElementChild) {\n let container = document.createElement(tmpElement.firstElementChild.tagName);\n container.appendChild(tmpElement.firstElementChild.firstElementChild.cloneNode(true));\n if (container.tagName.toLowerCase() === 'ol') {\n if (!previousContainerWasOl) {\n listMarker = 1;\n }\n container.firstElementChild.setAttribute('value', listMarker.toString());\n previousContainerWasOl = true;\n ++listMarker;\n } else {\n previousContainerWasOl = false;\n }\n if (i >= paragraph.length) {\n codeEditApi.blocks.insert();\n let tmpParagraph = codeEditEditor.querySelectorAll('.ce-paragraph');\n tmpParagraph[tmpParagraph.length - 1].innerHTML = '';\n tmpParagraph[tmpParagraph.length - 1].appendChild(container);\n tmpParagraph[tmpParagraph.length - 1].addEventListener('keydown', onEditList, true);\n } else {\n paragraph[i].innerHTML = '';\n paragraph[i].appendChild(container);\n paragraph[i].addEventListener('keydown', onEditList, true);\n }\n tmpElement.firstElementChild.firstElementChild.remove();\n ++i;\n }\n } else {\n if (i >= paragraph.length) {\n codeEditApi.blocks.insert();\n let tmpParagraph = codeEditEditor.querySelectorAll('.ce-paragraph');\n tmpParagraph[tmpParagraph.length - 1].innerHTML = '';\n tmpParagraph[tmpParagraph.length - 1].appendChild(tmpElement.firstElementChild.cloneNode(true));\n } else {\n paragraph[i].innerHTML = '';\n paragraph[i].appendChild(tmpElement.firstElementChild.cloneNode(true));\n }\n ++i;\n }\n tmpElement.firstElementChild.remove();\n }\n\n closeCodeEditModal();\n}\n\nfunction onEditList(event: KeyboardEvent) {\n let focusedBlock = <HTMLElement>event.target;\n if (LIST_EDIT_KEY_CODES.indexOf(event.code) > -1) {\n if (event.code === 'Backspace') {\n if (focusedBlock.innerText.length === 0) {\n let currentParagraph = codeEditEditor.querySelectorAll('.ce-paragraph')[codeEditApi.blocks.getCurrentBlockIndex()];\n currentParagraph.innerHTML = '';\n currentParagraph.appendChild(document.createElement('p'));\n currentParagraph.removeEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('p'), 0, currentParagraph.querySelector('p'), 0);\n }\n } else {\n event.preventDefault();\n event.stopPropagation();\n if (focusedBlock.innerText !== '') {\n codeEditApi.blocks.insert('paragraph', codeEditApi.blocks.getCurrentBlockIndex());\n let currentBlock = codeEditEditor.querySelectorAll('.ce-block')[codeEditApi.blocks.getCurrentBlockIndex()];\n let previousBlock = codeEditEditor.querySelectorAll('.ce-block')[codeEditApi.blocks.getCurrentBlockIndex() - 1];\n let currentParagraph = currentBlock.querySelector('.ce-paragraph');\n let listElement = document.createElement(previousBlock.querySelector('.ce-paragraph').firstElementChild.tagName);\n listElement.appendChild(document.createElement('li'));\n if (listElement.tagName.toLowerCase() === 'ol') {\n listElement.firstElementChild.setAttribute(\n 'value',\n (parseInt(previousBlock.querySelector('li').getAttribute('value')) + 1).toString()\n );\n }\n currentParagraph.appendChild(listElement);\n currentParagraph.addEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('li'), 0, currentParagraph.querySelector('li'), 0);\n } else {\n let currentParagraph = codeEditEditor.querySelectorAll('.ce-paragraph')[codeEditApi.blocks.getCurrentBlockIndex()];\n currentParagraph.innerHTML = '';\n currentParagraph.appendChild(document.createElement('p'));\n currentParagraph.removeEventListener('keydown', onEditList, true);\n document.getSelection().setBaseAndExtent(currentParagraph.querySelector('p'), 0, currentParagraph.querySelector('p'), 0);\n }\n }\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';\nimport { TextEditionTool } from './tool-type/text-edition.component';\n\n// @dynamic\nexport class CodeEditTool extends TextEditionTool implements InlineTool {\n public static title = 'Code Edit';\n\n private readonly commandName: string = 'codeEdit';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--codeEdit',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = 'SPAN';\n\n hasSeparatorBefore = true;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n this.editHTML();\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n return false;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, setIsTextEditionTool } from '../utils/editorjs-tool.component';\nimport { TextEditionTool } from './tool-type/text-edition.component';\n\n// @dynamic\nexport class UndoTool extends TextEditionTool implements InlineTool {\n public static title = 'Undo';\n\n private readonly commandName: string = 'undo';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--undo',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = '';\n\n hasSeparatorBefore = true;\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n setIsTextEditionTool(true);\n this.undo();\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n return false;\n }\n}\n","import { InlineTool, SanitizerConfig } from '@editorjs/editorjs';\nimport { isBlockFocused, setBlockFocus, setIsTextEditionTool } from '../utils/editorjs-tool.component';\nimport { TextEditionTool } from './tool-type/text-edition.component';\n\n// @dynamic\nexport class RedoTool extends TextEditionTool implements InlineTool {\n public static title = 'Redo';\n\n private readonly commandName: string = 'redo';\n\n CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--redo',\n };\n\n nodes: { button: HTMLButtonElement } = {\n button: undefined,\n };\n\n api: any;\n\n private _state: boolean;\n\n tag = '';\n\n public static get isInline() {\n return true;\n }\n\n public static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n get state() {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n\n this.nodes.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n\n constructor({ api }) {\n super();\n this.api = api;\n this._state = false;\n }\n\n render() {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n if (this.hasSeparatorBefore) {\n this.nodes.button.classList.add(this.separatorClass);\n }\n\n return this.nodes.button;\n }\n\n async surround(range: Range) {\n setIsTextEditionTool(true);\n this.redo();\n }\n\n checkState(selection) {\n if (!this.parentEditor) {\n this.parentEditor = this.findParentEditor();\n }\n if (!isBlockFocused) {\n setBlockFocus(this.parentEditor);\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditorJSConversionService {\n container: HTMLElement | null = null;\n\n classesToReplace = {\n 'ql-size-small': 'we-size-small',\n 'ql-size-large': 'we-size-large',\n 'ql-size-huge': 'we-size-huge',\n 'ql-align-left': 'we-align-left',\n 'ql-align-center': 'we-align-center',\n 'ql-align-right': 'we-align-right',\n 'ql-align-justify': 'we-align-justify',\n 'ql-indent-{input}': 'we-indent-{input}',\n };\n\n constructor() {}\n\n async convert(content: string): Promise<string> {\n this.container = document.createElement('div');\n this.container.innerHTML = content;\n await this.convertCurrentElement(this.container, true);\n\n return this.container.innerHTML;\n }\n\n private async convertCurrentElement(element: HTMLElement, firstCall: boolean = false) {\n if (!element) {\n return;\n }\n const children: HTMLCollection = element.children;\n let isOrderedListChildren = element.tagName.toLowerCase() === 'ol';\n for (var currentElement = children[0]; currentElement; currentElement = currentElement.nextElementSibling) {\n for (const [quillClass, editorJSClass] of Object.entries(this.classesToReplace)) {\n if (quillClass.indexOf('{input}') > -1) {\n const appliedClass = Array.from(currentElement.classList).some((c) => c.startsWith(quillClass.replace('{input}', '')));\n if (appliedClass) {\n currentElement.classList.forEach((className) => {\n if (className.indexOf(quillClass.replace('{input}', '')) > -1) {\n let index = className.replace(quillClass.replace('{input}', ''), '');\n currentElement.classList.remove(className);\n currentElement.classList.add(editorJSClass.replace('{input}', '') + index);\n }\n });\n }\n } else {\n if (currentElement.classList.contains(quillClass)) {\n currentElement.classList.remove(quillClass);\n currentElement.classList.add(editorJSClass);\n }\n }\n }\n\n if (Array.from(currentElement.classList).some((c) => c.startsWith('ql-custom-uppercase'))) {\n currentElement.classList.remove('ql-custom-uppercase');\n (<HTMLElement>currentElement).style.textTransform = 'uppercase';\n }\n\n if (currentElement.tagName.toLowerCase() === 'u') {\n let newElement = document.createElement('span');\n newElement.innerHTML = currentElement.innerHTML;\n if (currentElement.classList && currentElement.classList.length > 0) {\n newElement.className = currentElement.className;\n }\n newElement = this.setInlineStyle(currentElement, newElement);\n if (currentElement.classList.length > 0) {\n newElement.className = currentElement.className;\n }\n\n newElement.style.textDecoration = 'underline';\n\n currentElement.parentElement.replaceChild(newElement, currentElement);\n currentElement = newElement;\n }\n\n if (currentElement.tagName.toLowerCase() === 'a' && currentElement.hasAttribute('data-htap')) {\n let newLink = document.createElement('span');\n newLink.innerHTML = currentElement.innerHTML;\n if (currentElement.classList && currentElement.classList.length > 0) {\n newLink.className = currentElement.className;\n }\n newLink = this.setInlineStyle(currentElement, newLink);\n if (currentElement.classList.length > 0) {\n newLink.className = currentElement.className;\n }\n\n newLink.setAttribute('data-htap', currentElement.getAttribute('data-htap'));\n if (currentElement.getAttribute('target')) {\n newLink.setAttribute('target', currentElement.getAttribute('target'));\n }\n\n currentElement.parentElement.replaceChild(newLink, currentElement);\n currentElement = newLink;\n }\n if (isOrderedListChildren && currentElement.tagName.toLowerCase() === 'li') {\n let value = currentElement.previousElementSibling?.getAttribute('value');\n currentElement.setAttribute('value', value ? (parseInt(value) + 1).toString() : '1');\n }\n\n if (currentElement.children.length > 0) {\n await this.convertCurrentElement(<HTMLElement>currentElement);\n }\n }\n }\n\n private setInlineStyle(currentElement, nextElement): HTMLElement {\n const currentElementInlineStyle: Object = Array.from(currentElement.style).reduce((style: string, name: string) => {\n style[name] = currentElement.style[name];\n return style;\n }, {});\n for (const property in currentElementInlineStyle) {\n nextElement.style[property] = currentElementInlineStyle[property];\n }\n return nextElement;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { TranslateService } from '@ngx-translate/core';\nimport EditorJS, { I18nConfig } from '@editorjs/editorjs';\nimport { StrikeTool } from './tools/inline/strike-tool.component';\nimport { SubscriptTool } from './tools/inline/subscript-tool.component';\nimport { SuperscriptTool } from './tools/inline/superscript-tool.component';\nimport { BoldTool } from './tools/inline/bold-tool.component';\nimport { ItalicTool } from './tools/inline/italic-tool.component';\nimport { UnderlineTool } from './tools/inline/underline-tool.component';\nimport { CapitalizeTool } from './tools/inline/capitalize-tool.component';\nimport { TextColorTool } from './tools/inline/text-color-tool.component';\nimport { TextBackgroundColorTool } from './tools/inline/text-background-color-tool.component';\nimport { TextTypeTool } from './tools/paragraph/text-type-tool.component';\nimport { frI18nDictionnary } from './tools/utils/i18n/fr-i18n.component';\nimport { enI18nDictionnary } from './tools/utils/i18n/en-i18n.component';\nimport { TextAlignTool } from './tools/paragraph/text-align-tool.component';\nimport { UnorderedListTool } from './tools/paragraph/unordered-list-tool.component';\nimport { OrderedListTool } from './tools/paragraph/ordered-list-tool.component';\nimport { QuoteTool } from './tools/paragraph/quote-tool.component';\nimport { LinkTool } from './tools/inline/link-tool.component';\nimport { IndentTool } from './tools/paragraph/indent-tool.component';\nimport { OutdentTool } from './tools/paragraph/outdent-tool.component';\nimport { textSizeTool } from './tools/inline/text-size-tool.component';\nimport { CodeEditTool } from './tools/paragraph/code-edit-tool.component';\nimport { UndoTool } from './tools/paragraph/undo-tool.component';\nimport { RedoTool } from './tools/paragraph/redo-tool.component';\nimport { isTextEditionTool, setIsTextEditionTool } from './tools/utils/editorjs-tool.component';\nimport { EditorJSConversionService } from './tools/utils/editorjs-conversion.service';\nimport { EditorJSTranslationService } from './tools/utils/editorjs-translation.service';\nimport { onEditList, setlistApiEditor } from './tools/paragraph/tool-type/paragraph-style-tool.component';\n\n@Component({\n selector: 'wb-editorjs',\n templateUrl: './editorjs.component.html',\n})\nexport class EditorJsComponent implements OnInit, OnDestroy {\n @Output() contentChange = new EventEmitter();\n\n @Input() content = '';\n\n @Input() placeholder: string;\n\n @Input() position: 'top' | 'bottom' = 'bottom';\n\n editor: any;\n\n uuid = uuid();\n\n timeoutHandle = null;\n\n timeoutTextEditionHandle = null;\n\n onChangeTimeoutHandle = null;\n\n editorInitialized: boolean = false;\n\n wrapperTags = 'h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote';\n\n constructor(\n private translateService: TranslateService,\n private editorJSConversionService: EditorJSConversionService,\n private editorJSTranslationService: EditorJSTranslationService\n ) {}\n\n async ngOnInit(): Promise<void> {\n this.handleDefaultContentTranslation();\n this.editor = new EditorJS({\n holder: 'editorJs-' + this.uuid,\n tools: {\n textType: TextTypeTool,\n textSize: textSizeTool,\n undo: UndoTool,\n redo: RedoTool,\n bold: BoldTool,\n italic: ItalicTool,\n underline: UnderlineTool,\n strike: StrikeTool,\n capitalize: CapitalizeTool,\n subscript: SubscriptTool,\n superscript: SuperscriptTool,\n textColor: TextColorTool,\n textBackgroundColor: TextBackgroundColorTool,\n link: LinkTool,\n quote: QuoteTool,\n textAlign: TextAlignTool,\n orderedList: OrderedListTool,\n unorderedList: UnorderedListTool,\n indent: IndentTool,\n outdent: OutdentTool,\n codeEdit: CodeEditTool,\n paragraph: {\n inlineToolbar: [\n 'textType',\n 'textSize',\n 'undo',\n 'redo',\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'capitalize',\n 'subscript',\n 'superscript',\n 'textColor',\n 'textBackgroundColor',\n 'link',\n 'quote',\n 'textAlign',\n 'orderedList',\n 'unorderedList',\n 'indent',\n 'outdent',\n 'codeEdit',\n ],\n },\n },\n placeholder: this.placeholder,\n autofocus: false,\n onChange: (api, event) => {\n clearTimeout(this.onChangeTimeoutHandle);\n this.onChangeTimeoutHandle = setTimeout(() => {\n this.contentChanged(api, event);\n }, 200);\n },\n i18n: this.getI18nDictionnary(),\n });\n try {\n await this.editor.isReady;\n this.editorJSTranslationService.setDictionnary(this.getI18nDictionnary());\n this.editorJSConversionService.convert(this.content).then((content) => {\n this.content = content;\n this.applyContent();\n this.checkSingleChild();\n const editorElement = document.getElementById('editorJs-' + this.uuid);\n editorElement.addEventListener('focusin', () => {\n setlistApiEditor(this.editor, editorElement);\n });\n });\n } catch (reason) {\n console.error(`Editor.js initialization failed because of ${reason}`);\n }\n }\n\n ngOnDestroy(): void {\n const editorName = 'editorJs-' + this.uuid;\n this.deleteSavedEditorContent(editorName);\n this.editor.destroy();\n }\n\n handleDefaultContentTranslation() {\n this.content = /^wb\\./.test(this.content) ? this.translateService.instant(this.content) : this.content;\n }\n\n contentChanged(api, event) {\n if (this.editor) {\n // added timeout here to prevent empty output on paste\n // see issue https://github.com/codex-team/editor.js/issues/1755\n setTimeout(() => {\n this.checkSingleChild();\n this.checkWrapper();\n this.editor\n .save()\n .then(() => {\n this.content = this.getEditorContent();\n if (!this.editorInitialized) {\n this.handleSaveEditor(this.content, this.uuid);\n this.editorInitialized = true;\n } else {\n this.saveEditorContent(this.content);\n }\n this.contentChange.emit(this.content);\n })\n .catch((error) => {\n console.error('Saving EditorJS content failed: ', error);\n });\n }, 200);\n }\n }\n\n private checkSingleChild() {\n let currentEditor = document.querySelectorAll('#editorJs-' + this.uuid)[0];\n let singleBlock = currentEditor.querySelectorAll('.codex-editor__redactor .ce-block:only-child');\n let toolbar = currentEditor.querySelectorAll('.ce-toolbar__actions')[0];\n if (singleBlock.length === 1) {\n if (!toolbar.classList.contains('tools-hidden')) {\n toolbar.classList.add('tools-hidden');\n }\n } else {\n if (toolbar.classList.contains('tools-hidden')) {\n toolbar.classList.remove('tools-hidden');\n }\n }\n }\n\n private checkWrapper() {\n let currentEditor = document.querySelector('#editorJs-' + this.uuid);\n let editorBlocks = currentEditor.querySelectorAll('.codex-editor__redactor .ce-paragraph');\n if (editorBlocks.length === 1 && (<HTMLElement>editorBlocks[0]).innerText.length === 0) {\n return;\n }\n editorBlocks.forEach((block) => {\n if (block.childElementCount !== 1 || !this.hasWrapper(block)) {\n let selection = this.getSelection();\n let selectedAnchorNode = selection.anchorNode;\n let selectedFocusNode = selection.focusNode;\n let anchorOffset = selection.anchorOffset;\n let focusOffset = selection.focusOffset;\n let paragraph = document.createElement('P');\n paragraph.innerHTML = block.innerHTML;\n block.innerHTML = '';\n block.appendChild(paragraph);\n if (selectedAnchorNode && selectedFocusNode) {\n var range = document.createRange();\n var node = paragraph.childNodes[0] ? paragraph.childNodes[0] : paragraph;\n var tmpAnchorOffset = paragraph.childNodes[0] ? anchorOffset : 0;\n var tmpFocusOffset = paragraph.childNodes[0] ? focusOffset : 0;\n range.setStart(node, tmpAnchorOffset);\n range.setEnd(node, tmpFocusOffset);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n });\n }\n\n private hasWrapper(block: Element) {\n let wrapper = block.children[0];\n if (wrapper && this.wrapperTags.split(',').indexOf(wrapper.tagName.toLowerCase()) > -1) {\n return true;\n }\n\n return false;\n }\n\n private getEditorContent() {\n let currentEditor = document.querySelectorAll('#editorJs-' + this.uuid)[0];\n let editorBlocks = currentEditor.querySelectorAll('.codex-editor__redactor .ce-paragraph');\n let content = '';\n editorBlocks.forEach((block) => {\n let closingTag = '</' + block.children[0]?.tagName.toLowerCase() + '>';\n let regexp = /((<\\/)\\w+(>))(?![\\s\\S]*((<\\/)\\w+(>))[\\s\\S]*$)/i;\n let lastContentClosingTag = content.match(regexp) ? content.match(regexp)[0] : '';\n if (\n (block.children[0]?.tagName.toLowerCase() === 'ul' || block.children[0]?.tagName.toLowerCase() === 'ol') &&\n lastContentClosingTag === closingTag\n ) {\n content = content.substring(0, content.length - closingTag.length);\n content += block.innerHTML.substring(closingTag.replace('/', '').length, block.innerHTML.length);\n } else {\n content += block.innerHTML;\n }\n });\n return content;\n }\n\n private applyContent() {\n let contentElement = document.createElement('div');\n let currentEditor = document.querySelectorAll('#editorJs-' + this.uuid)[0];\n let paragraph = currentEditor.querySelectorAll('.ce-paragraph');\n contentElement.innerHTML = this.content;\n let i = 0;\n while (contentElement.firstElementChild) {\n if (\n contentElement.firstElementChild.tagName.toLowerCase() === 'ul' ||\n contentElement.firstElementChild.tagName.toLowerCase() === 'ol'\n ) {\n setlistApiEditor(this.editor.api, currentEditor);\n while (contentElement.firstElementChild.firstElementChild) {\n let container = document.createElement(contentElement.firstElementChild.tagName);\n container.appendChild(contentElement.firstElementChild.firstElementChild.cloneNode(true));\n if (i >= paragraph.length) {\n this.editor.blocks.insert();\n let tmpParagraph = currentEditor.querySelectorAll('.ce-paragraph');\n tmpParagraph[tmpParagraph.length - 1].innerHTML = '';\n tmpParagraph[tmpParagraph.length - 1].appendChild(container);\n tmpParagraph[tmpParagraph.length - 1].addEventListener('keydown', onEditList, true);\n } else {\n paragraph[i].innerHTML = '';\n paragraph[i].appendChild(container);\n paragraph[i].addEventListener('keydown', onEditList, true);\n }\n contentElement.firstElementChild.firstElementChild.remove();\n ++i;\n }\n } else {\n if (i >= paragraph.length) {\n this.editor.blocks.insert();\n let tmpParagraph = currentEditor.querySelectorAll('.ce-paragraph');\n tmpParagraph[tmpParagraph.length - 1].innerHTML = '';\n tmpParagraph[tmpParagraph.length - 1].appendChild(contentElement.firstElementChild.cloneNode(true));\n } else {\n paragraph[i].innerHTML = '';\n paragraph[i].appendChild(contentElement.firstElementChild.cloneNode(true));\n }\n ++i;\n }\n contentElement.firstElementChild.remove();\n }\n }\n\n private getI18nDictionnary(): I18nConfig {\n return this.translateService.currentLang === 'fr' ? frI18nDictionnary : enI18nDictionnary;\n }\n\n private getSelection(): Selection {\n if (window?.getSelection) {\n return window.getSelection();\n } else if (document?.getSelection) {\n return document.getSelection();\n } else if (document && (document as any).selection) {\n return (document as any).selection.createRange().text;\n }\n return null;\n }\n\n private saveEditorContent(data: string) {\n if (!isTextEditionTool) {\n clearTimeout(this.timeoutHandle);\n this.timeoutHandle = setTimeout(() => {\n this.handleSaveEditor(data, this.uuid);\n }, 2000);\n } else {\n clearTimeout(this.timeoutTextEditionHandle);\n this.timeoutTextEditionHandle = setTimeout(() => {\n setIsTextEditionTool(false);\n }, 2000);\n }\n }\n\n private handleSaveEditor(data: string, uuid: string) {\n const editorName = 'editorJs-' + uuid;\n let savedData = this.getSavedEditorContent(editorName);\n let savedDataIndex = this.getSavedEditorContent(editorName + '-index')\n ? parseInt(this.getSavedEditorContent(editorName + '-index'))\n : -1;\n if (!this.editorInitialized) {\n savedData = null;\n savedDataIndex = -1;\n }\n let parsedSavedData: Array<string> = [];\n if (savedData) {\n parsedSavedData = JSON.parse(savedData);\n }\n parsedSavedData.push(data);\n ++savedDataIndex;\n while (parsedSavedData.length > 15) {\n parsedSavedData.shift();\n --savedDataIndex;\n }\n this.setSavedEditorContent(editorName, JSON.stringify(parsedSavedData));\n this.setSavedEditorContent(editorName + '-index', savedDataIndex.toString());\n }\n\n private getSavedEditorContent(name: string) {\n return localStorage.getItem(name);\n }\n\n private setSavedEditorContent(name: string, value: string) {\n localStorage.setItem(name, value);\n }\n\n private deleteSavedEditorContent(name) {\n localStorage.removeItem(name);\n localStorage.removeItem(name + '-index');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StructureToolsComponent } from './structure-tools/structure-tools.component';\nimport { SharedPipesModule } from '../pipes/shared-pipes.module';\nimport { StructureConfigComponent } from './structure-config/structure-config.component';\nimport { StructureConfigInputComponent } from './structure-config-input/structure-config-input.component';\nimport { StructureConfigCheckboxComponent } from './structure-config-checkbox/structure-config-checkbox.component';\nimport { QuillComponent } from './quill/quill.component';\nimport { QuillModule } from 'ngx-quill';\nimport { SharedDirectivesModule } from '../directives/shared-directives.module';\nimport { LoaderComponent } from './loader/loader.component';\nimport { StructureSelectComponent } from './structure-select/structure-select.component';\nimport { StructureConfigFontComponent } from './structure-config-font/structure-config-font.component';\nimport { StarComponent } from './star/star.component';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { StructureSearchProductComponent } from './structure-search-product/structure-search-product.component';\nimport { StructureConfigExtendedInputComponent } from './structure-config-extend-input/structure-config-extended-input.component';\nimport { SmallLoaderComponent } from './small-loader/small-loader.component';\nimport { StructureConfigPaymentComponent } from './structure-config-payment/structure-config-payment.component';\nimport { StructureAmplifySearchProductComponent } from './structure-amplify-search-product/structure-amplify-search-product.component';\nimport { StructureAmplifySearchCategoryComponent } from './structure-amplify-search-category/structure-amplify-search-category.component';\nimport { FaqComponent } from './faq/faq.component';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EditorJsComponent } from './editorjs/editorjs.component';\n\nconst components = [\n StructureToolsComponent,\n StructureConfigComponent,\n StructureConfigInputComponent,\n StructureConfigCheckboxComponent,\n StructureConfigFontComponent,\n StructureConfigPaymentComponent,\n StructureSelectComponent,\n StructureSearchProductComponent,\n StructureConfigExtendedInputComponent,\n StructureAmplifySearchProductComponent,\n StructureAmplifySearchCategoryComponent,\n LoaderComponent,\n SmallLoaderComponent,\n StarComponent,\n QuillComponent,\n FaqComponent,\n EditorJsComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n NgScrollbarModule,\n FormsModule,\n NwbAllModule,\n SharedPipesModule,\n SharedDirectivesModule,\n QuillModule,\n TranslateModule.forChild(),\n ],\n entryComponents: [],\n declarations: components,\n exports: components,\n})\nexport class SharedComponentsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { SharedComponentsModule } from './components/shared-components.module';\nimport { SharedPipesModule } from './pipes/shared-pipes.module';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { SharedDirectivesModule } from './directives/shared-directives.module';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n DragDropModule,\n NwbAllModule,\n SharedComponentsModule,\n SharedPipesModule,\n SharedDirectivesModule,\n TranslateModule.forChild(),\n ],\n providers: [],\n exports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n DragDropModule,\n SharedComponentsModule,\n SharedPipesModule,\n SharedDirectivesModule,\n ],\n})\nexport class SharedModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { SeparatorSimpleService } from '../../../services/blocks/separator/separator-simple.service';\nimport { SeparatorSimpleDto } from '../../../dtos/blocks/separators/separator-simple.dto';\nimport { StructuresComponent } from '../../structures.component';\n\n@Component({\n selector: SeparatorSimpleService.selector(),\n templateUrl: './separator-simple.component.html'\n})\nexport class SeparatorSimpleComponent extends StructuresComponent<SeparatorSimpleDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(SeparatorSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CodeJavascriptDto } from '../../../dtos/blocks/code/code-javascript.dto';\nimport { CodeJavascriptService } from '../../../services/blocks/code/code-javascript.service';\nimport { StructuresComponent } from '../../structures.component';\n\n@Component({\n selector: CodeJavascriptService.selector(),\n templateUrl: './code-javascript.component.html'\n})\nexport class CodeJavascriptComponent extends StructuresComponent<CodeJavascriptDto> implements OnInit {\n language = 'javascript';\n\n theme = 'vs-light';\n\n editorOptions = {};\n\n constructor() {\n super();\n this.setComponentService(CodeJavascriptService);\n }\n\n ngOnInit() {\n this.editorOptions = { theme: this.theme, language: this.language };\n }\n\n setContent() {\n this.persist();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CodeHtmlService } from '../../../services/blocks/code/code-html.service';\nimport { CodeHtmlDto } from '../../../dtos/blocks/code/code-html.dto';\nimport { StructuresComponent } from '../../structures.component';\n\n@Component({\n selector: CodeHtmlService.selector(),\n templateUrl: './code-html.component.html'\n})\nexport class CodeHtmlComponent extends StructuresComponent<CodeHtmlDto> implements OnInit {\n language = 'html';\n\n theme = 'vs-light';\n editorOptions = {};\n\n constructor() {\n super();\n this.setComponentService(CodeHtmlService);\n }\n\n ngOnInit() {\n this.editorOptions = { theme: this.theme, language: this.language };\n }\n\n setContent() {\n this.persist();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CodeStylesheetDto } from '../../../dtos/blocks/code/code-stylesheet.dto';\nimport { CodeStylesheetService } from '../../../services/blocks/code/code-stylesheet.service';\nimport { StructuresComponent } from '../../structures.component';\n\n@Component({\n selector: CodeStylesheetService.selector(),\n templateUrl: './code-stylesheet.component.html'\n})\nexport class CodeStylesheetComponent extends StructuresComponent<CodeStylesheetDto> implements OnInit {\n language = 'css';\n\n theme = 'vs-light';\n editorOptions = {};\n\n constructor() {\n super();\n this.setComponentService(CodeStylesheetService);\n }\n\n ngOnInit() {\n this.editorOptions = { theme: this.theme, language: this.language };\n }\n\n setContent() {\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH, FORM_NAME_SLIDER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { SlidersLeftnavDto } from '../../../dtos/blocks/sliders/sliders-leftnav.dto';\nimport { SlidersLeftnavService } from '../../../services/blocks/sliders/sliders-leftnav.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: SlidersLeftnavService.selector(),\n templateUrl: './slider-leftnav.component.html'\n})\nexport class SliderLeftnavComponent extends StructuresComponent<SlidersLeftnavDto> implements OnInit, OnDestroy {\n selectedTab: number | null = null;\n\n showEmptyImage = true;\n\n selectedKey = '';\n\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(SlidersLeftnavService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock.slider.length) {\n this.showEmptyImage = false;\n this.selectedTab = 0;\n }\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else {\n this.addASliderWithMedia(media);\n }\n });\n }\n\n showSlide(key) {\n if (this.selectedTab === key && !this.showEmptyImage) {\n return;\n }\n\n this.showEmptyImage = false;\n this.selectedTab = key;\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.slider.push(imageMediaDto);\n\n this.selectedTab = this.contentBlock.slider.length - 1;\n this.showEmptyImage = false;\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock.slider[this.selectedKey];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock.slider[this.selectedKey] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock.slider;\n delete arrayToShorten[key];\n\n this.contentBlock.slider = arrayToShorten.filter(function(item) {\n return item !== undefined;\n });\n\n if (this.contentBlock.slider.length > 0 && this.showEmptyImage === false) {\n this.selectedTab = 0;\n } else {\n this.selectedTab = null;\n this.showEmptyImage = true;\n }\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock.slider, event.previousIndex, event.currentIndex);\n this.selectedTab = event.currentIndex;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH, FORM_NAME_SLIDER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { SlidersImagerightDto } from '../../../dtos/blocks/sliders/sliders-imageright.dto';\nimport { SlidersImagerightService } from '../../../services/blocks/sliders/sliders-imageright.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: SlidersImagerightService.selector(),\n templateUrl: './slider-imageright.component.html'\n})\nexport class SliderImagerightComponent extends StructuresComponent<SlidersImagerightDto> implements OnInit, OnDestroy {\n selectedTab: number | null = null;\n\n showEmptyImage = true;\n\n positionMedia = '';\n\n selectedKey = '';\n\n sizes1 = { small: '600x555', medium: '600x666', large: '600x777' };\n sizes2 = { small: '1370x550', medium: '1370x652', large: '1370x760' };\n\n constructor() {\n super();\n this.setComponentService(SlidersImagerightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock.slider.length) {\n this.showEmptyImage = false;\n this.selectedTab = 0;\n }\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else if (this.positionMedia === 'top') {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n this.contentBlock.image = imageMediaDto;\n this.persist();\n } else {\n this.addASliderWithMedia(media);\n }\n this.positionMedia = '';\n });\n }\n\n getMediaForRightTopSlider() {\n this.positionMedia = 'top';\n this.getMedia('top');\n }\n\n showSlide(key) {\n if (this.selectedTab === key && !this.showEmptyImage) {\n return;\n }\n\n this.showEmptyImage = false;\n this.selectedTab = key;\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.slider.push(imageMediaDto);\n\n this.selectedTab = this.contentBlock.slider.length - 1;\n this.showEmptyImage = false;\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock.slider[this.selectedKey];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock.slider[this.selectedKey] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock.slider;\n delete arrayToShorten[key];\n\n this.contentBlock.slider = arrayToShorten.filter(function(item) {\n return item !== undefined;\n });\n\n if (this.contentBlock.slider.length > 0 && this.showEmptyImage === false) {\n this.selectedTab = 0;\n } else {\n this.selectedTab = null;\n this.showEmptyImage = true;\n }\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock.slider, event.previousIndex, event.currentIndex);\n this.selectedTab = event.currentIndex;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH, FORM_NAME_SLIDER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { SlidersDoubleImagerightDto } from '../../../dtos/blocks/sliders/sliders-double-imageright.dto';\nimport { SlidersDoubleImagerightService } from '../../../services/blocks/sliders/sliders-double-imageright.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: SlidersDoubleImagerightService.selector(),\n templateUrl: './slider-double-imageright.component.html'\n})\nexport class SliderDoubleImagerightComponent extends StructuresComponent<SlidersDoubleImagerightDto> implements OnInit, OnDestroy {\n selectedTab: number | null = null;\n\n showEmptyImage = true;\n\n positionMedia = '';\n\n selectedKey = '';\n\n sizes1 = { small: '1370x550', medium: '1370x652', large: '1370x760' };\n sizes2 = { small: '620x275', medium: '620x333', large: '620x390' };\n\n constructor() {\n super();\n this.setComponentService(SlidersDoubleImagerightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock.slider.length) {\n this.showEmptyImage = false;\n this.selectedTab = 0;\n }\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else if (this.positionMedia === 'top') {\n this.contentBlock.image = imageMediaDto;\n this.persist();\n } else if (this.positionMedia === 'bottom') {\n this.contentBlock.image_bottom = imageMediaDto;\n this.persist();\n } else {\n this.addASliderWithMedia(imageMediaDto);\n }\n this.positionMedia = '';\n });\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock.slider[this.selectedKey];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock.slider[this.selectedKey] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n getMediaForRightTopSlider() {\n this.positionMedia = 'top';\n this.getMedia('top');\n }\n\n getMediaForRightBottomSlider() {\n this.positionMedia = 'bottom';\n this.getMedia('bottom');\n }\n\n showSlide(key) {\n if (this.selectedTab === key && !this.showEmptyImage) {\n return;\n }\n\n this.showEmptyImage = false;\n this.selectedTab = key;\n }\n\n addASliderWithMedia(imageMediaDto) {\n this.contentBlock.slider.push(imageMediaDto);\n\n this.selectedTab = this.contentBlock.slider.length - 1;\n this.showEmptyImage = false;\n\n this.persist();\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock.slider;\n delete arrayToShorten[key];\n\n this.contentBlock.slider = arrayToShorten.filter(function(item) {\n return item !== undefined;\n });\n\n if (this.contentBlock.slider.length > 0 && this.showEmptyImage === false) {\n this.selectedTab = 0;\n } else {\n this.selectedTab = null;\n this.showEmptyImage = true;\n }\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock.slider, event.previousIndex, event.currentIndex);\n this.selectedTab = event.currentIndex;\n this.persist();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class YoutubeService {\n youTubeGetID(url) {\n const rx = /^.*(?:(?:youtu\\.be\\/|v\\/|vi\\/|u\\/\\w\\/|embed\\/)|(?:(?:watch)?\\?v(?:i)?=|\\&v(?:i)?=))([^#\\&\\?]+).*/;\n\n let id = url.match(rx);\n if (id === null) {\n return null;\n }\n if (id.length && id[1] && id[1] !== '') {\n return id[1];\n }\n\n url = url.replace(/(>|<)/gi, '').split(/(vi\\/|v=|\\/v\\/|youtu\\.be\\/|\\/embed\\/)/);\n if (url[2] !== undefined) {\n id = url[2].split(/[^0-9a-z_\\-]/i);\n id = id[0];\n } else {\n id = url;\n }\n return id;\n }\n\n getFullLinkFromUrlAndOption(link, autoplay, mute, loop, control) {\n const youtubeId = this.youTubeGetID(link);\n if (youtubeId === null) {\n return '';\n }\n\n return (\n 'https://www.youtube.com/embed/' +\n youtubeId +\n '?version=3&showinfo=0&rel=0&modestbranding=1&fs=0&autohide=2' +\n '&autoplay=' +\n (autoplay ? '1' : '0') +\n '&mute=' +\n (mute ? '1' : '0') +\n '&loop=' +\n (loop ? '1' + '&playlist=' + this.youTubeGetID(link) : '0') +\n '&controls=' +\n (control ? '1' : '0')\n );\n }\n\n isURL(str) {\n try {\n return new URL(str);\n } catch (_) {\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VimeoService {\n vimeoGetID(url) {\n return url.replace('https://vimeo.com/', '');\n }\n\n getFullLinkFromUrlAndOption(link, autoplay, mute, loop, control) {\n return (\n 'https://player.vimeo.com/video/' +\n this.vimeoGetID(link) +\n '?' +\n '&autoplay=' +\n (autoplay ? '1' : '0') +\n '&muted=' +\n (mute ? '1' : '0') +\n '&loop=' +\n (loop ? '1' : '0') +\n '&controls=' +\n (control ? '1' : '0')\n );\n }\n\n isURL(str) {\n try {\n return new URL(str);\n } catch (_) {\n return false;\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VideosTxtService } from '../../../services/blocks/videos/videos-txt.service';\nimport { VideosTxtDto } from '../../../dtos/blocks/videos/videos-txt.dto';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { TYPE_VIMEO, TYPE_YOUTUBE } from '../../../dtos/blocks/videos/videos-simple.dto';\n\n@Component({\n selector: VideosTxtService.selector(),\n templateUrl: './videos-txt.component.html'\n})\nexport class VideosTxtComponent extends StructuresComponent<VideosTxtDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(VideosTxtService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VideosTxtDto } from '../../../dtos/blocks/videos/videos-txt.dto';\nimport { TYPE_VIMEO, TYPE_YOUTUBE } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { VideosTxtContentService } from '../../../services/blocks/videos/videos-txt-content.service';\n\n@Component({\n selector: VideosTxtContentService.selector(),\n templateUrl: './videos-txt-content.component.html'\n})\nexport class VideosTxtContentComponent extends StructuresComponent<VideosTxtDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(VideosTxtContentService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_VIMEO, TYPE_YOUTUBE, VideosSimpleDto } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { VideosSimpleService } from '../../../services/blocks/videos/videos-simple.service';\n\n@Component({\n selector: VideosSimpleService.selector(),\n templateUrl: './videos-simple.component.html'\n})\nexport class VideosSimpleComponent extends StructuresComponent<VideosSimpleDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(VideosSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VideosTxtDto } from '../../../dtos/blocks/videos/videos-txt.dto';\nimport { TYPE_VIMEO, TYPE_YOUTUBE } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { VideosTxtLeftService } from '../../../services/blocks/videos/videos-txt-left.service';\n\n@Component({\n selector: VideosTxtLeftService.selector(),\n templateUrl: './videos-txt-left.component.html'\n})\nexport class VideosTxtLeftComponent extends StructuresComponent<VideosTxtDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(VideosTxtLeftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n this.contentBlock.autoplay,\n this.contentBlock.mute,\n this.contentBlock.loop,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_VIMEO, TYPE_YOUTUBE } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { LaunchVideosButtonDto } from '../../../dtos/blocks/launch-videos/launch-videos-button.dto';\nimport { LaunchVideosButtonService } from '../../../services/blocks/launch-videos/launch-videos-button.service';\n\n@Component({\n selector: LaunchVideosButtonService.selector(),\n templateUrl: './launch-videos-button.component.html'\n})\nexport class LaunchVideosButtonComponent extends StructuresComponent<LaunchVideosButtonDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n showEmptyImage = true;\n showVideo = false;\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(LaunchVideosButtonService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n\n this.image.subscribe(media => {\n this.contentBlock.image = media;\n this.showEmptyImage = false;\n this.persist();\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n true,\n this.contentBlock.mute,\n true,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n true,\n this.contentBlock.mute,\n true,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_LINK } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_VIMEO, TYPE_YOUTUBE } from '../../../dtos/blocks/videos/videos-simple.dto';\nimport { YoutubeService } from '../../../services/utils/youtube.service';\nimport { VimeoService } from '../../../services/utils/vimeo.service';\nimport { LaunchVideosButtontxtDto } from '../../../dtos/blocks/launch-videos/launch-videos-buttontxt.dto';\nimport { LaunchVideosButtontxtService } from '../../../services/blocks/launch-videos/launch-videos-buttontxt.service';\n\n@Component({\n selector: LaunchVideosButtontxtService.selector(),\n templateUrl: './launch-videos-buttontxt.component.html'\n})\nexport class LaunchVideosButtontxtComponent extends StructuresComponent<LaunchVideosButtontxtDto> implements OnInit, OnDestroy {\n urlVideo = '';\n\n videoUrlFilled = '';\n\n showEmptyImage = true;\n showVideo = false;\n\n constructor(private youtubeService: YoutubeService, private vimeoService: VimeoService) {\n super();\n this.setComponentService(LaunchVideosButtontxtService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock.link !== '') {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n }\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (this.contentBlock.link.includes(TYPE_YOUTUBE.replace('be', '')) || this.contentBlock.link.includes(TYPE_VIMEO)) {\n this.videoUrlFilled = this.contentBlock.link;\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n this.changeYoutubeCode();\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n this.changeVimeoCode();\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n } else {\n this.urlVideo = '';\n this.videoUrlFilled = this.contentBlock.link;\n }\n }\n });\n\n this.image.subscribe(media => {\n this.contentBlock.image = media;\n this.showEmptyImage = false;\n this.persist();\n });\n }\n\n changeVideoUrl() {\n if (this.videoUrlFilled.includes(TYPE_YOUTUBE.replace('be', ''))) {\n this.contentBlock.type_video = TYPE_YOUTUBE;\n if (this.youtubeService.youTubeGetID(this.videoUrlFilled) && this.youtubeService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeYoutubeCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n } else if (this.videoUrlFilled.includes(TYPE_VIMEO)) {\n this.contentBlock.type_video = TYPE_VIMEO;\n if (this.vimeoService.vimeoGetID(this.videoUrlFilled) && this.vimeoService.isURL(this.videoUrlFilled)) {\n this.contentBlock.link = this.videoUrlFilled;\n this.changeVimeoCode();\n this.setThisContentForComponent(FORM_NAME_LINK, this.videoUrlFilled);\n this.persist();\n }\n }\n }\n\n changeYoutubeCode() {\n this.urlVideo = this.youtubeService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n true,\n this.contentBlock.mute,\n true,\n this.contentBlock.control\n );\n }\n\n changeVimeoCode() {\n this.urlVideo = this.vimeoService.getFullLinkFromUrlAndOption(\n this.contentBlock.link,\n true,\n this.contentBlock.mute,\n true,\n this.contentBlock.control\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImagesBannerDto } from '../../../dtos/blocks/images/images-banner.dto';\nimport { ImagesBannerService } from '../../../services/blocks/images/images-banner.service';\nimport { FORM_NAME_IMAGE, FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: ImagesBannerService.selector(),\n templateUrl: './images-banner.component.html'\n})\nexport class ImagesBannerComponent extends StructuresComponent<ImagesBannerDto> implements OnInit, OnDestroy {\n // Variables\n showEmptyImage = true;\n\n sizes = { small: '1920x345', medium: '', large: '' };\n\n // Constructor\n constructor() {\n super();\n this.setComponentService(ImagesBannerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock[FORM_NAME_IMAGE]) {\n this.showEmptyImage = false;\n }\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(media);\n });\n }\n\n updateThisImage(imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.showEmptyImage = false;\n\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE, FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesSimpleDto } from '../../../dtos/blocks/images/images-simple.dto';\nimport { ImagesSimpleService } from '../../../services/blocks/images/images-simple.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesSimpleService.selector(),\n templateUrl: './images-simple.component.html'\n})\nexport class ImagesSimpleComponent extends StructuresComponent<ImagesSimpleDto> implements OnInit, OnDestroy {\n showEmptyImage = true;\n\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(ImagesSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock[FORM_NAME_IMAGE]) {\n this.showEmptyImage = false;\n }\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(media);\n });\n }\n\n updateThisImage(imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_IMAGE][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.showEmptyImage = false;\n\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ID,\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesDoubleDto } from '../../../dtos/blocks/images/images-double.dto';\nimport { ImagesDoubleService } from '../../../services/blocks/images/images-double.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesDoubleService.selector(),\n templateUrl: './images-double.component.html'\n})\nexport class ImagesDoubleComponent extends StructuresComponent<ImagesDoubleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes = { small: '1080x600', medium: '1080x720', large: '1080x840' };\n\n constructor() {\n super();\n this.setComponentService(ImagesDoubleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto[FORM_NAME_IMAGE_URL] = media[FORM_NAME_IMAGE_URL];\n imageMediaDto[FORM_NAME_ID] = media[FORM_NAME_ID];\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTripleDto } from '../../../dtos/blocks/images/images-triple.dto';\nimport { ImagesTripleService } from '../../../services/blocks/images/images-triple.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesTripleService.selector(),\n templateUrl: './images-triple.component.html'\n})\nexport class ImagesTripleComponent extends StructuresComponent<ImagesTripleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes = { small: '680x570', medium: '680x685', large: '680x800' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTripleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesQuadrupleDto } from '../../../dtos/blocks/images/images-quadruple.dto';\nimport { ImagesQuadrupleService } from '../../../services/blocks/images/images-quadruple.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesQuadrupleService.selector(),\n templateUrl: './images-quadruple.component.html'\n})\nexport class ImagesQuadrupleComponent extends StructuresComponent<ImagesQuadrupleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes = { small: '490x540', medium: '490x650', large: '490x755' };\n\n constructor() {\n super();\n this.setComponentService(ImagesQuadrupleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesQuadrupleLeftOneRightDto } from '../../../dtos/blocks/images/images-quadruple-left-one-right.dto';\nimport { ImagesQuadrupleLeftOneRightService } from '../../../services/blocks/images/images-quadruple-left-one-right.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesQuadrupleLeftOneRightService.selector(),\n templateUrl: './images-quadruple-left-one-right.component.html'\n})\nexport class ImagesQuadrupleLeftOneRightComponent extends StructuresComponent<ImagesQuadrupleLeftOneRightDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes1 = { small: '882x374', medium: '882x404', large: '882x429' };\n sizes2 = { small: '882x498', medium: '882x532', large: '882x564' };\n sizes3 = { small: '429x498', medium: '429x532', large: '429x564' };\n sizes4 = { small: '615x865', medium: '615x900', large: '615x961' };\n sizes5 = { small: '429x374', medium: '429x404', large: '429x429' };\n\n constructor() {\n super();\n this.setComponentService(ImagesQuadrupleLeftOneRightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesBigAndDoubleDto } from '../../../dtos/blocks/images/images-big-and-double.dto';\nimport { ImagesBigAndDoubleService } from '../../../services/blocks/images/images-big-and-double.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesBigAndDoubleService.selector(),\n templateUrl: './images-big-and-double.component.html'\n})\nexport class ImagesBigAndDoubleComponent extends StructuresComponent<ImagesBigAndDoubleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes1 = { small: '1270x530', medium: '1270x635', large: '1270x740' };\n sizes2 = { small: '700x280', medium: '700x340', large: '700x400' };\n\n constructor() {\n super();\n this.setComponentService(ImagesBigAndDoubleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesBigsAndDoubleMiddleDto } from '../../../dtos/blocks/images/images-bigs-and-double-middle.dto';\nimport { ImagesBigsAndDoubleMiddleService } from '../../../services/blocks/images/images-bigs-and-double-middle.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: ImagesBigsAndDoubleMiddleService.selector(),\n templateUrl: './images-bigs-and-double-middle.component.html'\n})\nexport class ImagesBigsAndDoubleMiddleComponent extends StructuresComponent<ImagesBigsAndDoubleMiddleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n sizes1 = { small: '700x585', medium: '700x700', large: '700x815' };\n sizes2 = { small: '700x280', medium: '700x340', large: '700x400' };\n\n constructor() {\n super();\n this.setComponentService(ImagesBigsAndDoubleMiddleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { ImageMediaDto } from '../medias/image/image-media.dto';\nimport { FORM_NAME_IMAGE, FORM_NAME_TITLE } from '../../forms/forms.dto';\n\nexport class FourImagesTitleElementDto {\n [FORM_NAME_IMAGE] = new ImageMediaDto();\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.40';\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { FourImagesTitleDto } from '../../../dtos/blocks/images/four-images-title.dto';\nimport { FourImagesTitleService } from '../../../services/blocks/images/four-images-title.service';\nimport { FourImagesTitleElementDto } from '../../../dtos/configs/images/four-images-title-element.dto';\nimport { FORM_NAME_ELEMENTS, FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { TranslateBlockService } from '../../../services/utils/translate-block.service';\n\n@Component({\n selector: FourImagesTitleService.selector(),\n templateUrl: './four-images-title.component.html',\n})\nexport class FourImagesTitleComponent extends StructuresComponent<FourImagesTitleDto> implements OnInit, OnDestroy {\n sizes = { small: '458x412', medium: '458x435', large: '458x456' };\n\n selectedKey = '';\n\n constructor(private translateBlockService: TranslateBlockService) {\n super();\n this.setComponentService(FourImagesTitleService);\n }\n\n ngOnInit() {\n if (this.contents.block.init === false && this.contents.block.elements.length === 0) {\n for (var i = 0; i < 4; ++i) {\n const newElement = new FourImagesTitleElementDto();\n this.translateBlockService.translateProperties(newElement);\n this.contents.block.elements.push(newElement);\n }\n }\n this.contents.block.init = true;\n this.subscribeToImage();\n super.ngOnInit();\n this.persist();\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n this.contentBlock[FORM_NAME_ELEMENTS][this.selectedKey][FORM_NAME_IMAGE] = imageMediaDto;\n this.selectedKey = '';\n this.persist();\n });\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { TwoImagesTitleTextDto } from '../../../dtos/blocks/images/two-images-title-text.dto';\nimport { TwoImagesTitleTextService } from '../../../services/blocks/images/two-images-title-text.service';\nimport { FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_RIGHT } from '../../../dtos/forms/forms.dto';\n\n@Component({\n selector: TwoImagesTitleTextService.selector(),\n templateUrl: './two-images-title-text.component.html',\n})\nexport class TwoImagesTitleTextComponent extends StructuresComponent<TwoImagesTitleTextDto> implements OnInit, OnDestroy {\n sizes = { small: '980x490', medium: '980x618', large: '980x710' };\n\n selectedKey = '';\n\n constructor() {\n super();\n this.setComponentService(TwoImagesTitleTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contents.block.init === false) {\n this.contents.block.image_left = new ImageMediaDto();\n this.contents.block.image_right = new ImageMediaDto();\n }\n this.contents.block.init = true;\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n if (this.selectedKey === '0') {\n this.contentBlock[FORM_NAME_IMAGE_LEFT] = imageMediaDto;\n } else {\n this.contentBlock[FORM_NAME_IMAGE_RIGHT] = imageMediaDto;\n }\n this.selectedKey = '';\n this.persist();\n });\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsSimpleDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-simple.dto';\nimport { TextBackgroundsSimpleService } from '../../../services/blocks/text-backgrounds/text-backgrounds-simple.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: TextBackgroundsSimpleService.selector(),\n templateUrl: './text-backgrounds-simple.component.html'\n})\nexport class TextBackgroundsSimpleComponent extends StructuresComponent<TextBackgroundsSimpleDto> implements OnInit, OnDestroy {\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(TextBackgroundsSimpleService);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n this.contentBlock.image = media;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsWithTxtDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-with-txt.dto';\nimport { TextBackgroundsWithTxtService } from '../../../services/blocks/text-backgrounds/text-backgrounds-with-txt.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\n\n@Component({\n selector: TextBackgroundsWithTxtService.selector(),\n templateUrl: './text-backgrounds-with-txt.component.html'\n})\nexport class TextBackgroundsWithTxtComponent extends StructuresComponent<TextBackgroundsWithTxtDto> implements OnInit, OnDestroy {\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(TextBackgroundsWithTxtService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n this.contentBlock.image = media;\n this.persist();\n });\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImagesTextsBigLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-big-left-text-right.dto';\nimport { ImagesTextsBigLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-big-left-text-right.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: ImagesTextsBigLeftTextRightService.selector(),\n templateUrl: './images-texts-big-left-text-right.component.html'\n})\nexport class ImagesTextsBigLeftTextRightComponent extends StructuresComponent<ImagesTextsBigLeftTextRightDto> implements OnInit, OnDestroy {\n sizes = { small: '1300x535', medium: '1300x645', large: '1300x750' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsBigLeftTextRightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImagesTextsBigLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-big-left-text-right.dto';\nimport { ImagesTextsBigRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-big-right-text-left.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: ImagesTextsBigRightTextLeftService.selector(),\n templateUrl: './images-texts-big-right-text-left.component.html'\n})\nexport class ImagesTextsBigRightTextLeftComponent extends StructuresComponent<ImagesTextsBigLeftTextRightDto> implements OnInit, OnDestroy {\n sizes = { small: '1300x535', medium: '1300x645', large: '1300x750' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsBigRightTextLeftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-left-text-right.dto';\nimport { ImagesTextsLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-left-text-right.service';\n\n@Component({\n selector: ImagesTextsLeftTextRightService.selector(),\n templateUrl: './images-texts-left-text-right.component.html'\n})\nexport class ImagesTextsLeftTextRightComponent extends StructuresComponent<ImagesTextsLeftTextRightDto> implements OnInit, OnDestroy {\n sizes = { small: '1000x550', medium: '1000x660', large: '1000x770' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsLeftTextRightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsRightTextLeftDto } from '../../../dtos/blocks/images-texts/images-texts-right-text-left.dto';\nimport { ImagesTextsRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-right-text-left.service';\n\n@Component({\n selector: ImagesTextsRightTextLeftService.selector(),\n templateUrl: './images-texts-right-text-left.component.html'\n})\nexport class ImagesTextsRightTextLeftComponent extends StructuresComponent<ImagesTextsRightTextLeftDto> implements OnInit, OnDestroy {\n sizes = { small: '1000x550', medium: '1000x660', large: '1000x770' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsRightTextLeftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_RIGHT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsOneTextOneDto } from '../../../dtos/blocks/images-texts/images-texts-one-text-one.dto';\nimport { ImagesTextsOneTextOneService } from '../../../services/blocks/images-texts/images-texts-one-text-one.service';\n\n@Component({\n selector: ImagesTextsOneTextOneService.selector(),\n templateUrl: './images-texts-one-text-one.component.html'\n})\nexport class ImagesTextsOneTextOneComponent extends StructuresComponent<ImagesTextsOneTextOneDto> implements OnInit, OnDestroy {\n currentImage = FORM_NAME_IMAGE_RIGHT;\n\n sizes = { small: '655x550', medium: '655x660', large: '655x770' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsOneTextOneService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[this.currentImage] = imageMediaDto;\n this.persist();\n });\n }\n\n getMediaFor(key) {\n this.currentImage = key;\n this.getMedia();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsTextOneTextDto } from '../../../dtos/blocks/images-texts/images-texts-text-one-text.dto';\nimport { ImagesTextsTextOneTextService } from '../../../services/blocks/images-texts/images-texts-text-one-text.service';\n\n@Component({\n selector: ImagesTextsTextOneTextService.selector(),\n templateUrl: './images-texts-text-one-text.component.html'\n})\nexport class ImagesTextsTextOneTextComponent extends StructuresComponent<ImagesTextsTextOneTextDto> implements OnInit, OnDestroy {\n sizes = { small: '655x550', medium: '655x660', large: '655x770' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsTextOneTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsSmallLeftTextRightDto } from '../../../dtos/blocks/images-texts/images-texts-small-left-text-right.dto';\nimport { ImagesTextsSmallLeftTextRightService } from '../../../services/blocks/images-texts/images-texts-small-left-text-right.service';\n\n@Component({\n selector: ImagesTextsSmallLeftTextRightService.selector(),\n templateUrl: './images-texts-small-left-text-right.component.html'\n})\nexport class ImagesTextsSmallLeftTextRightComponent extends StructuresComponent<ImagesTextsSmallLeftTextRightDto>\n implements OnInit, OnDestroy {\n sizes = { small: '650x535', medium: '650x642', large: '650x750' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsSmallLeftTextRightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { ImagesTextsSmallRightTextLeftService } from '../../../services/blocks/images-texts/images-texts-small-right-text-left.service';\nimport { ImagesTextsSmallRightTextLeftDto } from '../../../dtos/blocks/images-texts/images-texts-small-right-text-left.dto';\n\n@Component({\n selector: ImagesTextsSmallRightTextLeftService.selector(),\n templateUrl: './images-texts-small-right-text-left.component.html'\n})\nexport class ImagesTextsSmallRightTextLeftComponent extends StructuresComponent<ImagesTextsSmallRightTextLeftDto>\n implements OnInit, OnDestroy {\n sizes = { small: '650x535', medium: '650x642', large: '650x750' };\n\n constructor() {\n super();\n this.setComponentService(ImagesTextsSmallRightTextLeftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.image = imageMediaDto;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsOneDto } from '../../../dtos/blocks/texts/texts-one.dto';\nimport { TextsOneService } from '../../../services/blocks/texts/texts-one.service';\n\n@Component({\n selector: TextsOneService.selector(),\n templateUrl: './texts-one.component.html'\n})\nexport class TextsOneComponent extends StructuresComponent<TextsOneDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsOneService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsOneBackgroundDto } from '../../../dtos/blocks/texts/texts-one-background.dto';\nimport { TextsOneBackgroundService } from '../../../services/blocks/texts/texts-one-background.service';\n\n@Component({\n selector: TextsOneBackgroundService.selector(),\n templateUrl: './texts-one-background.component.html'\n})\nexport class TextsOneBackgroundComponent extends StructuresComponent<TextsOneBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsOneBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsDoubleDto } from '../../../dtos/blocks/texts/texts-double.dto';\nimport { TextsDoubleService } from '../../../services/blocks/texts/texts-double.service';\n\n@Component({\n selector: TextsDoubleService.selector(),\n templateUrl: './texts-double.component.html'\n})\nexport class TextsDoubleComponent extends StructuresComponent<TextsDoubleDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsDoubleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsDoubleBackgroundDto } from '../../../dtos/blocks/texts/texts-double-background.dto';\nimport { TextsDoubleBackgroundService } from '../../../services/blocks/texts/texts-double-background.service';\n\n@Component({\n selector: TextsDoubleBackgroundService.selector(),\n templateUrl: './texts-double-background.component.html'\n})\nexport class TextsDoubleBackgroundComponent extends StructuresComponent<TextsDoubleBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsDoubleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsTripleDto } from '../../../dtos/blocks/texts/texts-triple.dto';\nimport { TextsTripleService } from '../../../services/blocks/texts/texts-triple.service';\n\n@Component({\n selector: TextsTripleService.selector(),\n templateUrl: './texts-triple.component.html'\n})\nexport class TextsTripleComponent extends StructuresComponent<TextsTripleDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsTripleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsTripleBackgroundDto } from '../../../dtos/blocks/texts/texts-triple-background.dto';\nimport { TextsTripleBackgroundService } from '../../../services/blocks/texts/texts-triple-background.service';\n\n@Component({\n selector: TextsTripleBackgroundService.selector(),\n templateUrl: './texts-triple-background.component.html'\n})\nexport class TextsTripleBackgroundComponent extends StructuresComponent<TextsTripleBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsTripleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsQuadrupleDto } from '../../../dtos/blocks/texts/texts-quadruple.dto';\nimport { TextsQuadrupleService } from '../../../services/blocks/texts/texts-quadruple.service';\n\n@Component({\n selector: TextsQuadrupleService.selector(),\n templateUrl: './texts-quadruple.component.html'\n})\nexport class TextsQuadrupleComponent extends StructuresComponent<TextsQuadrupleDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsQuadrupleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsQuadrupleBackgroundDto } from '../../../dtos/blocks/texts/texts-quadruple-background.dto';\nimport { TextsQuadrupleBackgroundService } from '../../../services/blocks/texts/texts-quadruple-background.service';\n\n@Component({\n selector: TextsQuadrupleBackgroundService.selector(),\n templateUrl: './texts-quadruple-background.component.html'\n})\nexport class TextsQuadrupleBackgroundComponent extends StructuresComponent<TextsQuadrupleBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsQuadrupleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { FormsSimpleDto } from '../../../dtos/blocks/forms/forms-simple.dto';\nimport { FormsSimpleService } from '../../../services/blocks/forms/forms-simple.service';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\n\n@Component({\n selector: FormsSimpleService.selector(),\n templateUrl: './forms-simple.component.html',\n})\nexport class FormsSimpleComponent extends StructuresComponent<FormsSimpleDto> implements OnInit {\n forms: any = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n noForms = false;\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(FormsSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.apiService.getFormsList().subscribe(\n (lists: FormListDto[]) => {\n this.forms = lists;\n if (typeof this.forms !== typeof undefined) {\n if (this.forms.length > 0) {\n this.noForms = false;\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n } else {\n this.noForms = true;\n }\n } else {\n this.noForms = true;\n }\n },\n (error) => {\n this.noForms = true;\n }\n );\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_FORM, FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { FormsBackgroundDto } from '../../../dtos/blocks/forms/forms-background.dto';\nimport { FormsBackgroundService } from '../../../services/blocks/forms/forms-background.service';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\n\n@Component({\n selector: FormsBackgroundService.selector(),\n templateUrl: './forms-background.component.html',\n})\nexport class FormsBackgroundComponent extends StructuresComponent<FormsBackgroundDto> implements OnInit {\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n noForms = false;\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(FormsBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.apiService.getFormsList().subscribe(\n (lists: FormListDto[]) => {\n this.forms = lists;\n if (typeof this.forms !== typeof undefined) {\n if (this.forms.length > 0) {\n this.noForms = false;\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n } else {\n this.noForms = true;\n }\n } else {\n this.noForms = true;\n }\n },\n (error) => {\n this.noForms = true;\n }\n );\n\n this.image.subscribe((media) => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n this.persist();\n });\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_FORM, FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\nimport { FormsImageleftDto } from '../../../dtos/blocks/forms/forms-imageleft.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { FormsImageleftService } from '../../../services/blocks/forms/forms-imageleft.service';\n\n@Component({\n selector: FormsImageleftService.selector(),\n templateUrl: './forms-imageleft.component.html',\n})\nexport class FormsImageleftComponent extends StructuresComponent<FormsImageleftDto> implements OnInit {\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n noForms = false;\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(FormsImageleftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.apiService.getFormsList().subscribe(\n (lists: FormListDto[]) => {\n this.forms = lists;\n if (typeof this.forms !== typeof undefined) {\n if (this.forms.length > 0) {\n this.noForms = false;\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n } else {\n this.noForms = true;\n }\n } else {\n this.noForms = true;\n }\n },\n (error) => {\n this.noForms = true;\n }\n );\n\n this.image.subscribe((media) => {\n this.addASliderWithMedia(media);\n });\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_IMAGE] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_FORM, FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { FormsImagerightDto } from '../../../dtos/blocks/forms/forms-imageright.dto';\nimport { FormsImagerightService } from '../../../services/blocks/forms/forms-imageright.service';\n\n@Component({\n selector: FormsImagerightService.selector(),\n templateUrl: './forms-imageright.component.html',\n})\nexport class FormsImagerightComponent extends StructuresComponent<FormsImagerightDto> implements OnInit {\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n noForms = false;\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(FormsImagerightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.apiService.getFormsList().subscribe(\n (lists: FormListDto[]) => {\n this.forms = lists;\n if (typeof this.forms !== typeof undefined) {\n if (this.forms.length > 0) {\n this.noForms = false;\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n } else {\n this.noForms = true;\n }\n } else {\n this.noForms = true;\n }\n },\n (error) => {\n this.noForms = true;\n }\n );\n\n this.image.subscribe((media) => {\n this.addASliderWithMedia(media);\n });\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_IMAGE] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { SocialsLikeDto } from '../../../dtos/blocks/socials/socials-like.dto';\nimport { SocialsLikeService } from '../../../services/blocks/socials/socials-like.service';\n\n@Component({\n selector: SocialsLikeService.selector(),\n templateUrl: './socials-like.component.html'\n})\nexport class SocialsLikeComponent extends StructuresComponent<SocialsLikeDto> implements OnInit, OnDestroy {\n facebookAppId = '';\n\n fbInit = false;\n\n constructor() {\n super();\n this.setComponentService(SocialsLikeService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[FORM_NAME_APP_ID]) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.fbInit = true;\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n this.fbInit = false;\n\n if (content !== null) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.changePageUrl();\n this.fbInit = true;\n }\n });\n }\n\n changePageUrl() {\n if (this.facebookAppId !== '') {\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.contentBlock[FORM_NAME_APP_ID] = this.facebookAppId;\n this.contentBlock[FORM_NAME_URL] = 'https://www.facebook.com/' + this.facebookAppId;\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { SocialsPageSimpleDto } from '../../../dtos/blocks/socials/socials-page-simple.dto';\nimport { SocialsPageSimpleService } from '../../../services/blocks/socials/socials-page-simple.service';\n\n@Component({\n selector: SocialsPageSimpleService.selector(),\n templateUrl: './socials-page-simple.component.html'\n})\nexport class SocialsPageSimpleComponent extends StructuresComponent<SocialsPageSimpleDto> implements OnInit, OnDestroy {\n facebookAppId = '';\n\n fbInit = false;\n\n constructor() {\n super();\n this.setComponentService(SocialsPageSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[FORM_NAME_APP_ID]) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.fbInit = true;\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n this.fbInit = false;\n\n if (content !== null) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.changePageUrl();\n this.fbInit = true;\n }\n });\n }\n\n changePageUrl() {\n if (this.facebookAppId !== '') {\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.contentBlock[FORM_NAME_APP_ID] = this.facebookAppId;\n this.contentBlock[FORM_NAME_URL] = 'https://www.facebook.com/' + this.facebookAppId;\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_APP_ID, FORM_NAME_URL } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { SocialsPageComplexDto } from '../../../dtos/blocks/socials/socials-page-complex.dto';\nimport { SocialsPageComplexService } from '../../../services/blocks/socials/socials-page-complex.service';\n\n@Component({\n selector: SocialsPageComplexService.selector(),\n templateUrl: './socials-page-complex.component.html'\n})\nexport class SocialsPageComplexComponent extends StructuresComponent<SocialsPageComplexDto> implements OnInit, OnDestroy {\n facebookAppId = '';\n\n fbInit = false;\n\n constructor() {\n super();\n this.setComponentService(SocialsPageComplexService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[FORM_NAME_APP_ID]) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.fbInit = true;\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n this.fbInit = false;\n\n if (content !== null) {\n this.facebookAppId = this.contentBlock[FORM_NAME_APP_ID];\n this.changePageUrl();\n this.fbInit = true;\n }\n });\n }\n\n changePageUrl() {\n if (this.facebookAppId !== '') {\n this.setThisContentForComponent(FORM_NAME_APP_ID, this.facebookAppId);\n this.contentBlock[FORM_NAME_APP_ID] = this.facebookAppId;\n this.contentBlock[FORM_NAME_URL] = 'https://www.facebook.com/' + this.facebookAppId;\n }\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_FACEBOOK, FORM_NAME_INSTAGRAM, FORM_NAME_PINTEREST, FORM_NAME_TWITTER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { SocialsNetworkDto } from '../../../dtos/blocks/socials/socials-network.dto';\nimport { SocialsNetworkService } from '../../../services/blocks/socials/socials-network.service';\n\n@Component({\n selector: SocialsNetworkService.selector(),\n templateUrl: './socials-network.component.html'\n})\nexport class SocialsNetworkComponent extends StructuresComponent<SocialsNetworkDto> implements OnInit, OnDestroy {\n showContent = false;\n\n constructor() {\n super();\n this.setComponentService(SocialsNetworkService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[FORM_NAME_FACEBOOK]) {\n this.setThisContentForComponent(FORM_NAME_FACEBOOK, this.contentBlock[FORM_NAME_FACEBOOK]);\n this.showContent = true;\n }\n\n if (this.contentBlock[FORM_NAME_TWITTER]) {\n this.setThisContentForComponent(FORM_NAME_TWITTER, this.contentBlock[FORM_NAME_TWITTER]);\n this.showContent = true;\n }\n\n if (this.contentBlock[FORM_NAME_INSTAGRAM]) {\n this.setThisContentForComponent(FORM_NAME_INSTAGRAM, this.contentBlock[FORM_NAME_INSTAGRAM]);\n this.showContent = true;\n }\n\n if (this.contentBlock[FORM_NAME_PINTEREST]) {\n this.setThisContentForComponent(FORM_NAME_PINTEREST, this.contentBlock[FORM_NAME_PINTEREST]);\n this.showContent = true;\n }\n\n this.contentEventSubscription = this.contentService.contentEvent().subscribe(() => {\n const content = this.contentService.getContentByUUID(this.uuid);\n\n if (content !== null) {\n if (\n this.contentBlock[FORM_NAME_INSTAGRAM] !== '' ||\n this.contentBlock[FORM_NAME_FACEBOOK] !== '' ||\n this.contentBlock[FORM_NAME_TWITTER] !== '' ||\n this.contentBlock[FORM_NAME_PINTEREST] !== ''\n ) {\n this.showContent = true;\n }\n }\n });\n }\n\n addUrl(key) {\n this.setThisContentForComponent(key, this.contentBlock[key]);\n this.showContent = true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CurrencyDto } from '@wizishop/api-v3-js-sdk';\nimport { ExternalConfigService } from './external-config.service';\n@Injectable({\n providedIn: 'root',\n})\nexport class CurrencyService {\n id: number;\n country: string;\n name: string;\n symbol: string;\n separator: string;\n thousand: string;\n round: number;\n prefix: number;\n space: number;\n iso: string;\n ready = false;\n currency: any;\n constructor(private externalConfigService: ExternalConfigService) {}\n initializeCurrency() {\n return new Promise((resolve) => {\n this.externalConfigService.getDevise().subscribe(\n (currency: CurrencyDto[]) => {\n this.id = currency['id'];\n this.country = currency['country'];\n this.name = currency['name'];\n this.symbol = currency['symbol'];\n this.separator = currency['separator'];\n this.thousand = currency['thousand'];\n this.round = currency['round'];\n this.prefix = currency['prefix'];\n this.space = currency['space'];\n this.iso = currency['iso'];\n this.ready = true;\n resolve(true);\n },\n (err) => {\n resolve(false);\n }\n );\n });\n }\n}\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_LIST_PRODUCT, FORM_NAME_TYPE_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ProductsListClassicDto, TYPE_PRODUCT_SELECTION } from '../../../dtos/blocks/products-list/products-list-classic.dto';\nimport { ProductsListClassicService } from '../../../services/blocks/products-list/products-list-classic.service';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { CatalogListDto } from '../../../dtos/apis/catalogs/catalog-list.dto';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductsListClassicService.selector(),\n templateUrl: './products-list-classic.component.html',\n})\nexport class ProductsListClassicComponent extends StructuresComponent<ProductsListClassicDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n\n @ViewChild('structureSearchProduct') set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n selectedValue = {\n id: 1,\n title: 'wb.productlist.selection',\n value: 'selection',\n };\n\n catalogSelection: CatalogListDto = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n formatPrice = [];\n isLoading = true;\n\n form = [\n {\n id: 1,\n title: this.translateService.instant('wb.productlist.1'),\n value: 'selection',\n },\n {\n id: 2,\n title: this.translateService.instant('wb.productlist.2'),\n value: 'discount',\n },\n {\n id: 3,\n title: this.translateService.instant('wb.productlist.3'),\n value: 'new',\n },\n {\n id: 4,\n title: this.translateService.instant('wb.productlist.4'),\n value: 'flash',\n },\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private changeDetection: ChangeDetectorRef,\n private translateService: TranslateService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductsListClassicService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe(\n (data) => {\n this.country = data.locale.replace('_', '-');\n this.initialize();\n },\n () => {\n this.initialize();\n }\n );\n }\n\n initialize() {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT] || this.contentBlock[FORM_NAME_LIST_PRODUCT]) {\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT] && this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n }\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n }\n\n selectThisForm() {\n this.getSelection(this.selectedValue.value);\n this.contentBlock[FORM_NAME_TYPE_PRODUCT] = this.selectedValue.value;\n this.persist();\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.formatPrice = [];\n this.apiService.getCatalogSpecific(prodIds, 12).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n this.changeDetection.detectChanges();\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n } else {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT]) {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n this.persist();\n }\n }\n\n getSelection(type) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n if (this.structureSearchProduct) {\n this.structureSearchProduct.selectedProd = [];\n this.structureSearchProduct.currentSelectedCatalog = [];\n }\n this.form.forEach((values) => {\n if (values.value === type) {\n this.selectedValue = values;\n }\n });\n this.formatPrice = [];\n this.apiService.getCatalogSelection(type, 12).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n }\n}\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_LIST_PRODUCT, FORM_NAME_TYPE_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_PRODUCT_SELECTION } from '../../../dtos/blocks/products-list/products-list-classic.dto';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductsListSelectedDto } from '../../../dtos/blocks/products-list/products-list-selected.dto';\nimport { ProductsListSelectedService } from '../../../services/blocks/products-list/products-list-selected.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { CatalogListDto } from '../../../dtos/apis/catalogs/catalog-list.dto';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductsListSelectedService.selector(),\n templateUrl: './products-list-selected.component.html',\n})\nexport class ProductsListSelectedComponent extends StructuresComponent<ProductsListSelectedDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n @ViewChild('structureSearchProduct') set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n selectedValue = {\n id: 1,\n title: 'wb.productlist.selection',\n value: 'selection',\n };\n\n catalogSelection: CatalogListDto = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n formatPrice = [];\n isLoading = true;\n\n form = [\n {\n id: 1,\n title: this.translateService.instant('wb.productlist.1'),\n value: 'selection',\n },\n {\n id: 2,\n title: this.translateService.instant('wb.productlist.2'),\n value: 'discount',\n },\n {\n id: 3,\n title: this.translateService.instant('wb.productlist.3'),\n value: 'new',\n },\n {\n id: 4,\n title: this.translateService.instant('wb.productlist.4'),\n value: 'flash',\n },\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private translateService: TranslateService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductsListSelectedService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe(\n (data) => {\n this.country = data.locale.replace('_', '-');\n this.initialize();\n },\n () => {\n this.initialize();\n }\n );\n }\n\n initialize() {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT]) {\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT] && this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n }\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n }\n\n selectThisForm() {\n this.getSelection(this.selectedValue.value);\n this.contentBlock[FORM_NAME_TYPE_PRODUCT] = this.selectedValue.value;\n this.persist();\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.formatPrice = [];\n this.apiService.getCatalogSpecific(prodIds).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n } else {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT]) {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n this.persist();\n }\n }\n\n getSelection(type) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n if (this.structureSearchProduct) {\n this.structureSearchProduct.selectedProd = [];\n this.structureSearchProduct.currentSelectedCatalog = [];\n }\n this.form.forEach((values) => {\n if (values.value === type) {\n this.selectedValue = values;\n }\n });\n this.formatPrice = [];\n this.apiService.getCatalogSelection(type, 15).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n }\n}\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_LIST_PRODUCT, FORM_NAME_TYPE_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_PRODUCT_SELECTION } from '../../../dtos/blocks/products-list/products-list-classic.dto';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductsListSimpleDto } from '../../../dtos/blocks/products-list/products-list-simple.dto';\nimport { ProductsListSimpleService } from '../../../services/blocks/products-list/products-list-simple.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { CatalogListDto } from '../../../dtos/apis/catalogs/catalog-list.dto';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductsListSimpleService.selector(),\n templateUrl: './products-list-simple.component.html',\n})\nexport class ProductsListSimpleComponent extends StructuresComponent<ProductsListSimpleDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n @ViewChild('structureSearchProduct') set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n selectedValue = {\n id: 1,\n title: 'wb.productlist.selection',\n value: 'selection',\n };\n\n catalogSelection: CatalogListDto = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n formatPrice = [];\n isLoading = true;\n\n form = [\n {\n id: 1,\n title: this.translateService.instant('wb.productlist.1'),\n value: 'selection',\n },\n {\n id: 2,\n title: this.translateService.instant('wb.productlist.2'),\n value: 'discount',\n },\n {\n id: 3,\n title: this.translateService.instant('wb.productlist.3'),\n value: 'new',\n },\n {\n id: 4,\n title: this.translateService.instant('wb.productlist.4'),\n value: 'flash',\n },\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private translateService: TranslateService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductsListSimpleService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe(\n (data) => {\n this.country = data.locale.replace('_', '-');\n this.initialize();\n },\n () => {\n this.initialize();\n }\n );\n }\n\n initialize() {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT]) {\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT] && this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n }\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n }\n\n selectThisForm() {\n console.log(this.selectedValue.value);\n this.getSelection(this.selectedValue.value);\n this.contentBlock[FORM_NAME_TYPE_PRODUCT] = this.selectedValue.value;\n this.persist();\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.formatPrice = [];\n this.apiService.getCatalogSpecific(prodIds).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n console.log(catalogList);\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n } else {\n if (this.contentBlock[FORM_NAME_TYPE_PRODUCT]) {\n this.getSelection(this.contentBlock[FORM_NAME_TYPE_PRODUCT]);\n } else {\n this.getSelection(TYPE_PRODUCT_SELECTION);\n }\n this.persist();\n }\n }\n\n getSelection(type) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n if (this.structureSearchProduct) {\n this.structureSearchProduct.selectedProd = [];\n this.structureSearchProduct.currentSelectedCatalog = [];\n }\n this.form.forEach((values) => {\n if (values.value === type) {\n this.selectedValue = values;\n }\n });\n this.formatPrice = [];\n this.apiService.getCatalogSelection(type, 9).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n for (let item of catalogList.products) {\n this.formatPrice.push(\n new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(item.price.price)\n );\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = {\n products: [],\n catalog_facet: [],\n total_pages: 0,\n total_results: 0,\n };\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { RassurancesTripleBackgroundDto } from '../../../dtos/blocks/rassurances/rassurances-triple-background.dto';\nimport { RassurancesTripleBackgroundService } from '../../../services/blocks/rassurances/rassurances-triple-background.service';\n\n@Component({\n selector: RassurancesTripleBackgroundService.selector(),\n templateUrl: './rassurances-triple-background.component.html'\n})\nexport class RassurancesTripleBackgroundComponent extends StructuresComponent<RassurancesTripleBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(RassurancesTripleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { RassurancesQuadrupleAlignedDto } from '../../../dtos/blocks/rassurances/rassurances-quadruple-aligned.dto';\nimport { RassurancesQuadrupleAlignedService } from '../../../services/blocks/rassurances/rassurances-quadruple-aligned.service';\n\n@Component({\n selector: RassurancesQuadrupleAlignedService.selector(),\n templateUrl: './rassurances-quadruple-aligned.component.html'\n})\nexport class RassurancesQuadrupleAlignedComponent extends StructuresComponent<RassurancesQuadrupleAlignedDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(RassurancesQuadrupleAlignedService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { RassurancesQuadrupleBackgroundDto } from '../../../dtos/blocks/rassurances/rassurances-quadruple-background.dto';\nimport { RassurancesQuadrupleBackgroundService } from '../../../services/blocks/rassurances/rassurances-quadruple-background.service';\n\n@Component({\n selector: RassurancesQuadrupleBackgroundService.selector(),\n templateUrl: './rassurances-quadruple-background.component.html'\n})\nexport class RassurancesQuadrupleBackgroundComponent extends StructuresComponent<RassurancesQuadrupleBackgroundDto>\n implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(RassurancesQuadrupleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { NewsletterAlignedCenterImageDto } from '../../../dtos/blocks/newsletter/newsletter-aligned-center-image.dto';\nimport { NewsletterAlignedCenterImageService } from '../../../services/blocks/newsletter/newsletter-aligned-center-image.service';\n\n@Component({\n selector: NewsletterAlignedCenterImageService.selector(),\n templateUrl: './newsletter-aligned-center-image.component.html'\n})\nexport class NewsletterAlignedCenterImageComponent extends StructuresComponent<NewsletterAlignedCenterImageDto>\n implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(NewsletterAlignedCenterImageService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { NewsletterAlignedCenterBackgroundDto } from '../../../dtos/blocks/newsletter/newsletter-aligned-center-background.dto';\nimport { NewsletterAlignedCenterBackgroundService } from '../../../services/blocks/newsletter/newsletter-aligned-center-background.service';\n\n@Component({\n selector: NewsletterAlignedCenterBackgroundService.selector(),\n templateUrl: './newsletter-aligned-center-background.component.html'\n})\nexport class NewsletterAlignedCenterBackgroundComponent extends StructuresComponent<NewsletterAlignedCenterBackgroundDto>\n implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(NewsletterAlignedCenterBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { NewsletterCenterImageDto } from '../../../dtos/blocks/newsletter/newsletter-center-image.dto';\nimport { NewsletterCenterImageService } from '../../../services/blocks/newsletter/newsletter-center-image.service';\n\n@Component({\n selector: NewsletterCenterImageService.selector(),\n templateUrl: './newsletter-center-image.component.html'\n})\nexport class NewsletterCenterImageComponent extends StructuresComponent<NewsletterCenterImageDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(NewsletterCenterImageService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_RIGHT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport {\n TYPE_CONFIG_POSITION_LEFT_TOP,\n TYPE_CONFIG_POSITION_RIGHT_TOP\n} from '../../../shared/components/structure-config/structure-config.component';\nimport { WitnessTwiceDto } from '../../../dtos/blocks/witness/witness-twice.dto';\nimport { WitnessTwiceService } from '../../../services/blocks/witness/witness-twice.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: WitnessTwiceService.selector(),\n templateUrl: './witness-twice.component.html'\n})\nexport class WitnessTwiceComponent extends StructuresComponent<WitnessTwiceDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n readonly FORM_NAME_IMAGE_LEFT = FORM_NAME_IMAGE_LEFT;\n readonly FORM_NAME_IMAGE_RIGHT = FORM_NAME_IMAGE_RIGHT;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n\n constructor() {\n super();\n this.setComponentService(WitnessTwiceService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia();\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_CENTER, FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_RIGHT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport {\n TYPE_CONFIG_POSITION_LEFT_TOP,\n TYPE_CONFIG_POSITION_RIGHT_TOP\n} from '../../../shared/components/structure-config/structure-config.component';\nimport { WitnessTripleDto } from '../../../dtos/blocks/witness/witness-triple.dto';\nimport { WitnessTripleService } from '../../../services/blocks/witness/witness-triple.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: WitnessTripleService.selector(),\n templateUrl: './witness-triple.component.html'\n})\nexport class WitnessTripleComponent extends StructuresComponent<WitnessTripleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n readonly FORM_NAME_IMAGE_LEFT = FORM_NAME_IMAGE_LEFT;\n readonly FORM_NAME_IMAGE_RIGHT = FORM_NAME_IMAGE_RIGHT;\n readonly FORM_NAME_IMAGE_CENTER = FORM_NAME_IMAGE_CENTER;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n\n constructor() {\n super();\n this.setComponentService(WitnessTripleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia();\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_IMAGE_CENTER_RIGHT,\n FORM_NAME_IMAGE_CENTER_LEFT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_RIGHT\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport {\n TYPE_CONFIG_POSITION_LEFT_TOP,\n TYPE_CONFIG_POSITION_RIGHT_TOP\n} from '../../../shared/components/structure-config/structure-config.component';\nimport { WitnessQuadrupleDto } from '../../../dtos/blocks/witness/witness-quadruple.dto';\nimport { WitnessQuadrupleService } from '../../../services/blocks/witness/witness-quadruple.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: WitnessQuadrupleService.selector(),\n templateUrl: './witness-quadruple.component.html'\n})\nexport class WitnessQuadrupleComponent extends StructuresComponent<WitnessQuadrupleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n readonly FORM_NAME_IMAGE_LEFT = FORM_NAME_IMAGE_LEFT;\n readonly FORM_NAME_IMAGE_RIGHT = FORM_NAME_IMAGE_RIGHT;\n readonly FORM_NAME_IMAGE_CENTER_RIGHT = FORM_NAME_IMAGE_CENTER_RIGHT;\n readonly FORM_NAME_IMAGE_CENTER_LEFT = FORM_NAME_IMAGE_CENTER_LEFT;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n\n constructor() {\n super();\n this.setComponentService(WitnessQuadrupleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia();\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TYPE_CONFIG_POSITION_LEFT_TOP } from '../../../shared/components/structure-config/structure-config.component';\nimport { WitnessBackgroundOneDto } from '../../../dtos/blocks/witness/witness-background-one.dto';\nimport { WitnessBackgroundOneService } from '../../../services/blocks/witness/witness-background-one.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: WitnessBackgroundOneService.selector(),\n templateUrl: './witness-background-one.component.html'\n})\nexport class WitnessBackgroundOneComponent extends StructuresComponent<WitnessBackgroundOneDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE;\n\n readonly FORM_NAME_IMAGE = FORM_NAME_IMAGE;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n\n constructor() {\n super();\n this.setComponentService(WitnessBackgroundOneService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia();\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_LEFT, FORM_NAME_IMAGE_RIGHT, FORM_NAME_IMAGE_BACKGROUND } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport {\n TYPE_CONFIG_POSITION_LEFT_TOP,\n TYPE_CONFIG_POSITION_RIGHT_TOP\n} from '../../../shared/components/structure-config/structure-config.component';\nimport { WitnessBackgroundDoubleDto } from '../../../dtos/blocks/witness/witness-background-double.dto';\nimport { WitnessBackgroundDoubleService } from '../../../services/blocks/witness/witness-background-double.service';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\n\n@Component({\n selector: WitnessBackgroundDoubleService.selector(),\n templateUrl: './witness-background-double.component.html'\n})\nexport class WitnessBackgroundDoubleComponent extends StructuresComponent<WitnessBackgroundDoubleDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n\n readonly FORM_NAME_IMAGE_LEFT = FORM_NAME_IMAGE_LEFT;\n readonly FORM_NAME_IMAGE_RIGHT = FORM_NAME_IMAGE_RIGHT;\n readonly FORM_NAME_IMAGE_BACKGROUND = FORM_NAME_IMAGE_BACKGROUND;\n readonly TYPE_CONFIG_POSITION_LEFT_TOP = TYPE_CONFIG_POSITION_LEFT_TOP;\n readonly TYPE_CONFIG_POSITION_RIGHT_TOP = TYPE_CONFIG_POSITION_RIGHT_TOP;\n\n constructor() {\n super();\n this.setComponentService(WitnessBackgroundDoubleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia();\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ReviewsSimpleDto } from '../../../dtos/blocks/reviews/reviews-simple.dto';\nimport { ReviewsSimpleService } from '../../../services/blocks/reviews/reviews-simple.service';\nimport { CommentDto } from '../../../dtos/apis/comments/comment.dto';\nimport { CommentListDto } from '../../../dtos/apis/comments/comment-list.dto';\n\n@Component({\n selector: ReviewsSimpleService.selector(),\n templateUrl: './reviews-simple.component.html'\n})\nexport class ReviewsSimpleComponent extends StructuresComponent<ReviewsSimpleDto> implements OnInit, OnDestroy {\n totalComments: number;\n isLoading = true;\n\n totalCommentsNote: number;\n\n comments: CommentDto[];\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(ReviewsSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.getComments(2);\n }\n\n getComments(number) {\n this.apiService.getShopComment(number).subscribe(\n (comments: CommentListDto) => {\n this.totalComments = comments.total;\n this.totalCommentsNote = comments.total_note;\n this.comments = comments.results;\n this.isLoading = false;\n },\n () => {\n this.comments = [];\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ReviewsWaterfallDto } from '../../../dtos/blocks/reviews/reviews-waterfall.dto';\nimport { ReviewsWaterfallService } from '../../../services/blocks/reviews/reviews-waterfall.service';\nimport { CommentDto } from '../../../dtos/apis/comments/comment.dto';\nimport { CommentListDto } from '../../../dtos/apis/comments/comment-list.dto';\n\n@Component({\n selector: ReviewsWaterfallService.selector(),\n templateUrl: './reviews-waterfall.component.html',\n})\nexport class ReviewsWaterfallComponent extends StructuresComponent<ReviewsWaterfallDto> implements OnInit, OnDestroy {\n totalComments: number;\n isLoading = true;\n\n totalCommentsNote: number;\n\n comments: CommentDto[];\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(ReviewsWaterfallService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.getComments(4);\n }\n\n getComments(number) {\n this.apiService.getShopComment(number).subscribe(\n (comments: CommentListDto) => {\n this.totalComments = comments.total;\n this.totalCommentsNote = comments.total_note;\n this.comments = comments.results;\n this.isLoading = false;\n },\n () => {\n this.comments = [];\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { QuotesSimpleDto } from '../../../dtos/blocks/quotes/quotes-simple.dto';\nimport { QuotesSimpleService } from '../../../services/blocks/quotes/quotes-simple.service';\n\n@Component({\n selector: QuotesSimpleService.selector(),\n templateUrl: './quotes-simple.component.html'\n})\nexport class QuotesSimpleComponent extends StructuresComponent<QuotesSimpleDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(QuotesSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { QuotesAuthorDto } from '../../../dtos/blocks/quotes/quotes-author.dto';\nimport { QuotesAuthorService } from '../../../services/blocks/quotes/quotes-author.service';\n\n@Component({\n selector: QuotesAuthorService.selector(),\n templateUrl: './quotes-author.component.html'\n})\nexport class QuotesAuthorComponent extends StructuresComponent<QuotesAuthorDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(QuotesAuthorService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n this.persist();\n });\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { QuotesSimpleBackgroundDto } from '../../../dtos/blocks/quotes/quotes-simple-background.dto';\nimport { QuotesSimpleBackgroundService } from '../../../services/blocks/quotes/quotes-simple-background.service';\n\n@Component({\n selector: QuotesSimpleBackgroundService.selector(),\n templateUrl: './quotes-simple-background.component.html'\n})\nexport class QuotesSimpleBackgroundComponent extends StructuresComponent<QuotesSimpleBackgroundDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(QuotesSimpleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe(media => {\n this.contentBlock[FORM_NAME_IMAGE] = media;\n this.persist();\n });\n }\n}\n","import { StructuresComponent } from '../../structures.component';\nimport { MapFullpageDto } from '../../../dtos/blocks/map/map-fullpage.dto';\nimport { MapFullpageService } from '../../../services/blocks/map/map-fullpage.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\n\n@Component({\n selector: MapFullpageService.selector(),\n templateUrl: './map-fullpage.component.html',\n})\nexport class MapFullpageComponent extends StructuresComponent<MapFullpageDto> implements OnInit {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n constructor(private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(MapFullpageService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contentBlock[this.FORM_NAME_COORDINATE_Y] && this.contentBlock[this.FORM_NAME_COORDINATE_X]) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: this.contentBlock[this.FORM_NAME_COORDINATE_Y],\n lng: this.contentBlock[this.FORM_NAME_COORDINATE_X],\n },\n value: '',\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { MapLeftTextDto } from '../../../dtos/blocks/map/map-left-text.dto';\nimport { MapLeftTextService } from '../../../services/blocks/map/map-left-text.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\n\n@Component({\n selector: MapLeftTextService.selector(),\n templateUrl: './map-left-text.component.html',\n})\nexport class MapLeftTextComponent extends StructuresComponent<MapLeftTextDto> implements OnInit, OnDestroy {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n constructor(private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(MapLeftTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[this.FORM_NAME_COORDINATE_Y] && this.contentBlock[this.FORM_NAME_COORDINATE_X]) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: this.contentBlock[this.FORM_NAME_COORDINATE_Y],\n lng: this.contentBlock[this.FORM_NAME_COORDINATE_X],\n },\n value: '',\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { MapRightTextDto } from '../../../dtos/blocks/map/map-right-text.dto';\nimport { MapRightTextService } from '../../../services/blocks/map/map-right-text.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\n\n@Component({\n selector: MapRightTextService.selector(),\n templateUrl: './map-right-text.component.html',\n})\nexport class MapRightTextComponent extends StructuresComponent<MapRightTextDto> implements OnInit, OnDestroy {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n constructor(private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(MapRightTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[this.FORM_NAME_COORDINATE_Y] && this.contentBlock[this.FORM_NAME_COORDINATE_X]) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: this.contentBlock[this.FORM_NAME_COORDINATE_Y],\n lng: this.contentBlock[this.FORM_NAME_COORDINATE_X],\n },\n value: '',\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n}\n","export class OpenMapDto {\n suggestion: {\n latlng: {\n lat: number;\n lng: number;\n };\n value: string;\n };\n}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { MapTextFormService } from '../../../services/blocks/map/map-text-form.service';\nimport { MapTextFormDto } from '../../../dtos/blocks/map/map-text-form.dto';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\n\n@Component({\n selector: MapTextFormService.selector(),\n templateUrl: './map-text-form.component.html',\n})\nexport class MapTextFormComponent extends StructuresComponent<MapTextFormDto> implements OnInit, OnDestroy {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(MapTextFormService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.contentBlock[this.FORM_NAME_COORDINATE_Y] && this.contentBlock[this.FORM_NAME_COORDINATE_X]) {\n const algolia = new OpenMapDto();\n algolia.suggestion = {\n latlng: {\n lat: this.contentBlock[this.FORM_NAME_COORDINATE_Y],\n lng: this.contentBlock[this.FORM_NAME_COORDINATE_X],\n },\n value: '',\n };\n this.setCoordinateOnPlaces(algolia);\n }\n\n this.apiService.getFormsList().subscribe((lists: FormListDto[]) => {\n this.forms = lists;\n\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n });\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { MapBackgroundFormLeftDto } from '../../../dtos/blocks/map/map-background-form-left.dto';\nimport { MapBackgroundFormLeftService } from '../../../services/blocks/map/map-background-form-left.service';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\n\n@Component({\n selector: MapBackgroundFormLeftService.selector(),\n templateUrl: './map-background-form-left.component.html',\n})\nexport class MapBackgroundFormLeftComponent extends StructuresComponent<MapBackgroundFormLeftDto> implements OnInit, OnDestroy {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(MapBackgroundFormLeftService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.apiService.getFormsList().subscribe((lists: FormListDto[]) => {\n this.forms = lists;\n\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n });\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n}\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_ID_FORM } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { OpenMapDto } from '../../../dtos/apis/maps/open-map.dto';\nimport { icon, latLng, marker, tileLayer } from 'leaflet';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { MapBackgroundFormRightService } from '../../../services/blocks/map/map-background-form-right.service';\nimport { MapBackgroundFormRightDto } from '../../../dtos/blocks/map/map-background-form-right.dto';\nimport { FormDetailDto } from '../../../dtos/apis/forms/form-detail.dto';\n\n@Component({\n selector: MapBackgroundFormRightService.selector(),\n templateUrl: './map-background-form-right.component.html',\n})\nexport class MapBackgroundFormRightComponent extends StructuresComponent<MapBackgroundFormRightDto> implements OnInit, OnDestroy {\n @ViewChild('myInput') input: ElementRef;\n address = '';\n triggerAddress = '';\n center;\n googleMapReturnElement: OpenMapDto;\n\n editPlaceMap = null;\n firstTimeTrigger = false;\n\n options = {};\n layers = [];\n\n showMap = false;\n\n forms: FormListDto[] = [];\n\n selectedValue: FormListDto = null;\n\n selectedDetailForm: FormDetailDto[] = [];\n\n constructor(private apiService: ApiService) {\n super();\n this.setComponentService(MapBackgroundFormRightService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.apiService.getFormsList().subscribe((lists: FormListDto[]) => {\n this.forms = lists;\n\n if (this.contentBlock[FORM_NAME_ID_FORM]) {\n this.forms.forEach((v) => {\n if (v.id === this.contentBlock[FORM_NAME_ID_FORM]) {\n this.selectedValue = v;\n this.selectThisForm();\n }\n });\n }\n });\n }\n\n setCoordinateOnPlaces(googleResults: OpenMapDto) {\n this.showMap = false;\n this.options = {\n layers: [tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: 'WiziShop' })],\n zoom: 18,\n zoomControl: false,\n center: latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng),\n };\n this.center = latLng(googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng);\n this.layers = [\n marker([googleResults.suggestion.latlng.lat, googleResults.suggestion.latlng.lng], {\n icon: icon({\n iconSize: [25, 41],\n iconAnchor: [13, 41],\n iconUrl: 'assets/blocks/images/maps/marker-icon.png',\n shadowUrl: 'assets/blocks/images/maps/marker-shadow.png',\n }),\n }),\n ];\n\n this.contentBlock[this.FORM_NAME_COORDINATE_Y] = googleResults.suggestion.latlng.lat;\n this.contentBlock[this.FORM_NAME_COORDINATE_X] = googleResults.suggestion.latlng.lng;\n\n this.address = googleResults.suggestion.value;\n this.showMap = true;\n\n this.persist();\n }\n\n handleAddressChange(event) {\n this.googleMapReturnElement = {\n suggestion: {\n latlng: {\n lat: event.geometry.location.lat(),\n lng: event.geometry.location.lng(),\n },\n value: event.name,\n },\n };\n this.setCoordinateOnPlaces(this.googleMapReturnElement);\n }\n\n /**\n * Avoid partial map loaded at the initialization\n * @param map\n */\n onMapReady(map) {\n setTimeout(() => {\n map.invalidateSize();\n }, 0);\n }\n\n selectThisForm() {\n if (this.selectedValue === null) {\n return;\n }\n this.apiService.getFormsDetail(this.selectedValue.id).subscribe((lists: FormDetailDto[]) => {\n this.selectedDetailForm = lists;\n });\n this.contentBlock[FORM_NAME_ID_FORM] = this.selectedValue.id;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TimerSimpleDto } from '../../../dtos/blocks/timer/timer-simple.dto';\nimport { TimerSimpleService } from '../../../services/blocks/timer/timer-simple.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: TimerSimpleService.selector(),\n templateUrl: './timer-simple.component.html',\n})\nexport class TimerSimpleComponent extends StructuresComponent<TimerSimpleDto> implements OnInit, OnDestroy {\n private timer: any;\n dateFor: any;\n private second: any;\n private minute: any;\n private hour: any;\n private day: any;\n private distance: number;\n private now: number;\n private countdown: number;\n isCalendar = false;\n seconds = 0;\n minutes = 0;\n hours = 0;\n days = 0;\n showTimer = false;\n timerEnd = false;\n today = new Date();\n\n constructor(public translateService: TranslateService) {\n super();\n this.setComponentService(TimerSimpleService);\n }\n\n initDistance() {\n (this.second = 1000), (this.minute = this.second * 60), (this.hour = this.minute * 60), (this.day = this.hour * 24);\n this.now = new Date().getTime();\n this.distance = this.timer - new Date().getTime();\n this.now = this.now + this.second;\n this.countdown = new Date(this.timer).getTime();\n this.distance = this.countdown - this.now + 10000 / 9;\n }\n\n changeTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.persist();\n }\n\n validTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.isCalendar = true;\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.showTimer = true;\n this.persist();\n }\n\n startTime() {\n this.days = Math.floor(this.distance / this.day);\n this.hours = Math.floor((this.distance % this.day) / this.hour);\n this.minutes = Math.floor((this.distance % this.hour) / this.minute);\n this.seconds = Math.floor((this.distance % this.minute) / this.second);\n this.timerEnd = this.days <= 0 && this.hours <= 0 && this.minutes <= 0 && this.seconds <= 0;\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.contentBlock[FORM_NAME_FIRST_STEP]) {\n if (this.contentBlock[FORM_NAME_ABSOLUTE]) {\n this.isCalendar = true;\n this.validTimeForTimer();\n } else {\n this.isCalendar = false;\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n } else {\n this.timer = new Date(this.contentBlock[FORM_NAME_DATE].valueOf() + 1000 * 3600 * 24).getTime();\n this.dateFor = new Date(this.timer);\n }\n }\n\n valueChange(value: any) {\n this.timer = value.startDate.getTime();\n }\n\n valueChangeLive(value: any) {\n this.timer = value.startDate.getTime();\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.initDistance();\n this.startTime();\n this.persist();\n }\n\n validTimeForDate() {\n this.initDistance();\n this.startTime();\n this.showTimer = true;\n this.dateFor = this.timer;\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.isCalendar = false;\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.persist();\n }\n\n switchMethod() {\n this.isCalendar = !this.isCalendar;\n if (this.isCalendar) {\n this.validTimeForTimer();\n } else {\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n this.persist();\n }\n\n switchMethodWithoutPersist() {\n this.isCalendar = !this.isCalendar;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TimerBackgroundDto } from '../../../dtos/blocks/timer/timer-background.dto';\nimport { TimerBackgroundService } from '../../../services/blocks/timer/timer-background.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: TimerBackgroundService.selector(),\n templateUrl: './timer-background.component.html',\n})\nexport class TimerBackgroundComponent extends StructuresComponent<TimerBackgroundDto> implements OnInit, OnDestroy {\n private timer: any;\n dateFor: any;\n private second: any;\n private minute: any;\n private hour: any;\n private day: any;\n private distance: number;\n private now: number;\n private countdown: number;\n isCalendar = false;\n seconds = 0;\n minutes = 0;\n hours = 0;\n days = 0;\n showTimer = false;\n timerEnd = false;\n today = new Date();\n\n constructor(public translateService: TranslateService) {\n super();\n this.setComponentService(TimerBackgroundService);\n }\n\n initDistance() {\n (this.second = 1000), (this.minute = this.second * 60), (this.hour = this.minute * 60), (this.day = this.hour * 24);\n this.now = new Date().getTime();\n this.distance = this.timer - new Date().getTime();\n this.now = this.now + this.second;\n this.countdown = new Date(this.timer).getTime();\n this.distance = this.countdown - this.now + 10000 / 9;\n }\n\n changeTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.persist();\n }\n\n validTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.isCalendar = true;\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.showTimer = true;\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n startTime() {\n this.days = Math.floor(this.distance / this.day);\n this.hours = Math.floor((this.distance % this.day) / this.hour);\n this.minutes = Math.floor((this.distance % this.hour) / this.minute);\n this.seconds = Math.floor((this.distance % this.minute) / this.second);\n this.timerEnd = this.days <= 0 && this.hours <= 0 && this.minutes <= 0 && this.seconds <= 0;\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.contentBlock[FORM_NAME_FIRST_STEP]) {\n if (this.contentBlock[FORM_NAME_ABSOLUTE]) {\n this.isCalendar = true;\n this.validTimeForTimer();\n } else {\n this.isCalendar = false;\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n } else {\n this.timer = new Date(this.contentBlock[FORM_NAME_DATE].valueOf() + 1000 * 3600 * 24).getTime();\n this.dateFor = new Date(this.timer);\n }\n this.image.subscribe((media) => {\n this.contentBlock.image = media;\n this.persist();\n });\n }\n\n valueChange(value: any) {\n this.timer = value.startDate.getTime();\n }\n\n valueChangeLive(value: any) {\n this.timer = value.startDate.getTime();\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.initDistance();\n this.startTime();\n this.persist();\n }\n\n validTimeForDate() {\n this.initDistance();\n this.startTime();\n this.showTimer = true;\n this.dateFor = this.timer;\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.isCalendar = false;\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.persist();\n }\n\n switchMethod() {\n this.isCalendar = !this.isCalendar;\n if (this.isCalendar) {\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.validTimeForTimer();\n } else {\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n }\n this.persist();\n }\n\n switchMethodWithoutPersist() {\n this.isCalendar = !this.isCalendar;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FormsDto,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TimerClockDto } from '../../../dtos/blocks/timer/timer-clock.dto';\nimport { TimerClockService } from '../../../services/blocks/timer/timer-clock.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: TimerClockService.selector(),\n templateUrl: './timer-clock.component.html',\n})\nexport class TimerClockComponent extends StructuresComponent<TimerClockDto> implements OnInit, OnDestroy {\n @Input() contents: FormsDto<TimerClockDto>;\n private timer: any;\n dateFor: any;\n private second: any;\n private minute: any;\n private hour: any;\n private day: any;\n private distance: number;\n private now: number;\n private countdown: number;\n isCalendar = false;\n seconds = 0;\n minutes = 0;\n hours = 0;\n days = 0;\n showTimer = false;\n timerEnd = false;\n today = new Date();\n\n constructor(public translateService: TranslateService) {\n super();\n this.setComponentService(TimerClockService);\n }\n\n initDistance() {\n (this.second = 1000), (this.minute = this.second * 60), (this.hour = this.minute * 60), (this.day = this.hour * 24);\n this.now = new Date().getTime();\n this.distance = this.timer - new Date().getTime();\n this.now = this.now + this.second;\n this.countdown = new Date(this.timer).getTime();\n this.distance = this.countdown - this.now + 10000 / 9;\n }\n\n changeTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.persist();\n }\n\n validTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.isCalendar = true;\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.showTimer = true;\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n startTime() {\n this.days = Math.floor(this.distance / this.day);\n this.hours = Math.floor((this.distance % this.day) / this.hour);\n this.minutes = Math.floor((this.distance % this.hour) / this.minute);\n this.seconds = Math.floor((this.distance % this.minute) / this.second);\n this.timerEnd = this.days <= 0 && this.hours <= 0 && this.minutes <= 0 && this.seconds <= 0;\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.contentBlock[FORM_NAME_FIRST_STEP]) {\n if (this.contentBlock[FORM_NAME_ABSOLUTE]) {\n this.isCalendar = true;\n this.validTimeForTimer();\n } else {\n this.isCalendar = false;\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n } else {\n this.timer = new Date(this.contentBlock[FORM_NAME_DATE].valueOf() + 1000 * 3600 * 24).getTime();\n this.dateFor = new Date(this.timer);\n }\n this.image.subscribe((media) => {\n this.contentBlock.image = media;\n this.persist();\n });\n }\n\n valueChange(value: any) {\n this.timer = value.startDate.getTime();\n }\n\n valueChangeLive(value: any) {\n this.timer = value.startDate.getTime();\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.initDistance();\n this.startTime();\n this.persist();\n }\n\n validTimeForDate() {\n this.initDistance();\n this.startTime();\n this.showTimer = true;\n this.dateFor = this.timer;\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.isCalendar = false;\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.persist();\n }\n\n switchMethod() {\n this.isCalendar = !this.isCalendar;\n if (this.isCalendar) {\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.validTimeForTimer();\n } else {\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n }\n this.persist();\n }\n\n switchMethodWithoutPersist() {\n this.isCalendar = !this.isCalendar;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TimerAirportDto } from '../../../dtos/blocks/timer/timer-airport.dto';\nimport { TimerAirportService } from '../../../services/blocks/timer/timer-airport.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: TimerAirportService.selector(),\n templateUrl: './timer-airport.component.html',\n})\nexport class TimerAirportComponent extends StructuresComponent<TimerAirportDto> implements OnInit, OnDestroy {\n private timer: any;\n\n dateFor: any;\n\n private second: any;\n\n private minute: any;\n\n private hour: any;\n\n private day: any;\n\n private distance: number;\n\n private now: number;\n\n private countdown: number;\n\n isCalendar = false;\n\n seconds = 0;\n\n minutes = 0;\n\n hours = 0;\n\n days = 0;\n\n secondsFirst = '';\n\n minutesFirst = '';\n\n hoursFirst = '';\n\n daysFirst = '';\n\n secondsSecond = '';\n\n minutesSecond = '';\n\n hoursSecond = '';\n\n daysSecond = '';\n\n showTimer = false;\n\n timerEnd = false;\n\n today = new Date();\n\n constructor(public translateService: TranslateService) {\n super();\n this.setComponentService(TimerAirportService);\n }\n\n initDistance() {\n (this.second = 1000), (this.minute = this.second * 60), (this.hour = this.minute * 60), (this.day = this.hour * 24);\n this.now = new Date().getTime();\n this.distance = this.timer - new Date().getTime();\n this.now = this.now + this.second;\n this.countdown = new Date(this.timer).getTime();\n this.distance = this.countdown - this.now + 10000 / 9;\n }\n\n changeTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.persist();\n }\n\n validTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.isCalendar = true;\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.showTimer = true;\n this.persist();\n }\n\n startTime() {\n this.days = Math.floor(this.distance / this.day);\n this.hours = Math.floor((this.distance % this.day) / this.hour);\n this.minutes = Math.floor((this.distance % this.hour) / this.minute);\n this.seconds = Math.floor((this.distance % this.minute) / this.second);\n if (this.days.toString().length === 1) {\n this.daysFirst = '0';\n this.daysSecond = this.days.toString().substring(0, 1);\n } else {\n this.daysFirst = this.days.toString().substring(0, 1);\n this.daysSecond = this.days.toString().substring(1, 2);\n }\n if (this.hours.toString().length === 1) {\n this.hoursFirst = '0';\n this.hoursSecond = this.hours.toString().substring(0, 1);\n } else {\n this.hoursFirst = this.hours.toString().substring(0, 1);\n this.hoursSecond = this.hours.toString().substring(1, 2);\n }\n if (this.minutes.toString().length === 1) {\n this.minutesFirst = '0';\n this.minutesSecond = this.minutes.toString().substring(0, 1);\n } else {\n this.minutesFirst = this.minutes.toString().substring(0, 1);\n this.minutesSecond = this.minutes.toString().substring(1, 2);\n }\n if (this.seconds.toString().length === 1) {\n this.secondsFirst = '0';\n this.secondsSecond = this.seconds.toString().substring(0, 1);\n } else {\n this.secondsFirst = this.seconds.toString().substring(0, 1);\n this.secondsSecond = this.seconds.toString().substring(1, 2);\n }\n\n this.timerEnd = this.days <= 0 && this.hours <= 0 && this.minutes <= 0 && this.seconds <= 0;\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (!this.contentBlock[FORM_NAME_FIRST_STEP]) {\n if (this.contentBlock[FORM_NAME_ABSOLUTE]) {\n this.isCalendar = true;\n this.validTimeForTimer();\n } else {\n this.isCalendar = false;\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n } else {\n this.timer = new Date(this.contentBlock[FORM_NAME_DATE].valueOf() + 1000 * 3600 * 24).getTime();\n this.dateFor = new Date(this.timer);\n }\n }\n\n valueChange(value: any) {\n this.timer = value.startDate.getTime();\n }\n\n valueChangeLive(value: any) {\n this.timer = value.startDate.getTime();\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.initDistance();\n this.startTime();\n this.persist();\n }\n\n validTimeForDate() {\n this.initDistance();\n this.startTime();\n this.showTimer = true;\n this.dateFor = this.timer;\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.isCalendar = false;\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.persist();\n }\n\n switchMethod() {\n this.isCalendar = !this.isCalendar;\n if (this.isCalendar) {\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.validTimeForTimer();\n } else {\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n }\n this.persist();\n }\n\n switchMethodWithoutPersist() {\n this.isCalendar = !this.isCalendar;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_FORM, FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductZoomDto } from '../../../dtos/blocks/product/product-zoom.dto';\nimport { ProductZoomService } from '../../../services/blocks/product/product-zoom.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { FormListDto } from '../../../dtos/apis/forms/form-list.dto';\nimport { CurrencyDto } from '@wizishop/api-v3-js-sdk';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomService.selector(),\n templateUrl: './product-zoom.component.html',\n})\nexport class ProductZoomComponent extends StructuresComponent<ProductZoomDto> implements OnInit, OnDestroy {\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n priceFormat: string;\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductZoomSelectedDto } from '../../../dtos/blocks/product/product-zoom-selected.dto';\nimport { ProductZoomSelectedService } from '../../../services/blocks/product/product-zoom-selected.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomSelectedService.selector(),\n templateUrl: './product-zoom-selected.component.html',\n})\nexport class ProductZoomSelectedComponent extends StructuresComponent<ProductZoomSelectedDto> implements OnInit, OnDestroy {\n selected = 0;\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomSelectedService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n selectThisPhoto(index) {\n this.selected = index;\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductZoomMoreDto } from '../../../dtos/blocks/product/product-zoom-more.dto';\nimport { ProductZoomMoreService } from '../../../services/blocks/product/product-zoom-more.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\n\n@Component({\n selector: ProductZoomMoreService.selector(),\n templateUrl: './product-zoom-more.component.html',\n})\nexport class ProductZoomMoreComponent extends StructuresComponent<ProductZoomMoreDto> implements OnInit, OnDestroy {\n selected = 0;\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomMoreService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n if (persist) {\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductZoomCompleteDto } from '../../../dtos/blocks/product/product-zoom-complete.dto';\nimport { CUSTOM_LINK_NAME, CUSTOM_UPPERCASE_NAME } from '../../../services/utils/quill.service';\nimport { ProductZoomCompleteService } from '../../../services/blocks/product/product-zoom-complete.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomCompleteService.selector(),\n templateUrl: './product-zoom-complete.component.html',\n})\nexport class ProductZoomCompleteComponent extends StructuresComponent<ProductZoomCompleteDto> implements OnInit, OnDestroy {\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n priceFormat: string;\n\n quillToolbar = [\n ['bold', 'italic', 'underline', 'strike', CUSTOM_UPPERCASE_NAME],\n [{ color: [] }, { background: [] }],\n [{ size: ['small', false, 'large', 'huge'] }],\n [{ align: [] }],\n [CUSTOM_LINK_NAME],\n ['clean'],\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomCompleteService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { ProductZoomCompleteSliderDto } from '../../../dtos/blocks/product/product-zoom-complete-slider.dto';\nimport { CUSTOM_LINK_NAME, CUSTOM_UPPERCASE_NAME } from '../../../services/utils/quill.service';\nimport { ProductZoomCompleteSliderService } from '../../../services/blocks/product/product-zoom-complete-slider.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomCompleteSliderService.selector(),\n templateUrl: './product-zoom-complete-slider.component.html',\n})\nexport class ProductZoomCompleteSliderComponent extends StructuresComponent<ProductZoomCompleteSliderDto> implements OnInit, OnDestroy {\n selected = 0;\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n quillToolbar = [\n ['bold', 'italic', 'underline', 'strike', CUSTOM_UPPERCASE_NAME],\n [{ color: [] }, { background: [] }],\n [{ size: ['small', false, 'large', 'huge'] }],\n [{ align: [] }],\n [CUSTOM_LINK_NAME],\n ['clean'],\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomCompleteSliderService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n selectThisPhoto(index) {\n this.selected = index;\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { CUSTOM_LINK_NAME, CUSTOM_UPPERCASE_NAME } from '../../../services/utils/quill.service';\nimport { ProductZoomSimpleService } from '../../../services/blocks/product/product-zoom-simple.service';\nimport { ProductZoomSimpleDto } from '../../../dtos/blocks/product/product-zoom-simple.dto';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomSimpleService.selector(),\n templateUrl: './product-zoom-simple.component.html',\n})\nexport class ProductZoomSimpleComponent extends StructuresComponent<ProductZoomSimpleDto> implements OnInit, OnDestroy {\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n quillToolbar = [\n ['bold', 'italic', 'underline', 'strike', CUSTOM_UPPERCASE_NAME],\n [{ color: [] }, { background: [] }],\n [{ size: ['small', false, 'large', 'huge'] }],\n [{ align: [] }],\n [CUSTOM_LINK_NAME],\n ['clean'],\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomSimpleService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { CUSTOM_LINK_NAME, CUSTOM_UPPERCASE_NAME } from '../../../services/utils/quill.service';\nimport { ProductZoomCompleteBackgroundService } from '../../../services/blocks/product/product-zoom-complete-background.service';\nimport { ProductZoomCompleteBackgroundDto } from '../../../dtos/blocks/product/product-zoom-complete-background.dto';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomCompleteBackgroundService.selector(),\n templateUrl: './product-zoom-complete-background.component.html',\n})\nexport class ProductZoomCompleteBackgroundComponent\n extends StructuresComponent<ProductZoomCompleteBackgroundDto>\n implements OnInit, OnDestroy {\n sizes = { small: '1820x1000', medium: '1820x1000', large: '1820x1000' };\n\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n quillToolbar = [\n ['bold', 'italic', 'underline', 'strike', CUSTOM_UPPERCASE_NAME],\n [{ color: [] }, { background: [] }],\n [{ size: ['small', false, 'large', 'huge'] }],\n [{ align: [] }],\n [CUSTOM_LINK_NAME],\n ['clean'],\n ];\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomCompleteBackgroundService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n\n this.subscribeToImage();\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n this.contentBlock[this.FORM_NAME_IMAGE] = media;\n this.persist();\n });\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { AmplifyProductZoomService } from '../../../services/blocks/amplify-product/amplify-product-zoom.service';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\nimport { AmplifyProductZoomDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom.dto';\n\n@Component({\n selector: AmplifyProductZoomService.selector(),\n templateUrl: './amplify-product-zoom.component.html',\n})\nexport class AmplifyProductZoomComponent extends StructuresComponent<AmplifyProductZoomDto> implements OnInit, OnDestroy {\n devise: string;\n\n isLoading = true;\n\n type = 'amplify';\n\n selectedProduct: AmplifyProductDto = null;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductZoomService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.devise = '€';\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n changeType(e) {\n this.selectedProduct = null;\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.persist();\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getAmplifySpecificRoute([id], this.type).subscribe(\n (productsList) => {\n productsList.results.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { AmplifyProductZoomMoreService } from '../../../services/blocks/amplify-product/amplify-product-zoom-more.service';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\nimport { AmplifyProductZoomMoreDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom-more.dto';\n\n@Component({\n selector: AmplifyProductZoomMoreService.selector(),\n templateUrl: './amplify-product-zoom-more.component.html',\n})\nexport class AmplifyProductZoomMoreComponent extends StructuresComponent<AmplifyProductZoomMoreDto> implements OnInit, OnDestroy {\n selected = 0;\n\n devise: string;\n\n isLoading = true;\n\n type = 'amplify';\n\n selectedProduct: AmplifyProductDto = null;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductZoomMoreService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isLoading = true;\n this.devise = '€';\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e: any) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n changeType(e: any) {\n this.selectedProduct = null;\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.persist();\n }\n\n searchById(id: string, persist = true) {\n this.isLoading = true;\n this.apiService.getAmplifySpecificRoute([id], this.type).subscribe(\n (productsList) => {\n productsList.results.forEach((product: any) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { AmplifyProductZoomSelectedService } from '../../../services/blocks/amplify-product/amplify-product-zoom-selected.service';\nimport { AmplifyProductZoomSelectedDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom-selected.dto';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\n\n@Component({\n selector: AmplifyProductZoomSelectedService.selector(),\n templateUrl: './amplify-product-zoom-selected.component.html',\n})\nexport class AmplifyProductZoomSelectedComponent extends StructuresComponent<AmplifyProductZoomSelectedDto> implements OnInit, OnDestroy {\n selected = 0;\n\n devise: string;\n\n isLoading = true;\n\n type = 'amplify';\n\n selectedProduct: AmplifyProductDto = null;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductZoomSelectedService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isLoading = true;\n this.devise = '€';\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n selectThisPhoto(index) {\n this.selected = index;\n }\n\n changeType(e) {\n this.selectedProduct = null;\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.persist();\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getAmplifySpecificRoute([id], this.type).subscribe(\n (productsList) => {\n productsList.results.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_AMPLIFY_CATEGORY, FORM_NAME_LIST_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { AmplifyPaginatedDto } from '../../../dtos/apis/amplify/amplify-paginated.dto';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\nimport { AmplifyProductsListSimpleDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-simple.dto';\nimport { AmplifyProductsListSimpleService } from '../../../services/blocks/amplify-products-list/amplify-products-list-simple.service';\n\n@Component({\n selector: AmplifyProductsListSimpleService.selector(),\n templateUrl: './amplify-products-list-simple.component.html',\n})\nexport class AmplifyProductsListSimpleComponent extends StructuresComponent<AmplifyProductsListSimpleDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n\n @ViewChild('structureSearchProduct', { static: false }) set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n catalogSelection: AmplifyPaginatedDto<AmplifyProductDto> = null;\n\n type = 'amplify';\n\n devise: string;\n\n isLoading = true;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductsListSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = false;\n this.devise = '€';\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else if (this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] !== '') {\n this.changeCategory(this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY]);\n }\n }\n\n changeCategory(category, persist = true) {\n if (category !== '') {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n\n this.apiService.getAmplifyProductByCategoryRoute(category, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = category;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n\n this.apiService.getAmplifySpecificRoute(prodIds, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n\n changeType(e) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n this.catalogSelection = null;\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FORM_NAME_AMPLIFY_CATEGORY, FORM_NAME_LIST_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { AmplifyProductsListSelectedService } from '../../../services/blocks/amplify-products-list/amplify-products-list-selected.service';\nimport { AmplifyPaginatedDto } from '../../../dtos/apis/amplify/amplify-paginated.dto';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\nimport { AmplifyProductsListSelectedDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-selected.dto';\n\n@Component({\n selector: AmplifyProductsListSelectedService.selector(),\n templateUrl: './amplify-products-list-selected.component.html',\n})\nexport class AmplifyProductsListSelectedComponent extends StructuresComponent<AmplifyProductsListSelectedDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n\n @ViewChild('structureSearchProduct', { static: false }) set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n type = 'amplify';\n\n catalogSelection: AmplifyPaginatedDto<AmplifyProductDto> = null;\n\n devise: string;\n isLoading = true;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductsListSelectedService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = false;\n this.devise = '€';\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else if (this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] !== '') {\n this.changeCategory(this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY]);\n }\n }\n\n changeType(e) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n this.catalogSelection = null;\n this.persist();\n }\n\n changeCategory(category, persist = true) {\n if (category !== '') {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n\n this.apiService.getAmplifyProductByCategoryRoute(category, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = category;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n\n this.apiService.getAmplifySpecificRoute(prodIds, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport {\n FORM_NAME_AMPLIFY_CATEGORY,\n FORM_NAME_AMPLIFY_NBLIGNE,\n FORM_NAME_LIST_PRODUCT,\n FORM_NAME_TYPE_PRODUCT,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { StructureSearchProductComponent } from '../../../shared/components/structure-search-product/structure-search-product.component';\nimport { AmplifyProductsListClassicService } from '../../../services/blocks/amplify-products-list/amplify-products-list-classic.service';\nimport { AmplifyProductsListClassicDto } from '../../../dtos/blocks/amplify-products-list/amplify-products-list-classic.dto';\nimport { AmplifyPaginatedDto } from '../../../dtos/apis/amplify/amplify-paginated.dto';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\n\n@Component({\n selector: AmplifyProductsListClassicService.selector(),\n templateUrl: './amplify-products-list-classic.component.html',\n})\nexport class AmplifyProductsListClassicComponent extends StructuresComponent<AmplifyProductsListClassicDto> implements OnInit, OnDestroy {\n structureSearchProduct: StructureSearchProductComponent;\n\n @ViewChild('structureSearchProduct', { static: false }) set content(control: StructureSearchProductComponent) {\n this.structureSearchProduct = control;\n }\n\n catalogSelection: AmplifyPaginatedDto<AmplifyProductDto> = null;\n\n type = 'amplify';\n\n devise: string;\n\n isLoading = true;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductsListClassicService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = false;\n this.devise = '€';\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_LIST_PRODUCT].length) {\n this.changeProduct(this.contentBlock[FORM_NAME_LIST_PRODUCT], false);\n } else if (this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] !== '') {\n this.changeCategory(this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY]);\n }\n }\n\n changeType(e) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n this.catalogSelection = null;\n this.persist();\n }\n\n changeCategory(category, persist = true) {\n if (category !== '') {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = [];\n\n this.apiService.getAmplifyProductByCategoryRoute(category, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = category;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n\n changeProduct(prodIds, persist = true) {\n if (prodIds.length) {\n this.isLoading = true;\n this.contentBlock[FORM_NAME_AMPLIFY_CATEGORY] = '';\n this.apiService.getAmplifySpecificRoute(prodIds, this.type, 20).subscribe(\n (catalogList) => {\n this.catalogSelection = catalogList;\n if (persist) {\n this.contentBlock[FORM_NAME_LIST_PRODUCT] = prodIds;\n this.persist();\n }\n this.isLoading = false;\n },\n () => {\n this.catalogSelection = null;\n this.isLoading = false;\n }\n );\n }\n }\n}\n","import { ANALYZE_FOR_ENTRY_COMPONENTS, NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n exports: []\n})\nexport class LoaderComponentModule {\n static withComponents(components: any[]) {\n return {\n ngModule: LoaderComponentModule,\n providers: [{ provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true }]\n };\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_ABSOLUTE,\n FORM_NAME_DATE,\n FORM_NAME_DAYS,\n FORM_NAME_FIRST_STEP,\n FORM_NAME_HOURS,\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_LEFT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_MINUTES,\n FORM_NAME_SECONDS,\n FORM_NAME_HREF,\n FORM_NAME_BACKGROUND_COLOR_BUTTON,\n FORM_NAME_COLOR_BUTTON,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TimerMultipleImgDto } from '../../../dtos/blocks/timer/timer-multiple-img.dto';\nimport { TimerMultipleImgService } from '../../../services/blocks/timer/timer-multiple-img.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: TimerMultipleImgService.selector(),\n templateUrl: './timer-multiple-img.component.html',\n})\nexport class TimerMultipleImgComponent extends StructuresComponent<TimerMultipleImgDto> implements OnInit, OnDestroy {\n currentType = FORM_NAME_IMAGE_LEFT;\n private timer: any;\n dateFor: any;\n private second: any;\n private minute: any;\n private hour: any;\n private day: any;\n private distance: number;\n private now: number;\n private countdown: number;\n isCalendar = false;\n seconds = 0;\n minutes = 0;\n hours = 0;\n days = 0;\n showTimer = false;\n timerEnd = false;\n today = new Date();\n\n sizes1 = { small: '882x374', medium: '882x404', large: '882x429' };\n sizes2 = { small: '882x498', medium: '882x532', large: '882x564' };\n sizes3 = { small: '429x498', medium: '429x532', large: '429x564' };\n sizes4 = { small: '615x865', medium: '615x900', large: '615x961' };\n\n constructor(public translateService: TranslateService) {\n super();\n this.setComponentService(TimerMultipleImgService);\n }\n\n initDistance() {\n (this.second = 1000), (this.minute = this.second * 60), (this.hour = this.minute * 60), (this.day = this.hour * 24);\n this.now = new Date().getTime();\n this.distance = this.timer - new Date().getTime();\n this.now = this.now + this.second;\n this.countdown = new Date(this.timer).getTime();\n this.distance = this.countdown - this.now + 10000 / 9;\n }\n\n changeTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.persist();\n }\n\n validTimeForTimer() {\n this.timer = new Date(\n new Date().valueOf() +\n 1000 * 3600 * 24 * this.contentBlock[FORM_NAME_DAYS] +\n 60000 * this.contentBlock[FORM_NAME_MINUTES] +\n this.contentBlock[FORM_NAME_SECONDS] * (10000 / 9) +\n this.contentBlock[FORM_NAME_HOURS] * 3600 * 1000\n ).getTime();\n this.initDistance();\n this.startTime();\n this.isCalendar = true;\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.showTimer = true;\n this.persist();\n }\n\n startTime() {\n this.days = Math.floor(this.distance / this.day);\n this.hours = Math.floor((this.distance % this.day) / this.hour);\n this.minutes = Math.floor((this.distance % this.hour) / this.minute);\n this.seconds = Math.floor((this.distance % this.minute) / this.second);\n this.timerEnd = this.days <= 0 && this.hours <= 0 && this.minutes <= 0 && this.seconds <= 0;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (!this.contentBlock[FORM_NAME_FIRST_STEP]) {\n if (this.contentBlock[FORM_NAME_ABSOLUTE]) {\n this.isCalendar = true;\n this.validTimeForTimer();\n } else {\n this.isCalendar = false;\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n }\n } else {\n this.timer = new Date(this.contentBlock[FORM_NAME_DATE].valueOf() + 1000 * 3600 * 24).getTime();\n this.dateFor = new Date(this.timer);\n }\n }\n\n valueChange(value: any) {\n this.timer = value.startDate.getTime();\n }\n\n valueChangeLive(value: any) {\n this.timer = value.startDate.getTime();\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.contentBlock[FORM_NAME_ABSOLUTE] = this.isCalendar;\n this.initDistance();\n this.startTime();\n this.persist();\n }\n\n validTimeForDate() {\n this.initDistance();\n this.startTime();\n this.showTimer = true;\n this.dateFor = this.timer;\n this.contentBlock[FORM_NAME_DATE] = this.timer;\n this.isCalendar = false;\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.contentBlock[FORM_NAME_FIRST_STEP] = false;\n this.persist();\n }\n\n switchMethod() {\n this.isCalendar = !this.isCalendar;\n if (this.isCalendar) {\n this.contentBlock[FORM_NAME_ABSOLUTE] = false;\n this.validTimeForTimer();\n } else {\n this.timer = this.contentBlock[FORM_NAME_DATE];\n this.validTimeForDate();\n this.contentBlock[FORM_NAME_ABSOLUTE] = true;\n }\n this.persist();\n }\n\n switchMethodWithoutPersist() {\n this.isCalendar = !this.isCalendar;\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n this.addASliderWithMedia(this.currentType, media);\n });\n }\n\n getMediaFor(type) {\n this.currentType = type;\n this.getMedia(type);\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addASliderWithMedia(type, media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[type] = imageMediaDto;\n this.persist();\n }\n\n onTooltipLostFocus($event: boolean) {\n this.hasTooltipFocusedLeftTop = !$event;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { CatalogDto } from '../../../dtos/apis/catalogs/catalog.dto';\nimport { ProductZoomTripleColumnService } from '../../../services/blocks/product/product-zoom-triple-column.service';\nimport { ProductZoomTripleColumnDto } from '../../../dtos/blocks/product/product-zoom-triple-column.dto';\nimport { CurrencyService } from '../../../services/utils/currency.service';\nimport { ExternalConfigDto } from '../../../dtos/configs/external/external-config.dto';\n\n@Component({\n selector: ProductZoomTripleColumnService.selector(),\n templateUrl: './product-zoom-triple-column.component.html',\n})\nexport class ProductZoomTripleColumnComponent extends StructuresComponent<ProductZoomTripleColumnDto> implements OnInit, OnDestroy {\n imageFrontUrl: string;\n\n devise: string;\n iso: string;\n country: string;\n priceFormat: string;\n\n isLoading = true;\n\n selectedProduct: CatalogDto = null;\n\n constructor(\n private apiService: ApiService,\n private externalConfigService: ExternalConfigService,\n private currencyService: CurrencyService\n ) {\n super();\n this.setComponentService(ProductZoomTripleColumnService);\n }\n\n async ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.imageFrontUrl = this.externalConfigService.getUrlImageFront();\n if (!this.currencyService.ready) {\n const isCurrencyReady = await this.currencyService.initializeCurrency();\n if (isCurrencyReady) {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n } else {\n const conf = new ExternalConfigDto();\n this.devise = conf.devise;\n }\n } else {\n this.devise = this.currencyService.symbol;\n this.country = this.currencyService.country;\n this.iso = this.currencyService.iso;\n }\n this.apiService.getShopTemplateLang().subscribe((data) => {\n this.country = data.locale.replace('_', '-');\n });\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getCatalogSpecific([id]).subscribe(\n (catalogList) => {\n catalogList.products.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.priceFormat = new Intl.NumberFormat(this.country, { style: 'currency', currency: this.iso }).format(\n this.selectedProduct.price.price\n );\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_ID_PRODUCT } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ApiService } from '../../../services/utils/api.service';\nimport { ExternalConfigService } from '../../../services/utils/external-config.service';\nimport { AmplifyProductZoomTripleColumnDto } from '../../../dtos/blocks/amplify-product/amplify-product-zoom-triple-column.dto';\nimport { AmplifyProductZoomTripleColumnService } from '../../../services/blocks/amplify-product/amplify-product-zoom-triple-column.service';\nimport { AmplifyProductDto } from '../../../dtos/apis/amplify/amplify-product.dto';\n\n@Component({\n selector: AmplifyProductZoomTripleColumnService.selector(),\n templateUrl: './amplify-product-zoom-triple-column.component.html',\n})\nexport class AmplifyProductZoomTripleColumnComponent\n extends StructuresComponent<AmplifyProductZoomTripleColumnDto>\n implements OnInit, OnDestroy {\n devise: string;\n\n isLoading = true;\n\n type = 'amplify';\n\n selectedProduct: AmplifyProductDto = null;\n\n constructor(private apiService: ApiService, private externalConfigService: ExternalConfigService) {\n super();\n this.setComponentService(AmplifyProductZoomTripleColumnService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.isLoading = true;\n this.devise = '€';\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n\n if (this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE]) {\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE];\n }\n\n if (this.contentBlock[FORM_NAME_ID_PRODUCT]) {\n this.searchById(this.contentBlock[FORM_NAME_ID_PRODUCT], false);\n } else {\n this.isLoading = false;\n }\n }\n\n selectThisForm() {\n this.persist();\n }\n\n prodSearched(e) {\n if (e.length) {\n this.searchById(e[0]);\n }\n }\n\n changeType(e) {\n this.selectedProduct = null;\n this.type = this.contentBlock[this.FORM_NAME_AMPLIFY_TYPE] = e;\n this.persist();\n }\n\n searchById(id, persist = true) {\n this.isLoading = true;\n this.apiService.getAmplifySpecificRoute([id], this.type).subscribe(\n (productsList) => {\n productsList.results.forEach((product) => {\n if (product.id.toString() === id.toString()) {\n this.selectedProduct = product;\n this.contentBlock[FORM_NAME_ID_PRODUCT] = id;\n if (persist) {\n this.persist();\n }\n }\n });\n\n this.isLoading = false;\n },\n () => {\n this.selectedProduct = null;\n this.isLoading = false;\n }\n );\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextsQuadrupleNumbersService } from '../../../services/blocks/texts/texts-quadruple-numbers.service';\nimport { TextsQuadrupleNumbersDto } from '../../../dtos/blocks/texts/texts-quadruple-numbers.dto';\n\n@Component({\n selector: TextsQuadrupleNumbersService.selector(),\n templateUrl: './texts-quadruple-numbers.component.html'\n})\nexport class TextsQuadrupleNumbersComponent extends StructuresComponent<TextsQuadrupleNumbersDto> implements OnInit, OnDestroy {\n constructor() {\n super();\n this.setComponentService(TextsQuadrupleNumbersService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { ImageMediaDto } from '../medias/image/image-media.dto';\nimport { FORM_NAME_AUTHOR_NAME, FORM_NAME_AUTHOR_TITLE, FORM_NAME_CONTENT, FORM_NAME_SLIDER } from '../../forms/forms.dto';\n\nexport class AboutElementDto {\n [FORM_NAME_SLIDER] = new ImageMediaDto();\n [FORM_NAME_AUTHOR_NAME] = 'wb.AboutElementDto.author.1';\n [FORM_NAME_AUTHOR_TITLE] = 'wb.AboutElementDto.author.2';\n [FORM_NAME_CONTENT] = 'wb.AboutElementDto.content.1';\n}\n","import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { AboutBlockService } from '../../../services/blocks/witness/about-block.service';\nimport { AboutBlockDto } from '../../../dtos/blocks/witness/about-block.dto';\nimport {\n FORM_NAME_ELEMENTS,\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_SLIDER\n} from '../../../dtos/forms/forms.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { AboutElementDto } from '../../../dtos/configs/witness/about-element.dto';\n\n@Component({\n selector: AboutBlockService.selector(),\n templateUrl: './about-block.component.html'\n})\nexport class AboutBlockComponent extends StructuresComponent<AboutBlockDto> implements OnInit, OnDestroy {\n displayedTab = 0;\n\n selectedKey = '';\n\n moving = false;\n\n @ViewChild('slider') slider;\n\n sizes = '320x260';\n\n constructor() {\n super();\n this.setComponentService(AboutBlockService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.contents.block.init === true && this.contents.block.elements.length === 0) {\n this.contents.block.elements.push(new AboutElementDto());\n this.contents.block.elements.push(new AboutElementDto());\n }\n this.contents.block.init = true;\n this.subscribeToImage();\n }\n\n subscribeToImage() {\n this.image.subscribe(media => {\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else {\n this.addASliderWithMedia(media);\n }\n });\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n showSlide(key) {\n if (this.contentBlock[FORM_NAME_ELEMENTS].length === 1) {\n return;\n }\n if (key === this.contentBlock[FORM_NAME_ELEMENTS].length - 1) {\n key -= 1;\n }\n const move = key - this.displayedTab;\n const currentMargin = this.slider.nativeElement.style.marginLeft.replace('%', '');\n this.moving = true;\n this.displayedTab = key;\n this.slider.nativeElement.style.marginLeft = (Number(currentMargin) - 50 * move).toString() + '%';\n setTimeout(() => {\n this.moving = false;\n }, 300);\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_ELEMENTS][this.selectedKey][FORM_NAME_SLIDER].push(imageMediaDto);\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock[FORM_NAME_ELEMENTS][this.selectedKey][FORM_NAME_SLIDER];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock[FORM_NAME_ELEMENTS][this.selectedKey][FORM_NAME_SLIDER] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n removeDiapo(key) {\n const elementArray = this.contentBlock[FORM_NAME_ELEMENTS];\n delete elementArray[key];\n\n this.contentBlock[FORM_NAME_ELEMENTS] = elementArray.filter(function(item) {\n return item !== undefined;\n });\n\n if (key === 0) {\n this.showSlide(1);\n } else {\n this.showSlide(key - 1);\n }\n this.persist();\n }\n\n addDiapo() {\n this.contentBlock[FORM_NAME_ELEMENTS].push(new AboutElementDto());\n this.showSlide(this.contentBlock[FORM_NAME_ELEMENTS].length - 1);\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock[FORM_NAME_ELEMENTS], event.previousIndex, event.currentIndex);\n this.showSlide(event.currentIndex);\n this.persist();\n }\n\n arrowLeftClicked() {\n if (this.displayedTab > 0) {\n const currentMargin = this.slider.nativeElement.style.marginLeft.replace('%', '');\n this.moving = true;\n this.displayedTab -= 1;\n this.slider.nativeElement.style.marginLeft = (Number(currentMargin) + 50).toString() + '%';\n setTimeout(() => {\n this.moving = false;\n }, 300);\n }\n }\n\n arrowRightClicked() {\n if (this.displayedTab < this.contentBlock[FORM_NAME_ELEMENTS].length - 2) {\n const currentMargin = this.slider.nativeElement.style.marginLeft.replace('%', '');\n this.moving = true;\n this.displayedTab += 1;\n if (currentMargin !== '') {\n this.slider.nativeElement.style.marginLeft = (currentMargin - 50).toString() + '%';\n } else {\n this.slider.nativeElement.style.marginLeft = '-50%';\n }\n setTimeout(() => {\n this.moving = false;\n }, 300);\n }\n }\n}\n","import { StructuresComponent } from '../../structures.component';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FaqSimpleService } from '../../../services/blocks/faq/faq-simple.service';\nimport { FaqSimpleDto } from '../../../dtos/blocks/faq/faq-simple.dto';\n\n@Component({\n selector: FaqSimpleService.selector(),\n templateUrl: './faq-simple.component.html'\n})\nexport class FaqSimpleComponent extends StructuresComponent<FaqSimpleDto> implements OnInit, OnDestroy {\n // Constructor\n constructor() {\n super();\n this.setComponentService(FaqSimpleService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { StructuresComponent } from '../../structures.component';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FaqSimpleBackgroundService } from '../../../services/blocks/faq/faq-simple-background.service';\nimport { FaqSimpleBackgroundDto } from '../../../dtos/blocks/faq/faq-simple-background.dto';\n\n@Component({\n selector: FaqSimpleBackgroundService.selector(),\n templateUrl: './faq-simple-background.component.html'\n})\nexport class FaqSimpleBackgroundComponent extends StructuresComponent<FaqSimpleBackgroundDto> implements OnInit, OnDestroy {\n // Constructor\n constructor() {\n super();\n this.setComponentService(FaqSimpleBackgroundService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { FORM_NAME_CONTENT, FORM_NAME_TITLE, FORM_NAME_URL, FORM_NAME_URL_TARGET } from '../../../forms/forms.dto';\nimport { ImageMediaDto } from './image-media.dto';\n\nexport class ImageMediaAndTextDto extends ImageMediaDto {\n [FORM_NAME_URL_TARGET] = '_self';\n [FORM_NAME_CONTENT] = 'wb.ImageMediaAndTextDto.content.1';\n [FORM_NAME_TITLE] = '';\n [FORM_NAME_URL] = '';\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n FORM_NAME_IMAGE_HEIGHT,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_TEXT_BACKGROUND,\n FORM_NAME_TEXT_BACKGROUND_LINK,\n} from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsLinkDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-link.dto';\nimport { TextBackgroundsLinkService } from '../../../services/blocks/text-backgrounds/text-backgrounds-link.service';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ImageMediaAndTextDto } from '../../../dtos/configs/medias/image/image-media-and-text.dto';\n\n@Component({\n selector: TextBackgroundsLinkService.selector(),\n templateUrl: './text-backgrounds-link.component.html',\n})\nexport class TextBackgroundsLinkComponent extends StructuresComponent<TextBackgroundsLinkDto> implements OnInit, OnDestroy {\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n minImages = 2;\n maxImages = 5;\n currentNumber = 0;\n selectedKey = '';\n action = '';\n triggerConfig = {\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n 5: false,\n };\n hasTooltipFocusedImgArray = [];\n hasTooltipFocusedImg = false;\n\n constructor() {\n super();\n this.setComponentService(TextBackgroundsLinkService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe((media) => {\n if (this.action === 'add') {\n this.addASliderWithMedia(media);\n } else if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else {\n this.replaceBgWithMedia(media);\n }\n });\n }\n\n getMediaFor(key, action = 'update') {\n this.selectedKey = key;\n this.action = action;\n this.getMedia();\n }\n\n addASliderWithMedia(media) {\n if (this.selectedKey !== '') {\n const imageMediaDto = new ImageMediaAndTextDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK].push(imageMediaDto);\n this.currentNumber++;\n } else {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND] = imageMediaDto;\n }\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK][this.selectedKey];\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK][this.selectedKey] = currentImage;\n\n this.persist();\n }\n\n replaceBgWithMedia(media) {\n const currentImage = this.contentBlock[FORM_NAME_TEXT_BACKGROUND];\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND] = currentImage;\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n console.log(key);\n console.log(this.contentBlock[FORM_NAME_TEXT_BACKGROUND]);\n if (key && imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n } else if (!key && imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_TEXT_BACKGROUND][FORM_NAME_IMAGE_URL]) {\n console.log('pouet');\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK];\n delete arrayToShorten[key];\n\n this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK] = arrayToShorten.filter(function (item) {\n return item !== undefined;\n });\n this.currentNumber--;\n this.persist();\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock[FORM_NAME_TEXT_BACKGROUND_LINK], event.previousIndex, event.currentIndex);\n this.persist();\n }\n\n openConfig(number) {\n this.triggerConfig[number] = true;\n }\n\n closeConfig(number) {\n this.triggerConfig[number] = false;\n }\n\n /**\n * Override the same funtion in structures.components.ts\n * @param key\n * @param event\n */\n checkQuillToolTip(key: string, event: boolean) {\n const [currentKey, index] = key.split('_');\n\n if (currentKey === 'hasTooltipFocusedImg') {\n this.hasTooltipFocusedImgArray[index] = event;\n } else {\n this[key] = event;\n }\n this.hasTooltipFocusedImg = !!this.hasTooltipFocusedImgArray.filter((value) => value).length;\n }\n}\n","import { StructuresComponent } from '../../structures.component';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FaqFrameService } from '../../../services/blocks/faq/faq-frame.service';\nimport { FaqFrameDto } from '../../../dtos/blocks/faq/faq-frame.dto';\n\n@Component({\n selector: FaqFrameService.selector(),\n templateUrl: './faq-frame.component.html'\n})\nexport class FaqFrameComponent extends StructuresComponent<FaqFrameDto> implements OnInit, OnDestroy {\n // Constructor\n constructor() {\n super();\n this.setComponentService(FaqFrameService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { StructuresComponent } from '../../structures.component';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FaqAccordionDto } from '../../../dtos/blocks/faq/faq-accordion.dto';\nimport { FaqAccordionService } from '../../../services/blocks/faq/faq-accordion.service';\n\n@Component({\n selector: FaqAccordionService.selector(),\n templateUrl: './faq-accordion.component.html'\n})\nexport class FaqAccordionComponent extends StructuresComponent<FaqAccordionDto> implements OnInit, OnDestroy {\n // Constructor\n constructor() {\n super();\n this.setComponentService(FaqAccordionService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FaqListIconService, TYPE_FAQ_LIST_ICON } from '../../../services/blocks/faq/faq-list-icon.service';\nimport { FaqListIconDto } from '../../../dtos/blocks/faq/faq-list-icon.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { FaqDto } from '../../../dtos/blocks/faq/faq.dto';\n\n@Component({\n selector: FaqListIconService.selector(),\n templateUrl: './faq-list-icon.component.html'\n})\nexport class FaqListIconComponent extends StructuresComponent<FaqListIconDto> implements OnInit {\n constructor() {\n super();\n this.setComponentService(FaqListIconService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n addFaqCol() {\n this.contentBlock[this.FORM_NAME_FAQ].push(new FaqDto());\n this.persist();\n }\n\n deleteRow(i) {\n this.contentBlock[this.FORM_NAME_FAQ].splice(i, 1);\n this.persist();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TextBackgroundsWithBannerService } from '../../../services/blocks/text-backgrounds/text-backgrounds-with-banner.service';\nimport { TextBackgroundsWithBannerDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-with-banner.dto';\n\n@Component({\n selector: TextBackgroundsWithBannerService.selector(),\n templateUrl: './text-backgrounds-with-banner.component.html',\n})\nexport class TextBackgroundsWithBannerComponent extends StructuresComponent<TextBackgroundsWithBannerDto> implements OnInit, OnDestroy {\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(TextBackgroundsWithBannerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.image.subscribe((media) => {\n this.contentBlock.image = media;\n this.persist();\n });\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { StructuresComponent } from '../../structures.component';\nimport { FormsOnboardingDto } from '../../../dtos/blocks/onboarding/forms-onboarding.do';\nimport { FormsOnboardingService } from '../../../services/blocks/onboarding/forms-onboarding.service';\n\n@Component({\n selector: FormsOnboardingService.selector(),\n templateUrl: './forms-onboarding.component.html',\n})\nexport class FormsOnboardingComponent extends StructuresComponent<FormsOnboardingDto> implements OnInit {\n focusInput = false;\n constructor() {\n super();\n this.setComponentService(FormsOnboardingService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { FORM_NAME_ICON, FORM_NAME_TITLE, FORM_NAME_COLUMNS, FORM_NAME_IMAGE } from '../../forms/forms.dto';\nimport { FontOrMediaDto } from '../../configs/medias/image/font-or-media.dto';\nimport { ImageMediaDto } from '../../configs/medias/image/image-media.dto';\n\nexport class TextBackgroundsRowsIconTextDto {\n [FORM_NAME_TITLE] = 'wb.dto.TITLE.43';\n [FORM_NAME_ICON] = new FontOrMediaDto('far fa-question-circle');\n [FORM_NAME_IMAGE]: ImageMediaDto;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FaqListIconDto } from '../../../dtos/blocks/faq/faq-list-icon.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsThreeRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-three-rows-icon-text.service';\nimport {\n FORM_NAME_INIT,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_IMAGE_HEIGHT,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-rows-icon-text.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TranslateBlockService } from '../../../services/utils/translate-block.service';\n\n@Component({\n selector: TextBackgroundsThreeRowsIconTextService.selector(),\n templateUrl: './text-backgrounds-three-rows-icon-text.component.html',\n})\nexport class TextBackgroundsThreeRowsIconTextComponent extends StructuresComponent<FaqListIconDto> implements OnInit {\n row = 0;\n column = 0;\n sizes = { small: '620x175', medium: '620x250', large: '620x325' };\n\n constructor(private translateBlockService: TranslateBlockService) {\n super();\n this.setComponentService(TextBackgroundsThreeRowsIconTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.row = 0;\n this.column = 0;\n this.subscribeToImage();\n if (!this.contentBlock[FORM_NAME_INIT]) {\n this.addRow(0);\n this.contentBlock[FORM_NAME_INIT] = true;\n this.persist();\n }\n }\n\n addRow(index) {\n this.contentBlock[FORM_NAME_ROWS].push(new Array<TextBackgroundsRowsIconTextDto>());\n for (var i = 0; i < this.contentBlock[FORM_NAME_ITEM_NUMBER]; ++i) {\n const newElement = new TextBackgroundsRowsIconTextDto();\n this.translateBlockService.translateProperties(newElement);\n this.contentBlock[FORM_NAME_ROWS][index].push(newElement);\n }\n this.contentBlock[FORM_NAME_LINE_NUMBER] += 1;\n this.persist();\n console.log(this.contentBlock[FORM_NAME_ROWS]);\n }\n\n deleteRow(i) {\n this.contentBlock[FORM_NAME_ROWS].splice(i, 1);\n this.contentBlock[FORM_NAME_LINE_NUMBER] -= 1;\n this.persist();\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n this.addBackgroundImageMedia(media);\n });\n }\n\n onClickUpdateImage(row, column) {\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n updateThisImage(imageWidthHeight: MediaWidthHeightDto, $event) {\n if (\n imageWidthHeight[FORM_NAME_IMAGE_URL] ===\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_URL]\n ) {\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_WIDTH] =\n imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_HEIGHT] =\n imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addNewImage(row, column) {\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n addBackgroundImageMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column].image = imageMediaDto;\n\n this.persist();\n }\n\n stopPropagation($event) {\n $event.stopPropagation();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FaqListIconDto } from '../../../dtos/blocks/faq/faq-list-icon.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsFourRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-four-rows-icon-text.service';\nimport {\n FORM_NAME_INIT,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_IMAGE_HEIGHT,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-rows-icon-text.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TranslateBlockService } from '../../../services/utils/translate-block.service';\n\n@Component({\n selector: TextBackgroundsFourRowsIconTextService.selector(),\n templateUrl: './text-backgrounds-four-rows-icon-text.component.html',\n})\nexport class TextBackgroundsFourRowsIconTextComponent extends StructuresComponent<FaqListIconDto> implements OnInit {\n row = 0;\n column = 0;\n sizes = { small: '458x175', medium: '458x250', large: '458x325' };\n\n constructor(private translateBlockService: TranslateBlockService) {\n super();\n this.setComponentService(TextBackgroundsFourRowsIconTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.row = 0;\n this.column = 0;\n this.subscribeToImage();\n if (!this.contentBlock[FORM_NAME_INIT]) {\n this.addRow(0);\n this.contentBlock[FORM_NAME_INIT] = true;\n this.persist();\n }\n }\n\n addRow(index) {\n this.contentBlock[FORM_NAME_ROWS].push(new Array<TextBackgroundsRowsIconTextDto>());\n for (var i = 0; i < this.contentBlock[FORM_NAME_ITEM_NUMBER]; ++i) {\n const newElement = new TextBackgroundsRowsIconTextDto();\n this.translateBlockService.translateProperties(newElement);\n this.contentBlock[FORM_NAME_ROWS][index].push(newElement);\n }\n this.contentBlock[FORM_NAME_LINE_NUMBER] += 1;\n this.persist();\n console.log(this.contentBlock[FORM_NAME_ROWS]);\n }\n\n deleteRow(i) {\n this.contentBlock[FORM_NAME_ROWS].splice(i, 1);\n this.contentBlock[FORM_NAME_LINE_NUMBER] -= 1;\n this.persist();\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n this.addBackgroundImageMedia(media);\n });\n }\n\n onClickUpdateImage(row, column) {\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n updateThisImage(imageWidthHeight: MediaWidthHeightDto, $event) {\n if (\n imageWidthHeight[FORM_NAME_IMAGE_URL] ===\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_URL]\n ) {\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_WIDTH] =\n imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_HEIGHT] =\n imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addNewImage(row, column) {\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n addBackgroundImageMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column].image = imageMediaDto;\n\n this.persist();\n }\n\n stopPropagation($event) {\n $event.stopPropagation();\n }\n\n triggerConfig(uuid) {\n const element: HTMLElement = document.querySelectorAll('#' + uuid + ' .wb-structure-config__tools')[0] as HTMLElement;\n console.log(element);\n element.click();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FaqListIconDto } from '../../../dtos/blocks/faq/faq-list-icon.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { TextBackgroundsTwoRowsIconTextService } from '../../../services/blocks/text-backgrounds/text-backgrounds-two-rows-icon-text.service';\nimport {\n FORM_NAME_INIT,\n FORM_NAME_ROWS,\n FORM_NAME_ITEM_NUMBER,\n FORM_NAME_LINE_NUMBER,\n FORM_NAME_IMAGE_URL,\n FORM_NAME_IMAGE,\n FORM_NAME_IMAGE_WIDTH,\n FORM_NAME_IMAGE_HEIGHT,\n} from '../../../dtos/forms/forms.dto';\nimport { TextBackgroundsRowsIconTextDto } from '../../../dtos/blocks/text-backgrounds/text-backgrounds-rows-icon-text.dto';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { TranslateBlockService } from '../../../services/utils/translate-block.service';\n\n@Component({\n selector: TextBackgroundsTwoRowsIconTextService.selector(),\n templateUrl: './text-backgrounds-two-rows-icon-text.component.html',\n})\nexport class TextBackgroundsTwoRowsIconTextComponent extends StructuresComponent<FaqListIconDto> implements OnInit {\n row = 0;\n column = 0;\n sizes = { small: '945x175', medium: '945x250', large: '945x325' };\n\n constructor(private translateBlockService: TranslateBlockService) {\n super();\n this.setComponentService(TextBackgroundsTwoRowsIconTextService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.row = 0;\n this.column = 0;\n this.subscribeToImage();\n if (!this.contentBlock[FORM_NAME_INIT]) {\n this.addRow(0);\n this.contentBlock[FORM_NAME_INIT] = true;\n this.persist();\n }\n }\n\n addRow(index) {\n this.contentBlock[FORM_NAME_ROWS].push(new Array<TextBackgroundsRowsIconTextDto>());\n for (var i = 0; i < this.contentBlock[FORM_NAME_ITEM_NUMBER]; ++i) {\n const newElement = new TextBackgroundsRowsIconTextDto();\n this.translateBlockService.translateProperties(newElement);\n this.contentBlock[FORM_NAME_ROWS][index].push(newElement);\n }\n this.contentBlock[FORM_NAME_LINE_NUMBER] += 1;\n this.persist();\n }\n\n deleteRow(i) {\n this.contentBlock[FORM_NAME_ROWS].splice(i, 1);\n this.contentBlock[FORM_NAME_LINE_NUMBER] -= 1;\n this.persist();\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n this.addBackgroundImageMedia(media);\n });\n }\n\n onClickUpdateImage(row, column) {\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n updateThisImage(imageWidthHeight: MediaWidthHeightDto, $event) {\n if (\n imageWidthHeight[FORM_NAME_IMAGE_URL] ===\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_URL]\n ) {\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_WIDTH] =\n imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column][FORM_NAME_IMAGE][FORM_NAME_IMAGE_HEIGHT] =\n imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n addNewImage(row, column) {\n console.log('row ' + row + ' col ' + column);\n this.row = row;\n this.column = column;\n this.getMedia();\n }\n\n addBackgroundImageMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock[FORM_NAME_ROWS][this.row][this.column].image = imageMediaDto;\n\n this.persist();\n }\n\n stopPropagation($event) {\n $event.stopPropagation();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FORM_NAME_IMAGE_HEIGHT, FORM_NAME_IMAGE_URL, FORM_NAME_IMAGE_WIDTH, FORM_NAME_SLIDER } from '../../../dtos/forms/forms.dto';\nimport { StructuresComponent } from '../../structures.component';\nimport { ImageMediaDto } from '../../../dtos/configs/medias/image/image-media.dto';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MediaWidthHeightDto } from '../../../dtos/configs/medias/media-width-height.dto';\nimport { SliderWithBannerDto } from '../../../dtos/blocks/sliders/sliders-with-banner.dto';\nimport { SlidersWithBannerService } from '../../../services/blocks/sliders/sliders-with-banner.service';\n\n@Component({\n selector: SlidersWithBannerService.selector(),\n templateUrl: './slider-with-banner.component.html',\n})\nexport class SliderWithBannerComponent extends StructuresComponent<SliderWithBannerDto> implements OnInit, OnDestroy {\n selectedTab: number | null = null;\n\n showEmptyImage = true;\n\n selectedKey = '';\n\n sizes = { small: '2000x550', medium: '2000x660', large: '2000x770' };\n\n constructor() {\n super();\n this.setComponentService(SlidersWithBannerService);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscribeToImage();\n if (this.contentBlock.slider.length) {\n this.showEmptyImage = false;\n this.selectedTab = 0;\n }\n }\n\n subscribeToImage() {\n this.image.subscribe((media) => {\n if (this.selectedKey !== '') {\n this.replaceSliderWithMedia(media);\n } else {\n this.addASliderWithMedia(media);\n }\n });\n }\n\n getMediaFor(key) {\n this.selectedKey = key;\n this.getMedia();\n }\n\n showSlide(key) {\n if (this.selectedTab === key && !this.showEmptyImage) {\n return;\n }\n\n this.showEmptyImage = false;\n this.selectedTab = key;\n }\n\n addASliderWithMedia(media) {\n const imageMediaDto = new ImageMediaDto();\n imageMediaDto.image_url = media.image_url;\n imageMediaDto.id = media.id;\n\n this.contentBlock.slider.push(imageMediaDto);\n\n this.selectedTab = this.contentBlock.slider.length - 1;\n this.showEmptyImage = false;\n\n this.persist();\n }\n\n replaceSliderWithMedia(media) {\n const currentImage = this.contentBlock.slider[this.selectedKey];\n\n currentImage.image_url = media.image_url;\n currentImage.id = media.id;\n\n this.contentBlock.slider[this.selectedKey] = currentImage;\n this.selectedKey = '';\n\n this.persist();\n }\n\n updateThisImage(key, imageWidthHeight: MediaWidthHeightDto) {\n if (imageWidthHeight[FORM_NAME_IMAGE_URL] === this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_URL]) {\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_WIDTH] = imageWidthHeight[FORM_NAME_IMAGE_WIDTH];\n this.contentBlock[FORM_NAME_SLIDER][key][FORM_NAME_IMAGE_HEIGHT] = imageWidthHeight[FORM_NAME_IMAGE_HEIGHT];\n this.persist();\n }\n }\n\n removeThisSlide(key) {\n const arrayToShorten = this.contentBlock.slider;\n delete arrayToShorten[key];\n\n this.contentBlock.slider = arrayToShorten.filter(function (item) {\n return item !== undefined;\n });\n\n if (this.contentBlock.slider.length > 0 && this.showEmptyImage === false) {\n this.selectedTab = 0;\n } else {\n this.selectedTab = null;\n this.showEmptyImage = true;\n }\n\n this.persist();\n }\n\n onDrop(event) {\n moveItemInArray(this.contentBlock.slider, event.previousIndex, event.currentIndex);\n this.selectedTab = event.currentIndex;\n this.persist();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SliderFullpageComponent } from './sliders/fullpage/slider-fullpage.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { SeparatorSimpleComponent } from './separator/separator-simple/separator-simple.component';\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { CodeJavascriptComponent } from './code/code-javascript/code-javascript.component';\nimport { CodeHtmlComponent } from './code/code-html/code-html.component';\nimport { CodeStylesheetComponent } from './code/code-stylesheet/code-stylesheet.component';\nimport { SliderLeftnavComponent } from './sliders/leftnav/slider-leftnav.component';\nimport { SliderImagerightComponent } from './sliders/imageright/slider-imageright.component';\nimport { SliderDoubleImagerightComponent } from './sliders/double-imageright/slider-double-imageright.component';\nimport { VideosTxtComponent } from './videos/txt/videos-txt.component';\nimport { QuillModule } from 'ngx-quill';\nimport { VideosTxtContentComponent } from './videos/txt-content/videos-txt-content.component';\nimport { VideosSimpleComponent } from './videos/simple/videos-simple.component';\nimport { VideosTxtLeftComponent } from './videos/txt-left/videos-txt-left.component';\nimport { LaunchVideosButtonComponent } from './launch-videos/button/launch-videos-button.component';\nimport { LaunchVideosButtontxtComponent } from './launch-videos/buttontxt/launch-videos-buttontxt.component';\nimport { ImagesBannerComponent } from './images/banner/images-banner.component';\nimport { ImagesSimpleComponent } from './images/simple/images-simple.component';\nimport { ImagesDoubleComponent } from './images/double/images-double.component';\nimport { ImagesTripleComponent } from './images/triple/images-triple.component';\nimport { ImagesQuadrupleComponent } from './images/quadruple/images-quadruple.component';\nimport { ImagesQuadrupleLeftOneRightComponent } from './images/quadruple-left-one-right/images-quadruple-left-one-right.component';\nimport { ImagesBigAndDoubleComponent } from './images/big-and-double/images-big-and-double.component';\nimport { ImagesBigsAndDoubleMiddleComponent } from './images/bigs-and-double-middle/images-bigs-and-double-middle.component';\nimport { FourImagesTitleComponent } from './images/four-images-title/four-images-title.component';\nimport { TwoImagesTitleTextComponent } from './images/two-images-title-text/two-images-title-text.component';\nimport { TextBackgroundsSimpleComponent } from './text-backgrounds/simple/text-backgrounds-simple.component';\nimport { TextBackgroundsWithTxtComponent } from './text-backgrounds/with-txt/text-backgrounds-with-txt.component';\nimport { ImagesTextsBigLeftTextRightComponent } from './images-texts/big-left-text-right/images-texts-big-left-text-right.component';\nimport { ImagesTextsBigRightTextLeftComponent } from './images-texts/big-right-text-left/images-texts-big-right-text-left.component';\nimport { ImagesTextsLeftTextRightComponent } from './images-texts/left-text-right/images-texts-left-text-right.component';\nimport { ImagesTextsRightTextLeftComponent } from './images-texts/right-text-left/images-texts-right-text-left.component';\nimport { ImagesTextsOneTextOneComponent } from './images-texts/one-text-one/images-texts-one-text-one.component';\nimport { ImagesTextsTextOneTextComponent } from './images-texts/text-one-text/images-texts-text-one-text.component';\nimport { ImagesTextsSmallLeftTextRightComponent } from './images-texts/small-left-text-right/images-texts-small-left-text-right.component';\nimport { ImagesTextsSmallRightTextLeftComponent } from './images-texts/small-right-text-left/images-texts-small-right-text-left.component';\nimport { TextsOneComponent } from './texts/one/texts-one.component';\nimport { TextsOneBackgroundComponent } from './texts/one-background/texts-one-background.component';\nimport { TextsDoubleComponent } from './texts/double/texts-double.component';\nimport { TextsDoubleBackgroundComponent } from './texts/double-background/texts-double-background.component';\nimport { TextsTripleComponent } from './texts/triple/texts-triple.component';\nimport { TextsTripleBackgroundComponent } from './texts/triple-background/texts-triple-background.component';\nimport { TextsQuadrupleComponent } from './texts/quadruple/texts-quadruple.component';\nimport { TextsQuadrupleBackgroundComponent } from './texts/quadruple-background/texts-quadruple-background.component';\nimport { FormsSimpleComponent } from './forms/simple/forms-simple.component';\nimport { FormsBackgroundComponent } from './forms/background/forms-background.component';\nimport { FormsImageleftComponent } from './forms/imageleft/forms-imageleft.component';\nimport { FormsImagerightComponent } from './forms/imageright/forms-imageright.component';\nimport { SocialsLikeComponent } from './socials/like/socials-like.component';\nimport { SocialsPageSimpleComponent } from './socials/page-simple/socials-page-simple.component';\nimport { SocialsPageComplexComponent } from './socials/page-complex/socials-page-complex.component';\nimport { SocialsNetworkComponent } from './socials/network/socials-network.component';\nimport { ProductsListClassicComponent } from './products-list/classic/products-list-classic.component';\nimport { ProductsListSelectedComponent } from './products-list/selected/products-list-selected.component';\nimport { ProductsListSimpleComponent } from './products-list/simple/products-list-simple.component';\nimport { RassurancesTripleBackgroundComponent } from './rassurances/triple-background/rassurances-triple-background.component';\nimport { RassurancesQuadrupleAlignedComponent } from './rassurances/quadruple-aligned/rassurances-quadruple-aligned.component';\nimport { RassurancesQuadrupleBackgroundComponent } from './rassurances/quadruple-background/rassurances-quadruple-background.component';\nimport { NewsletterAlignedCenterImageComponent } from './newsletter/aligned-center-image/newsletter-aligned-center-image.component';\nimport { NewsletterAlignedCenterBackgroundComponent } from './newsletter/aligned-center-background/newsletter-aligned-center-background.component';\nimport { NewsletterCenterImageComponent } from './newsletter/center-image/newsletter-center-image.component';\nimport { WitnessTwiceComponent } from './witness/twice/witness-twice.component';\nimport { WitnessTripleComponent } from './witness/triple/witness-triple.component';\nimport { WitnessQuadrupleComponent } from './witness/quadruple/witness-quadruple.component';\nimport { WitnessBackgroundOneComponent } from './witness/background-one/witness-background-one.component';\nimport { WitnessBackgroundDoubleComponent } from './witness/background-double/witness-background-double.component';\nimport { ReviewsSimpleComponent } from './reviews/simple/reviews-simple.component';\nimport { ReviewsWaterfallComponent } from './reviews/waterfall/reviews-waterfall.component';\nimport { QuotesSimpleComponent } from './quotes/simple/quotes-simple.component';\nimport { QuotesAuthorComponent } from './quotes/author/quotes-author.component';\nimport { QuotesSimpleBackgroundComponent } from './quotes/simple-background/quotes-simple-background.component';\nimport { MapFullpageComponent } from './map/fullpage/map-fullpage.component';\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\nimport { MapLeftTextComponent } from './map/left-text/map-left-text.component';\nimport { MapRightTextComponent } from './map/right-text/map-right-text.component';\nimport { MapTextFormComponent } from './map/text-form/map-text-form.component';\nimport { MapBackgroundFormLeftComponent } from './map/background-form-left/map-background-form-left.component';\nimport { MapBackgroundFormRightComponent } from './map/background-form-right/map-background-form-right.component';\nimport { TimerSimpleComponent } from './timer/simple/timer-simple.component';\nimport { TimerBackgroundComponent } from './timer/background/timer-background.component';\nimport { TimerClockComponent } from './timer/clock/timer-clock.component';\nimport { TimerAirportComponent } from './timer/airport/timer-airport.component';\nimport { NwbAllModule, NwbCommonModule, NwbDatePickerModule } from '@wizishop/ng-wizi-bulma';\nimport { ProductZoomComponent } from './product/zoom/product-zoom.component';\nimport { ProductZoomSelectedComponent } from './product/zoom-selected/product-zoom-selected.component';\nimport { ProductZoomMoreComponent } from './product/zoom-more/product-zoom-more.component';\nimport { ProductZoomCompleteComponent } from './product/zoom-complete/product-zoom-complete.component';\nimport { ProductZoomCompleteSliderComponent } from './product/zoom-complete-slider/product-zoom-complete-slider.component';\nimport { ProductZoomSimpleComponent } from './product/zoom-simple/product-zoom-simple.component';\nimport { ProductZoomCompleteBackgroundComponent } from './product/zoom-complete-background/product-zoom-complete-background.component';\nimport { AmplifyProductZoomComponent } from './amplify-product/zoom/amplify-product-zoom.component';\nimport { AmplifyProductZoomMoreComponent } from './amplify-product/zoom-more/amplify-product-zoom-more.component';\nimport { AmplifyProductZoomSelectedComponent } from './amplify-product/zoom-selected/amplify-product-zoom-selected.component';\nimport { AmplifyProductsListSimpleComponent } from './amplify-products-list/simple/amplify-products-list-simple.component';\nimport { AmplifyProductsListSelectedComponent } from './amplify-products-list/selected/amplify-products-list-selected.component';\nimport { AmplifyProductsListClassicComponent } from './amplify-products-list/classic/amplify-products-list-classic.component';\nimport { LoaderComponentModule } from './loader-component.module';\nimport { TimerMultipleImgComponent } from './timer/multiple-img/timer-multiple-img.component';\nimport { ProductZoomTripleColumnComponent } from './product/zoom-triple-column/product-zoom-triple-column.component';\nimport { AmplifyProductZoomTripleColumnComponent } from './amplify-product/zoom-triple-column/amplify-product-zoom-triple-column.component';\nimport { TextsQuadrupleNumbersComponent } from './texts/quadruple-numbers/texts-quadruple-numbers.component';\nimport { AboutBlockComponent } from './witness/about-block/about-block.component';\nimport { FaqSimpleComponent } from './faq/simple/faq-simple.component';\nimport { FaqSimpleBackgroundComponent } from './faq/simple-background/faq-simple-background.component';\nimport { TextBackgroundsLinkComponent } from './text-backgrounds/link/text-backgrounds-link.component';\nimport { FaqFrameComponent } from './faq/frame/faq-frame.component';\nimport { FaqAccordionComponent } from './faq/accordion/faq-accordion.component';\nimport { FaqListIconComponent } from './faq/list-icon/faq-list-icon.component';\nimport { TextBackgroundsWithBannerComponent } from './text-backgrounds/with-banner/text-backgrounds-with-banner.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsOnboardingComponent } from './onboarding/onboarding/forms-onboarding.component';\nimport { TextBackgroundsThreeRowsIconTextComponent } from './text-backgrounds/three-rows-icon-text/text-backgrounds-three-rows-icon-text.component';\nimport { TextBackgroundsFourRowsIconTextComponent } from './text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component';\nimport { TextBackgroundsTwoRowsIconTextComponent } from './text-backgrounds/two-rows-icon-text/text-backgrounds-two-rows-icon-text.component';\nimport { SliderWithBannerComponent } from './sliders/with-banner/slider-with-banner.component';\nimport { GooglePlaceModule } from 'ngx-google-places-autocomplete';\n\nexport const BlockComponentList = [\n SliderFullpageComponent,\n SliderLeftnavComponent,\n SliderImagerightComponent,\n SliderDoubleImagerightComponent,\n SeparatorSimpleComponent,\n CodeHtmlComponent,\n CodeJavascriptComponent,\n VideosSimpleComponent,\n VideosTxtComponent,\n VideosTxtContentComponent,\n LaunchVideosButtonComponent,\n LaunchVideosButtontxtComponent,\n ImagesBannerComponent,\n ImagesSimpleComponent,\n ImagesDoubleComponent,\n ImagesTripleComponent,\n ImagesQuadrupleComponent,\n ImagesQuadrupleLeftOneRightComponent,\n ImagesBigAndDoubleComponent,\n ImagesBigsAndDoubleMiddleComponent,\n TextBackgroundsLinkComponent,\n TextBackgroundsSimpleComponent,\n TextBackgroundsWithTxtComponent,\n ImagesTextsBigLeftTextRightComponent,\n ImagesTextsBigRightTextLeftComponent,\n ImagesTextsLeftTextRightComponent,\n ImagesTextsRightTextLeftComponent,\n ImagesTextsOneTextOneComponent,\n ImagesTextsSmallLeftTextRightComponent,\n ImagesTextsSmallRightTextLeftComponent,\n ImagesTextsTextOneTextComponent,\n TextsOneBackgroundComponent,\n TextsDoubleBackgroundComponent,\n TextsTripleBackgroundComponent,\n TextsQuadrupleComponent,\n TextsQuadrupleNumbersComponent,\n FormsSimpleComponent,\n TextsQuadrupleBackgroundComponent,\n TextsTripleComponent,\n TextsOneComponent,\n TextsDoubleComponent,\n FormsBackgroundComponent,\n VideosTxtLeftComponent,\n FormsImageleftComponent,\n FormsImagerightComponent,\n FormsOnboardingComponent,\n SocialsLikeComponent,\n SocialsPageSimpleComponent,\n SocialsPageComplexComponent,\n SocialsNetworkComponent,\n ProductsListClassicComponent,\n ProductsListSimpleComponent,\n RassurancesTripleBackgroundComponent,\n RassurancesQuadrupleAlignedComponent,\n RassurancesQuadrupleBackgroundComponent,\n NewsletterAlignedCenterImageComponent,\n NewsletterAlignedCenterBackgroundComponent,\n NewsletterCenterImageComponent,\n ProductsListSelectedComponent,\n CodeStylesheetComponent,\n WitnessTwiceComponent,\n WitnessTripleComponent,\n WitnessQuadrupleComponent,\n WitnessBackgroundOneComponent,\n WitnessBackgroundDoubleComponent,\n ReviewsSimpleComponent,\n QuotesSimpleComponent,\n QuotesAuthorComponent,\n QuotesSimpleBackgroundComponent,\n ReviewsWaterfallComponent,\n MapFullpageComponent,\n MapLeftTextComponent,\n MapRightTextComponent,\n MapTextFormComponent,\n MapBackgroundFormLeftComponent,\n MapBackgroundFormRightComponent,\n CodeStylesheetComponent,\n AmplifyProductsListSimpleComponent,\n AmplifyProductsListSelectedComponent,\n AmplifyProductsListClassicComponent,\n AmplifyProductZoomComponent,\n AmplifyProductZoomTripleColumnComponent,\n AmplifyProductZoomSelectedComponent,\n AmplifyProductZoomMoreComponent,\n ProductZoomComponent,\n ProductZoomTripleColumnComponent,\n ProductZoomSelectedComponent,\n ProductZoomMoreComponent,\n ProductZoomCompleteComponent,\n ProductZoomCompleteSliderComponent,\n ProductZoomSimpleComponent,\n ProductZoomCompleteBackgroundComponent,\n TimerSimpleComponent,\n TimerBackgroundComponent,\n TimerClockComponent,\n TimerAirportComponent,\n TimerMultipleImgComponent,\n AboutBlockComponent,\n FaqSimpleComponent,\n FaqSimpleBackgroundComponent,\n FaqFrameComponent,\n FaqAccordionComponent,\n FaqListIconComponent,\n FourImagesTitleComponent,\n TwoImagesTitleTextComponent,\n TextBackgroundsWithBannerComponent,\n TextBackgroundsTwoRowsIconTextComponent,\n TextBackgroundsThreeRowsIconTextComponent,\n TextBackgroundsFourRowsIconTextComponent,\n SliderWithBannerComponent,\n];\n\n@NgModule({\n declarations: [BlockComponentList],\n imports: [\n SharedModule,\n MonacoEditorModule,\n GooglePlaceModule,\n QuillModule,\n LeafletModule,\n NwbCommonModule,\n NwbDatePickerModule,\n TranslateModule.forChild(),\n LoaderComponentModule.withComponents(BlockComponentList),\n ],\n exports: BlockComponentList,\n})\nexport class StructuresModule {}\n","import { Component, ComponentFactoryResolver, Input, OnInit, Output } from '@angular/core';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { WiziBlockService } from '../../services/wizi-block.service';\nimport { TranslationsDto } from '../../dtos/configs/translations/translations.dto';\nimport { animateListFromLeft } from '../../shared/animations/list/animate-list-from-left.animation';\nimport { ContentService } from '../../services/utils/content.service';\nimport { ConfigService } from '../../services/utils/config.service';\nimport { ExternalConfigService } from '../../services/utils/external-config.service';\nimport { FORM_NAME_WIDTH_BLOCK } from '../../dtos/forms/forms.dto';\n\n@Component({\n selector: 'wb-blocks',\n templateUrl: './blocks.component.html',\n animations: [animateListFromLeft('100ms ease-in-out')],\n})\nexport class BlocksComponent implements OnInit {\n @Input() contents: Array<any> = [];\n @Input() dynamicHidden = [];\n @Input() selectedConfig: any;\n\n hideConfig = false;\n\n translation: TranslationsDto;\n\n preview: boolean;\n\n blockHover = false;\n\n configActive = false;\n\n parsedContent = [];\n\n constructor(\n private wiziBlockService: WiziBlockService,\n private resolver: ComponentFactoryResolver,\n private contentService: ContentService,\n private configService: ConfigService,\n private externalConfigService: ExternalConfigService\n ) {}\n\n ngOnInit() {\n this.translation = this.wiziBlockService.getTranslation();\n\n this.configService.configShowEvent().subscribe(() => {\n this.hideConfig = this.configService.hideConfig;\n });\n }\n\n setHideConfig() {\n this.configService.hideConfig = !this.configService.hideConfig;\n if (this.configService.hideConfig) {\n this.parsedContent = this.contentService.getParsedContent();\n this.preview = true;\n } else {\n this.preview = false;\n }\n }\n\n switchHover(event) {\n console.log(event);\n this.configActive = event;\n }\n\n addThis(index, type) {\n this.wiziBlockService.getBlocksService().forEach((v) => {\n if (v.type() === type) {\n if (typeof v.getForm === 'function') {\n const baseDto = v.getForm();\n if (baseDto) {\n baseDto.type = v.type();\n this.contentService.setContentsWithIndex(index, baseDto);\n if (baseDto.forms.length) {\n this.configService.config = baseDto;\n }\n this.configService.hideConfig = false;\n }\n }\n }\n });\n }\n\n addThisSelected(selected, verbose) {\n this.wiziBlockService.getBlocksService().forEach((v) => {\n if (v.type() === selected.type) {\n if (typeof v.getForm === 'function') {\n const baseDto = v.getForm();\n if (baseDto) {\n if (this.externalConfigService.getWidthBlock() != '') {\n baseDto.forms.forEach((element) => {\n if (element.id == FORM_NAME_WIDTH_BLOCK) {\n element.value = this.externalConfigService.getWidthBlock();\n }\n });\n }\n\n baseDto.type = v.type();\n this.contentService.setContents(baseDto);\n if (baseDto.forms.length) {\n this.configService.config = baseDto;\n }\n this.configService.hideConfig = false;\n if (verbose) {\n console.log('Add a content', baseDto);\n }\n } else {\n if (verbose) {\n console.error('Dto for component ' + v.type() + ' not found');\n }\n }\n } else {\n if (verbose) {\n console.error('Form for component ' + v.type() + ' not found');\n }\n }\n }\n });\n }\n\n isHiddenBLocks(id) {\n if (this.dynamicHidden.includes(id)) {\n return true;\n }\n return false;\n }\n\n onDrop(event: CdkDragDrop<any[]>) {\n if (event.item.element.nativeElement.getAttribute('id')) {\n this.addThis(event.currentIndex, event.item.element.nativeElement.getAttribute('id'));\n } else {\n this.contentService.reorderContents(event.previousIndex, event.currentIndex);\n }\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { WiziBlockService } from '../../services/wizi-block.service';\nimport { TranslationsDto } from '../../dtos/configs/translations/translations.dto';\nimport { animateListFromLeft } from '../../shared/animations/list/animate-list-from-left.animation';\nimport { ContentService } from '../../services/utils/content.service';\nimport { FORM_TYPE_CHECKBOX, FORM_TYPE_COLOR, FORM_TYPE_TAG, FORM_TYPE_TEXT, FORM_TYPE_NUMBER, FormsDto } from '../../dtos/forms/forms.dto';\nimport { ParentBlockDto } from '../../dtos/blocks/parent-block.dto';\nimport { ConfigService } from '../../services/utils/config.service';\n\n@Component({\n selector: 'wb-configs',\n templateUrl: './configs.component.html',\n animations: [animateListFromLeft('200ms ease-in-out')],\n})\nexport class ConfigsComponent implements OnInit, OnDestroy {\n @Input() configs: FormsDto<ParentBlockDto>;\n @Input() isFirst = false;\n @Output() changeConfig = new EventEmitter<any>();\n\n readonly FORM_TYPE_TEXT = FORM_TYPE_TEXT;\n readonly FORM_TYPE_NUMBER = FORM_TYPE_NUMBER;\n readonly FORM_TYPE_CHECKBOX = FORM_TYPE_CHECKBOX;\n readonly FORM_TYPE_TAG = FORM_TYPE_TAG;\n readonly FORM_TYPE_COLOR = FORM_TYPE_COLOR;\n\n temporizeConfig = 0;\n helpTypeOFArray = [];\n\n translation: TranslationsDto;\n\n constructor(private wiziBlockService: WiziBlockService, private contentService: ContentService, private configService: ConfigService) {}\n\n ngOnInit() {\n this.translation = this.wiziBlockService.getTranslation();\n\n this.temporizeConfig = 0;\n setTimeout(() => {\n this.temporizeConfig = this.configs.forms.length;\n }, 200);\n\n this.configService.configEvent().subscribe(() => {\n this.temporizeConfig = 0;\n setTimeout(() => {\n this.temporizeConfig = this.configs.forms.length;\n }, 200);\n });\n this.handleHelp(this.configs.forms);\n }\n\n handleHelp(config) {\n Object.keys(config).forEach((key) => {\n if (typeof this.configs.forms[key].help === 'object') {\n this.helpTypeOFArray.push(parseFloat(key));\n }\n });\n }\n\n getValueHelp(value, index) {\n const indexValue = this.configs.forms[index].stepKey.indexOf(value);\n return this.configs.forms[index].help[indexValue];\n }\n\n checkHelp(index) {\n if (this.helpTypeOFArray.indexOf(index) !== -1) {\n return true;\n }\n return false;\n }\n\n updateChanges($event = null, key) {\n if ($event !== null) {\n let onValue: string | boolean | number = true;\n if (typeof this.configs.forms[key].state[0] !== 'undefined') {\n onValue = this.configs.forms[key].state[0];\n }\n\n let offValue: string | boolean | number = true;\n if (typeof this.configs.forms[key].state[1] !== 'undefined') {\n offValue = this.configs.forms[key].state[1];\n }\n this.configs.forms[key].value = $event.target.checked ? onValue : offValue;\n }\n\n this.updateContent();\n }\n\n updateChangesReverse($event = null, key) {\n if ($event !== null) {\n let onValue: string | boolean | number = true;\n if (typeof this.configs.forms[key].state[0] !== 'undefined') {\n onValue = this.configs.forms[key].state[0];\n }\n\n let offValue: string | boolean | number = true;\n if (typeof this.configs.forms[key].state[1] !== 'undefined') {\n offValue = this.configs.forms[key].state[1];\n }\n this.configs.forms[key].value = $event.target.checked ? offValue : onValue;\n }\n\n this.updateContent();\n }\n\n updateContent() {\n this.contentService.updateByUUID(this.configs.block.uuid, this.configs);\n this.changeConfig.emit({\n uuid: this.configs.block.uuid,\n config: this.configs,\n });\n }\n\n updateNumber(event, index) {\n let SplitValue = [];\n if (event.target.value.indexOf('.') !== -1) {\n SplitValue = event.target.value.split('.');\n } else {\n SplitValue[0] = event.target.value;\n }\n const nameValue = SplitValue[0];\n const tempValue = nameValue.substring(0, 7);\n if (tempValue < 0) {\n this.configs.forms[index].value = 0;\n } else {\n this.configs.forms[index].value = tempValue;\n }\n this.contentService.updateByUUID(this.configs.block.uuid, this.configs);\n }\n\n ngOnDestroy(): void {\n this.temporizeConfig = 0;\n }\n}\n","import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { WiziBlockService } from '../../services/wizi-block.service';\nimport { animateListFromLeft } from '../../shared/animations/list/animate-list-from-left.animation';\nimport { ContentService } from '../../services/utils/content.service';\nimport { ConfigService } from '../../services/utils/config.service';\nimport { ApiService, PreviewDto } from '../../services/utils/api.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'wb-previews',\n templateUrl: './previews.component.html',\n animations: [animateListFromLeft('100ms ease-in-out')]\n})\nexport class PreviewsComponent implements OnInit, OnDestroy {\n @Input() contents: Array<any> = [];\n\n hideConfig = false;\n\n height = '1000px';\n\n previewSubscribe: Subscription;\n\n preview: boolean;\n\n @ViewChild('iframe') iframe: ElementRef;\n\n constructor(\n private wiziBlockService: WiziBlockService,\n private contentService: ContentService,\n private configService: ConfigService,\n private apiService: ApiService\n ) {}\n\n ngOnInit() {\n this.previewSubscribe = this.apiService.showPreview(this.contentService.getParsedContent()).subscribe((content: PreviewDto) => {\n this.setIframeReady(content.html);\n });\n }\n\n loadedIframe() {\n this.preview = true;\n }\n\n private setIframeReady(content): void {\n const win: Window = this.iframe.nativeElement.contentWindow;\n\n const doc: Document = win.document;\n doc.open();\n doc.write(content);\n doc.close();\n }\n\n ngOnDestroy(): void {\n this.preview = false;\n this.previewSubscribe.unsubscribe();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n Input,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { BlockComponentList } from '../../structures/structures.module';\n\n@Component({\n selector: 'wb-container-block',\n templateUrl: './container-block.component.html'\n})\nexport class ContainerBlockComponent implements AfterViewInit {\n @ViewChild('dynamic', {\n read: ViewContainerRef,\n static: false\n })\n container: ViewContainerRef;\n\n @Input() content;\n\n blockComponent = null;\n\n constructor(private cd: ChangeDetectorRef, private resolver: ComponentFactoryResolver) {}\n\n ngAfterViewInit(): void {\n this.retrieveCurrentComponentAndCreate();\n }\n\n retrieveCurrentComponentAndCreate() {\n BlockComponentList.forEach(element => {\n const factory = this.resolver.resolveComponentFactory<any>(element);\n const componentType = factory.selector.replace('wb-', '');\n\n if (componentType === this.content.type) {\n this.blockComponent = element;\n }\n });\n\n if (this.blockComponent) {\n this.createComponent(this.blockComponent);\n }\n }\n\n createComponent(component) {\n const factory: ComponentFactory<{ contents }> = this.resolver.resolveComponentFactory(component);\n const ref = this.container.createComponent(factory);\n ref.instance.contents = this.content;\n this.cd.detectChanges();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../shared/shared.module';\nimport { BlocksComponent } from './blocks/blocks.component';\nimport { StructuresModule } from '../structures/structures.module';\nimport { ConfigsComponent } from './configs/configs.component';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { PreviewsComponent } from './previews/previews.component';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { ContainerBlockComponent } from './container-block/container-block.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\nconst components = [BlocksComponent, ConfigsComponent, PreviewsComponent, ContainerBlockComponent];\n\n@NgModule({\n declarations: components,\n imports: [SharedModule, StructuresModule, NwbAllModule, ColorPickerModule, TranslateModule.forChild()],\n exports: components,\n})\nexport class ComponentsModule {}\n","import { NgModule } from '@angular/core';\nimport { WiziBlockComponent } from './wizi-block.component';\nimport { StructuresModule } from './structures/structures.module';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { SharedModule } from './shared/shared.module';\nimport { ComponentsModule } from './components/components.module';\nimport { QuillModule } from 'ngx-quill';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateModule } from '@ngx-translate/core';\n\nexport class MyMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n return params.key;\n }\n}\n@NgModule({\n declarations: [WiziBlockComponent],\n imports: [\n ComponentsModule,\n StructuresModule,\n SharedModule,\n DragDropModule,\n QuillModule,\n NgScrollbarModule,\n ColorPickerModule,\n NwbAllModule,\n TranslateModule.forChild({\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler },\n useDefaultLang: false,\n }),\n ],\n exports: [WiziBlockComponent],\n})\nexport class WiziBlockModule {}\n"]}