j1-template 2020.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +79 -0
  4. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +46 -0
  5. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc.org +40 -0
  6. data/_includes/themes/j1/blocks/footer/boxes/contacts_box.proc +55 -0
  7. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +38 -0
  8. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +63 -0
  9. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +50 -0
  10. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +61 -0
  11. data/_includes/themes/j1/blocks/footer/boxes/social_media_icons.proc +37 -0
  12. data/_includes/themes/j1/blocks/footer/generator.html +145 -0
  13. data/_includes/themes/j1/layouts/content_generator_app.html +32 -0
  14. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +242 -0
  15. data/_includes/themes/j1/layouts/content_generator_collection.html +131 -0
  16. data/_includes/themes/j1/layouts/content_generator_page.html +138 -0
  17. data/_includes/themes/j1/layouts/content_generator_post.html +228 -0
  18. data/_includes/themes/j1/layouts/content_generator_raw.html +33 -0
  19. data/_includes/themes/j1/layouts/layout_metadata_generator.html +118 -0
  20. data/_includes/themes/j1/layouts/layout_module_generator.html +46 -0
  21. data/_includes/themes/j1/layouts/layout_resource_generator.html +49 -0
  22. data/_includes/themes/j1/modules/attics/generator.html +153 -0
  23. data/_includes/themes/j1/modules/boards/news_pin_board.html +183 -0
  24. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +33 -0
  25. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +38 -0
  26. data/_includes/themes/j1/modules/connectors/ads +50 -0
  27. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +32 -0
  28. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +38 -0
  29. data/_includes/themes/j1/modules/connectors/analytics +45 -0
  30. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +31 -0
  31. data/_includes/themes/j1/modules/connectors/comment/disqus.html +61 -0
  32. data/_includes/themes/j1/modules/connectors/comment/facebook.html +31 -0
  33. data/_includes/themes/j1/modules/connectors/comments +46 -0
  34. data/_includes/themes/j1/modules/connectors/sharing +29 -0
  35. data/_includes/themes/j1/modules/connectors/translator +45 -0
  36. data/_includes/themes/j1/modules/connectors/translators/custom-translator.html +32 -0
  37. data/_includes/themes/j1/modules/connectors/translators/google-translator.html +49 -0
  38. data/_includes/themes/j1/modules/navigator/generator.html +202 -0
  39. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +114 -0
  40. data/_includes/themes/j1/modules/search/algolia.html +181 -0
  41. data/_includes/themes/j1/modules/search/docsearch.html +42 -0
  42. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +69 -0
  43. data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +60 -0
  44. data/_includes/themes/j1/procedures/global/collect_page_options.proc +66 -0
  45. data/_includes/themes/j1/procedures/global/create_bs_button.proc +129 -0
  46. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +95 -0
  47. data/_includes/themes/j1/procedures/global/get_category.proc +60 -0
  48. data/_includes/themes/j1/procedures/global/get_category_item.proc +80 -0
  49. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +67 -0
  50. data/_includes/themes/j1/procedures/global/get_page_path.proc +69 -0
  51. data/_includes/themes/j1/procedures/global/get_page_url.proc +55 -0
  52. data/_includes/themes/j1/procedures/global/pager.proc +79 -0
  53. data/_includes/themes/j1/procedures/global/select_color.proc +69 -0
  54. data/_includes/themes/j1/procedures/global/select_font_size.proc +86 -0
  55. data/_includes/themes/j1/procedures/global/select_icon_size.proc +82 -0
  56. data/_includes/themes/j1/procedures/global/select_location.proc +119 -0
  57. data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +37 -0
  58. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +94 -0
  59. data/_includes/themes/j1/procedures/global/set_image_block.proc +50 -0
  60. data/_includes/themes/j1/procedures/global/setup.proc +53 -0
  61. data/_includes/themes/j1/procedures/layouts/content_writer.proc +112 -0
  62. data/_includes/themes/j1/procedures/layouts/default_writer.proc +162 -0
  63. data/_includes/themes/j1/procedures/layouts/module_writer.proc +270 -0
  64. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +194 -0
  65. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +221 -0
  66. data/_includes/themes/j1/procedures/posts/collate_list.proc +96 -0
  67. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +226 -0
  68. data/_includes/themes/j1/procedures/posts/create_ad_block.proc +56 -0
  69. data/_includes/themes/j1/procedures/posts/create_series_header.proc +96 -0
  70. data/_layouts/app.html +68 -0
  71. data/_layouts/blog_archive.html +60 -0
  72. data/_layouts/collection.html +68 -0
  73. data/_layouts/compress.html +52 -0
  74. data/_layouts/default.html +348 -0
  75. data/_layouts/home.html +90 -0
  76. data/_layouts/page.html +68 -0
  77. data/_layouts/paginator/autopage_category.html +79 -0
  78. data/_layouts/paginator/autopage_collection.html +159 -0
  79. data/_layouts/paginator/autopage_collections_tags.html +87 -0
  80. data/_layouts/paginator/autopage_tags.html +79 -0
  81. data/_layouts/post.html +68 -0
  82. data/_layouts/raw.html +71 -0
  83. data/assets/README.md +0 -0
  84. data/assets/data/authclient.html +373 -0
  85. data/assets/data/banner.html +432 -0
  86. data/assets/data/carousel.json +109 -0
  87. data/assets/data/colors.json +42 -0
  88. data/assets/data/cookie_consent.html +223 -0
  89. data/assets/data/font_sizes.json +42 -0
  90. data/assets/data/footer.html +238 -0
  91. data/assets/data/galleries.json +127 -0
  92. data/assets/data/gallery_customizer.html +150 -0
  93. data/assets/data/jupyter/notebooks/_html/template.full.head.html +75 -0
  94. data/assets/data/jupyter/notebooks/_html/visualisation.html +968 -0
  95. data/assets/data/jupyter/notebooks/html/template.html +50 -0
  96. data/assets/data/jupyter/notebooks/html/visualisation.ok.html +949 -0
  97. data/assets/data/jupyter/notebooks/tutorial.ipynb +169 -0
  98. data/assets/data/jupyter/notebooks/visualisation.ipynb +9413 -0
  99. data/assets/data/mdi_icons.json +14641 -0
  100. data/assets/data/menu.html +469 -0
  101. data/assets/data/messages.yml +131 -0
  102. data/assets/data/panel.html +518 -0
  103. data/assets/data/quicklinks.html +225 -0
  104. data/assets/data/search.yml +131 -0
  105. data/assets/data/sidebar.html +261 -0
  106. data/assets/data/themes.json +59 -0
  107. data/assets/data/twa_v1.json +6978 -0
  108. data/assets/error_pages/HTTP204.html +70 -0
  109. data/assets/error_pages/HTTP400.html +66 -0
  110. data/assets/error_pages/HTTP401.html +67 -0
  111. data/assets/error_pages/HTTP403.html +66 -0
  112. data/assets/error_pages/HTTP404.html +66 -0
  113. data/assets/error_pages/HTTP500.html +66 -0
  114. data/assets/error_pages/HTTP501.html +66 -0
  115. data/assets/error_pages/HTTP502.html +66 -0
  116. data/assets/error_pages/HTTP503.html +67 -0
  117. data/assets/error_pages/HTTP520.html +66 -0
  118. data/assets/error_pages/HTTP521.html +66 -0
  119. data/assets/error_pages/HTTP533.html +66 -0
  120. data/assets/themes/j1/core/css/bootstrap.css +7139 -0
  121. data/assets/themes/j1/core/css/bootstrap.min.css +6 -0
  122. data/assets/themes/j1/core/css/custom.scss +28 -0
  123. data/assets/themes/j1/core/css/globals.css +14523 -0
  124. data/assets/themes/j1/core/css/globals.min.css +1 -0
  125. data/assets/themes/j1/core/css/globals.scss +28 -0
  126. data/assets/themes/j1/core/css/theme_extensions.css +11565 -0
  127. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -0
  128. data/assets/themes/j1/core/css/uno.css +11830 -0
  129. data/assets/themes/j1/core/css/uno.min.css +1 -0
  130. data/assets/themes/j1/core/css/uno.scss +28 -0
  131. data/assets/themes/j1/core/css/vendor.css +46751 -0
  132. data/assets/themes/j1/core/css/vendor.min.css +14 -0
  133. data/assets/themes/j1/core/css/vendor.scss +28 -0
  134. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.eot +0 -0
  135. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.svg +3459 -0
  136. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.ttf +0 -0
  137. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff +0 -0
  138. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff2 +0 -0
  139. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.eot +0 -0
  140. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.svg +803 -0
  141. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.ttf +0 -0
  142. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff +0 -0
  143. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff2 +0 -0
  144. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.eot +0 -0
  145. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.svg +4527 -0
  146. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.ttf +0 -0
  147. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff +0 -0
  148. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff2 +0 -0
  149. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/icons.json +26790 -0
  150. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/icons.yml +9088 -0
  151. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/shims.json +2302 -0
  152. data/assets/themes/j1/core/fonts/fontawesome_5/metadata/shims.yml +292 -0
  153. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.eot +0 -0
  154. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.svg +10188 -0
  155. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.ttf +0 -0
  156. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.woff +0 -0
  157. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
  158. data/assets/themes/j1/core/fonts/materialdesign_icons/license.md +97 -0
  159. data/assets/themes/j1/core/fonts/materialdesign_icons/metadata/icons.json +8186 -0
  160. data/assets/themes/j1/core/fonts/materialdesign_icons/metadata/icons.yml +5857 -0
  161. data/assets/themes/j1/core/fonts/roboto/fonts/OpenSansEmoji.ttf +0 -0
  162. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Black.ttf +0 -0
  163. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-BlackItalic.ttf +0 -0
  164. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.eot +0 -0
  165. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.ttf +0 -0
  166. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.woff +0 -0
  167. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Bold.woff2 +0 -0
  168. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-BoldItalic.ttf +0 -0
  169. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Italic.ttf +0 -0
  170. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.eot +0 -0
  171. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.ttf +0 -0
  172. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.woff +0 -0
  173. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Light.woff2 +0 -0
  174. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-LightItalic.ttf +0 -0
  175. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.eot +0 -0
  176. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.ttf +0 -0
  177. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.woff +0 -0
  178. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Medium.woff2 +0 -0
  179. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-MediumItalic.ttf +0 -0
  180. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.eot +0 -0
  181. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.ttf +0 -0
  182. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.woff +0 -0
  183. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Regular.woff2 +0 -0
  184. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.eot +0 -0
  185. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.ttf +0 -0
  186. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.woff +0 -0
  187. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-Thin.woff2 +0 -0
  188. data/assets/themes/j1/core/fonts/roboto/fonts/Roboto-ThinItalic.ttf +0 -0
  189. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold-ascii.ttf +0 -0
  190. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
  191. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-italic-ascii.ttf +0 -0
  192. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  193. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1p-regular-fallback.ttf +0 -0
  194. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-bold-subset.ttf +0 -0
  195. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-bold_italic-subset.ttf +0 -0
  196. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-italic-subset.ttf +0 -0
  197. data/assets/themes/j1/core/fonts/roboto/fonts/notoserif-regular-subset.ttf +0 -0
  198. data/assets/themes/j1/core/js/template.js +143 -0
  199. data/assets/themes/j1/core/js/template.js.map +1 -0
  200. data/assets/themes/j1/core/js/template.min.js +1 -0
  201. data/exe/j1 +26 -0
  202. data/lib/j1.rb +130 -0
  203. data/lib/j1/command.rb +23 -0
  204. data/lib/j1/commands/generate.rb +154 -0
  205. data/lib/j1/commands/help.rb +32 -0
  206. data/lib/j1/commands/module.rb +69 -0
  207. data/lib/j1/external.rb +59 -0
  208. data/lib/j1/log_adapter.rb +115 -0
  209. data/lib/j1/log_helper.rb +61 -0
  210. data/lib/j1/templates/posts/0000-00-00-welcome-to-j1-template.adoc.erb +72 -0
  211. data/lib/j1/utils.rb +330 -0
  212. data/lib/j1/utils/ansi.rb +59 -0
  213. data/lib/j1/utils/exec.rb +25 -0
  214. data/lib/j1/utils/platforms.rb +80 -0
  215. data/lib/j1/utils/win_tz.rb +73 -0
  216. data/lib/j1/version.rb +3 -0
  217. data/lib/j1_app.rb +105 -0
  218. data/lib/j1_app/j1_auth_manager/auth_manager.rb +1367 -0
  219. data/lib/j1_app/j1_auth_manager/commands.rb +18 -0
  220. data/lib/j1_app/j1_auth_manager/config.rb +238 -0
  221. data/lib/j1_app/j1_auth_manager/error_pages.rb +44 -0
  222. data/lib/j1_app/j1_auth_manager/helpers.rb +166 -0
  223. data/lib/j1_app/j1_auth_manager/helpers_disqus.rb +29 -0
  224. data/lib/j1_app/j1_auth_manager/helpers_facebook.rb +29 -0
  225. data/lib/j1_app/j1_auth_manager/helpers_github.rb +112 -0
  226. data/lib/j1_app/j1_auth_manager/helpers_patreon.rb +29 -0
  227. data/lib/j1_app/j1_auth_manager/helpers_twitter.rb +30 -0
  228. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +389 -0
  229. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb.kapott +234 -0
  230. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.new.erb +297 -0
  231. data/lib/j1_app/j1_auth_manager/warden_omniauth.rb +153 -0
  232. data/lib/j1_app/j1_site_manager/static_site.rb +94 -0
  233. data/lib/j1_app/log4r/yamlconfigurator.rb +195 -0
  234. data/lib/j1_app/omniauth/facebook/signed_request.rb +52 -0
  235. data/lib/j1_app/omniauth/strategies/disqus.rb +113 -0
  236. data/lib/j1_app/omniauth/strategies/facebook.rb +212 -0
  237. data/lib/j1_app/omniauth/strategies/github.rb +141 -0
  238. data/lib/j1_app/omniauth/strategies/patreon.rb +129 -0
  239. data/lib/j1_app/omniauth/strategies/twitter.rb +156 -0
  240. data/lib/j1_app/sinatra/extras/cookies.rb +282 -0
  241. data/lib/j1_app/sinatra/extras/index.rb +33 -0
  242. data/lib/starter_web/Gemfile +213 -0
  243. data/lib/starter_web/_config.yml +978 -0
  244. data/lib/starter_web/_data/_defaults/categories.yml +36 -0
  245. data/lib/starter_web/_data/_defaults/colors.yml +612 -0
  246. data/lib/starter_web/_data/_defaults/font_sizes.yml +29 -0
  247. data/lib/starter_web/_data/_defaults/j1_light_gallery.yml +110 -0
  248. data/lib/starter_web/_data/_defaults/resources.yml +942 -0
  249. data/lib/starter_web/_data/_defaults/template_settings.yml +258 -0
  250. data/lib/starter_web/_data/apps/carousel.yml +515 -0
  251. data/lib/starter_web/_data/apps/defaults/carousel.yml +223 -0
  252. data/lib/starter_web/_data/apps/defaults/gallery_customizer.yml +50 -0
  253. data/lib/starter_web/_data/apps/defaults/justified_gallery.yml +72 -0
  254. data/lib/starter_web/_data/apps/defaults/light_gallery.yml +115 -0
  255. data/lib/starter_web/_data/apps/defaults/lightbox.yml +181 -0
  256. data/lib/starter_web/_data/apps/gallery_customizer.yml +47 -0
  257. data/lib/starter_web/_data/apps/justified_gallery.yml +317 -0
  258. data/lib/starter_web/_data/apps/light_gallery.yml +114 -0
  259. data/lib/starter_web/_data/apps/lightbox.yml +181 -0
  260. data/lib/starter_web/_data/blocks/banner.yml +366 -0
  261. data/lib/starter_web/_data/blocks/defaults/banner.yml +253 -0
  262. data/lib/starter_web/_data/blocks/defaults/footer.yml +180 -0
  263. data/lib/starter_web/_data/blocks/defaults/panel.yml +256 -0
  264. data/lib/starter_web/_data/blocks/footer.yml +189 -0
  265. data/lib/starter_web/_data/blocks/panel.yml +348 -0
  266. data/lib/starter_web/_data/builder/blog_navigator.yml +211 -0
  267. data/lib/starter_web/_data/categories.yml +36 -0
  268. data/lib/starter_web/_data/colors.yml +612 -0
  269. data/lib/starter_web/_data/font_sizes.yml +30 -0
  270. data/lib/starter_web/_data/layouts/app.yml +160 -0
  271. data/lib/starter_web/_data/layouts/blog_archive.yml +160 -0
  272. data/lib/starter_web/_data/layouts/collection.yml +187 -0
  273. data/lib/starter_web/_data/layouts/default.yml +232 -0
  274. data/lib/starter_web/_data/layouts/home.yml +270 -0
  275. data/lib/starter_web/_data/layouts/page.yml +186 -0
  276. data/lib/starter_web/_data/layouts/post.yml +187 -0
  277. data/lib/starter_web/_data/layouts/raw.yml +160 -0
  278. data/lib/starter_web/_data/modules/attics.yml +220 -0
  279. data/lib/starter_web/_data/modules/authentication.yml +254 -0
  280. data/lib/starter_web/_data/modules/back2top.yml +40 -0
  281. data/lib/starter_web/_data/modules/cookie_consent.yml +128 -0
  282. data/lib/starter_web/_data/modules/cookiebar.yml +32 -0
  283. data/lib/starter_web/_data/modules/defaults/attics.yml +220 -0
  284. data/lib/starter_web/_data/modules/defaults/authentication.yml +263 -0
  285. data/lib/starter_web/_data/modules/defaults/back2top.yml +147 -0
  286. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +69 -0
  287. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +79 -0
  288. data/lib/starter_web/_data/modules/defaults/framer.yml +274 -0
  289. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +149 -0
  290. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +131 -0
  291. data/lib/starter_web/_data/modules/defaults/log4r.yml +171 -0
  292. data/lib/starter_web/_data/modules/defaults/navigator.yml +174 -0
  293. data/lib/starter_web/_data/modules/defaults/smooth_scroll.yml +169 -0
  294. data/lib/starter_web/_data/modules/defaults/stickybits.yml +37 -0
  295. data/lib/starter_web/_data/modules/defaults/themer.yml +168 -0
  296. data/lib/starter_web/_data/modules/defaults/toccer.yml +172 -0
  297. data/lib/starter_web/_data/modules/framer.yml +52 -0
  298. data/lib/starter_web/_data/modules/jekyll_search.yml +51 -0
  299. data/lib/starter_web/_data/modules/log4javascript.yml +131 -0
  300. data/lib/starter_web/_data/modules/log4r.yml +171 -0
  301. data/lib/starter_web/_data/modules/navigator.yml +162 -0
  302. data/lib/starter_web/_data/modules/navigator_menu.yml +276 -0
  303. data/lib/starter_web/_data/modules/smooth_scroll.yml +169 -0
  304. data/lib/starter_web/_data/modules/themer.yml +147 -0
  305. data/lib/starter_web/_data/modules/toccer.yml +172 -0
  306. data/lib/starter_web/_data/pages/builder.yml +87 -0
  307. data/lib/starter_web/_data/plugins/defaults/notebooks.yml +61 -0
  308. data/lib/starter_web/_data/plugins/defaults/paginator.yml +92 -0
  309. data/lib/starter_web/_data/plugins/notebooks.yml +70 -0
  310. data/lib/starter_web/_data/plugins/paginator.yml +52 -0
  311. data/lib/starter_web/_data/private.yml +231 -0
  312. data/lib/starter_web/_data/resources.yml +861 -0
  313. data/lib/starter_web/_data/template_settings.yml +294 -0
  314. data/lib/starter_web/_data/utilities/defaults/util_srv.yml +41 -0
  315. data/lib/starter_web/_data/utilities/util_srv.yml +97 -0
  316. data/lib/starter_web/_plugins/asciidoctor-extensions/admonition-block-answer.rb +48 -0
  317. data/lib/starter_web/_plugins/asciidoctor-extensions/admonition-block-question.rb +48 -0
  318. data/lib/starter_web/_plugins/asciidoctor-extensions/callout.rb +9 -0
  319. data/lib/starter_web/_plugins/asciidoctor-extensions/carousel-block.rb +46 -0
  320. data/lib/starter_web/_plugins/asciidoctor-extensions/conum.rb +9 -0
  321. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +33 -0
  322. data/lib/starter_web/_plugins/asciidoctor-extensions/fas-icon-inline.rb +33 -0
  323. data/lib/starter_web/_plugins/asciidoctor-extensions/gallery-block.rb +44 -0
  324. data/lib/starter_web/_plugins/asciidoctor-extensions/gist-block.rb +52 -0
  325. data/lib/starter_web/_plugins/asciidoctor-extensions/iconify-icon-inline.rb +33 -0
  326. data/lib/starter_web/_plugins/asciidoctor-extensions/lightbox-block.rb +85 -0
  327. data/lib/starter_web/_plugins/asciidoctor-extensions/lorem-inline.rb +65 -0
  328. data/lib/starter_web/_plugins/asciidoctor-extensions/mdi-icon-inline.rb +33 -0
  329. data/lib/starter_web/_plugins/asciidoctor-extensions/shout-block.rb +47 -0
  330. data/lib/starter_web/_plugins/asciidoctor-extensions/twitter-emoji-inline.rb +37 -0
  331. data/lib/starter_web/_plugins/debug.rb +63 -0
  332. data/lib/starter_web/_plugins/filters.rb +320 -0
  333. data/lib/starter_web/_plugins/prettify.rb +45 -0
  334. data/lib/starter_web/_plugins/simple_search_filter.rb +33 -0
  335. data/lib/starter_web/_plugins/symlink_watcher.rb +52 -0
  336. data/lib/starter_web/apps/public/cc +1650 -0
  337. data/lib/starter_web/assets/images/collections/blog/featured/jekyll.1200x400.png +0 -0
  338. data/lib/starter_web/assets/images/collections/blog/featured/jekyll.png +0 -0
  339. data/lib/starter_web/assets/images/collections/blog/featured/staticgen.jpg +0 -0
  340. data/lib/starter_web/assets/images/collections/blog/featured/welcome-to-j1-template.jpg +0 -0
  341. data/lib/starter_web/assets/images/collections/blog/featured/what-is-a-baseurl.jpg +0 -0
  342. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/j1_docker_banner.1280x500.png +0 -0
  343. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_alpha.1280x600.png +0 -0
  344. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/kinematic_j1.1280x300.png +0 -0
  345. data/lib/starter_web/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png +0 -0
  346. data/lib/starter_web/assets/images/collections/blog/wikipedia/columbia-river.1200x400.jpg +0 -0
  347. data/lib/starter_web/assets/images/collections/blog/wikipedia/minneapolis.1200x400.jpg +0 -0
  348. data/lib/starter_web/assets/images/collections/blog/wikipedia/narcise-snake-pits.1200x400.jpg +0 -0
  349. data/lib/starter_web/assets/images/modules/attics/aditya-joshi-1920x1280.jpg +0 -0
  350. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
  351. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  352. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  353. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  354. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  355. data/lib/starter_web/assets/images/modules/attics/banner/admin-dashboard-bootstrap-1280x800-bw.jpg +0 -0
  356. data/lib/starter_web/assets/images/modules/attics/banner/docker-1280x600-bw.jpg +0 -0
  357. data/lib/starter_web/assets/images/modules/attics/banner/jekyll.1200x600-bw.jpg +0 -0
  358. data/lib/starter_web/assets/images/modules/attics/banner/library-1920x800-bw.jpg +0 -0
  359. data/lib/starter_web/assets/images/modules/attics/banner/signpost-1920x800-bw.jpg +0 -0
  360. data/lib/starter_web/assets/images/modules/attics/banner/water-journal-1280x600.jpg +0 -0
  361. data/lib/starter_web/assets/images/modules/attics/banner/write-1280x600-bw.jpg +0 -0
  362. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  363. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  364. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  365. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  366. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  367. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  368. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  369. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  370. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  371. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  372. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  373. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  374. data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
  375. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  376. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
  377. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  378. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  379. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  380. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  381. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  382. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  383. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  384. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  385. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  386. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  387. data/lib/starter_web/assets/images/modules/carousel/cats/cat-2.jpg +0 -0
  388. data/lib/starter_web/assets/images/modules/carousel/cats/cat-3.jpg +0 -0
  389. data/lib/starter_web/assets/images/modules/carousel/cats/cat-4.jpg +0 -0
  390. data/lib/starter_web/assets/images/modules/carousel/cats/cat-5.jpg +0 -0
  391. data/lib/starter_web/assets/images/modules/carousel/cats/cat-6.jpg +0 -0
  392. data/lib/starter_web/assets/images/modules/carousel/cats/cat-7.jpg +0 -0
  393. data/lib/starter_web/assets/images/modules/carousel/cats/cat-8.jpg +0 -0
  394. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  395. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  396. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  397. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  398. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  399. data/lib/starter_web/assets/images/modules/gallery/mega_cities/andreas-brucker_b.jpg +0 -0
  400. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  401. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  402. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  403. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  404. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  405. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  406. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  407. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  408. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  409. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  410. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  411. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  412. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  413. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  414. data/lib/starter_web/assets/images/modules/icons/algolia/search-by-algolia.png +0 -0
  415. data/lib/starter_web/assets/images/modules/icons/asciidoc/logo-512x512.png +0 -0
  416. data/lib/starter_web/assets/images/modules/icons/bootstrap/bootstrap-solid-32x32.png +0 -0
  417. data/lib/starter_web/assets/images/modules/icons/bootstrap/bs-docs-masthead-pattern.png +0 -0
  418. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-outline.svg +20 -0
  419. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-punchout.svg +18 -0
  420. data/lib/starter_web/assets/images/modules/icons/bootstrap/scalable/bootstrap-solid.svg +17 -0
  421. data/lib/starter_web/assets/images/modules/icons/components/angular.ui.png +0 -0
  422. data/lib/starter_web/assets/images/modules/icons/components/angularjs.png +0 -0
  423. data/lib/starter_web/assets/images/modules/icons/components/aws.png +0 -0
  424. data/lib/starter_web/assets/images/modules/icons/components/bootstrap.png +0 -0
  425. data/lib/starter_web/assets/images/modules/icons/components/c9.png +0 -0
  426. data/lib/starter_web/assets/images/modules/icons/components/chai.png +0 -0
  427. data/lib/starter_web/assets/images/modules/icons/components/emmet.png +0 -0
  428. data/lib/starter_web/assets/images/modules/icons/components/express.png +0 -0
  429. data/lib/starter_web/assets/images/modules/icons/components/git.png +0 -0
  430. data/lib/starter_web/assets/images/modules/icons/components/github.png +0 -0
  431. data/lib/starter_web/assets/images/modules/icons/components/gulp.png +0 -0
  432. data/lib/starter_web/assets/images/modules/icons/components/heroku.png +0 -0
  433. data/lib/starter_web/assets/images/modules/icons/components/htmlcss-1.png +0 -0
  434. data/lib/starter_web/assets/images/modules/icons/components/htmlcss-2.png +0 -0
  435. data/lib/starter_web/assets/images/modules/icons/components/jasmine.png +0 -0
  436. data/lib/starter_web/assets/images/modules/icons/components/javascript.png +0 -0
  437. data/lib/starter_web/assets/images/modules/icons/components/jquery.png +0 -0
  438. data/lib/starter_web/assets/images/modules/icons/components/kanban.png +0 -0
  439. data/lib/starter_web/assets/images/modules/icons/components/leanux.png +0 -0
  440. data/lib/starter_web/assets/images/modules/icons/components/linkedin.png +0 -0
  441. data/lib/starter_web/assets/images/modules/icons/components/mean.png +0 -0
  442. data/lib/starter_web/assets/images/modules/icons/components/mongodb.png +0 -0
  443. data/lib/starter_web/assets/images/modules/icons/components/node.png +0 -0
  444. data/lib/starter_web/assets/images/modules/icons/components/postgresql.png +0 -0
  445. data/lib/starter_web/assets/images/modules/icons/components/protractor.png +0 -0
  446. data/lib/starter_web/assets/images/modules/icons/components/rails.png +0 -0
  447. data/lib/starter_web/assets/images/modules/icons/components/ruby.png +0 -0
  448. data/lib/starter_web/assets/images/modules/icons/components/sass.png +0 -0
  449. data/lib/starter_web/assets/images/modules/icons/components/scrum.png +0 -0
  450. data/lib/starter_web/assets/images/modules/icons/components/twitter.png +0 -0
  451. data/lib/starter_web/assets/images/modules/icons/d1/d1-256x256.png +0 -0
  452. data/lib/starter_web/assets/images/modules/icons/d1/d1-32x32.ico +0 -0
  453. data/lib/starter_web/assets/images/modules/icons/d1/d1-512x512.png +0 -0
  454. data/lib/starter_web/assets/images/modules/icons/d1/d1-64x64.png +0 -0
  455. data/lib/starter_web/assets/images/modules/icons/d1/d1.ico +0 -0
  456. data/lib/starter_web/assets/images/modules/icons/d1/favicon.ico +0 -0
  457. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +2020 -0
  458. data/lib/starter_web/assets/images/modules/icons/j1/favicon.ico +0 -0
  459. data/lib/starter_web/assets/images/modules/icons/j1/j1-256x256.png +0 -0
  460. data/lib/starter_web/assets/images/modules/icons/j1/j1-32x32.ico +0 -0
  461. data/lib/starter_web/assets/images/modules/icons/j1/j1-512x512.png +0 -0
  462. data/lib/starter_web/assets/images/modules/icons/j1/j1-64x64.png +0 -0
  463. data/lib/starter_web/assets/images/modules/icons/j1/j1..ico +0 -0
  464. data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +2027 -0
  465. data/lib/starter_web/assets/images/modules/icons/netlify/nf-logo.png +0 -0
  466. data/lib/starter_web/assets/images/modules/icons/p1/favicon.ico +0 -0
  467. data/lib/starter_web/assets/images/modules/icons/p1/p1-256x256.png +0 -0
  468. data/lib/starter_web/assets/images/modules/icons/p1/p1-32x32.ico +0 -0
  469. data/lib/starter_web/assets/images/modules/icons/p1/p1-512x512.png +0 -0
  470. data/lib/starter_web/assets/images/modules/icons/p1/p1-64x64.png +0 -0
  471. data/lib/starter_web/assets/images/modules/icons/p1/p1.ico +0 -0
  472. data/lib/starter_web/assets/images/modules/icons/p1/scalable/p1.svg +2020 -0
  473. data/lib/starter_web/assets/images/modules/icons/patreon/favicon-16x16.png +0 -0
  474. data/lib/starter_web/assets/images/modules/icons/patreon/favicon-32x32.png +0 -0
  475. data/lib/starter_web/assets/images/modules/icons/social/amazon.png +0 -0
  476. data/lib/starter_web/assets/images/modules/icons/social/behance.png +0 -0
  477. data/lib/starter_web/assets/images/modules/icons/social/blogger.png +0 -0
  478. data/lib/starter_web/assets/images/modules/icons/social/deviantart.png +0 -0
  479. data/lib/starter_web/assets/images/modules/icons/social/dribbble.png +0 -0
  480. data/lib/starter_web/assets/images/modules/icons/social/dropbox.png +0 -0
  481. data/lib/starter_web/assets/images/modules/icons/social/evernote.png +0 -0
  482. data/lib/starter_web/assets/images/modules/icons/social/facebook.png +0 -0
  483. data/lib/starter_web/assets/images/modules/icons/social/forrst.png +0 -0
  484. data/lib/starter_web/assets/images/modules/icons/social/github.png +0 -0
  485. data/lib/starter_web/assets/images/modules/icons/social/googleplus.png +0 -0
  486. data/lib/starter_web/assets/images/modules/icons/social/instagram.png +0 -0
  487. data/lib/starter_web/assets/images/modules/icons/social/jolicloud.png +0 -0
  488. data/lib/starter_web/assets/images/modules/icons/social/last-fm.png +0 -0
  489. data/lib/starter_web/assets/images/modules/icons/social/linkedin.png +0 -0
  490. data/lib/starter_web/assets/images/modules/icons/social/picasa.png +0 -0
  491. data/lib/starter_web/assets/images/modules/icons/social/pintrest.png +0 -0
  492. data/lib/starter_web/assets/images/modules/icons/social/rss.png +0 -0
  493. data/lib/starter_web/assets/images/modules/icons/social/skype.png +0 -0
  494. data/lib/starter_web/assets/images/modules/icons/social/spotify.png +0 -0
  495. data/lib/starter_web/assets/images/modules/icons/social/stumbleupon.png +0 -0
  496. data/lib/starter_web/assets/images/modules/icons/social/tumblr.png +0 -0
  497. data/lib/starter_web/assets/images/modules/icons/social/twitter.png +0 -0
  498. data/lib/starter_web/assets/images/modules/icons/social/vimeo.png +0 -0
  499. data/lib/starter_web/assets/images/modules/icons/social/vk.png +0 -0
  500. data/lib/starter_web/assets/images/modules/icons/social/wordpress.png +0 -0
  501. data/lib/starter_web/assets/images/modules/icons/social/xing.png +0 -0
  502. data/lib/starter_web/assets/images/modules/icons/social/yahoo.png +0 -0
  503. data/lib/starter_web/assets/images/modules/icons/social/youtube.png +0 -0
  504. data/lib/starter_web/assets/images/modules/lightbox/close.png +0 -0
  505. data/lib/starter_web/assets/images/modules/lightbox/loading.gif +0 -0
  506. data/lib/starter_web/assets/images/modules/lightbox/next.png +0 -0
  507. data/lib/starter_web/assets/images/modules/lightbox/prev.png +0 -0
  508. data/lib/starter_web/assets/images/modules/patterns/1x1.png +0 -0
  509. data/lib/starter_web/assets/images/modules/patterns/gridtile.png +0 -0
  510. data/lib/starter_web/assets/images/pages/j1_webhooks/000_browser_console-1280x600.jpg +0 -0
  511. data/lib/starter_web/assets/images/pages/j1_webhooks/001_smee_channel-1280x400.jpg +0 -0
  512. data/lib/starter_web/assets/images/pages/j1_webhooks/002_gh_repo_settings-1280x800.jpg +0 -0
  513. data/lib/starter_web/assets/images/pages/j1_webhooks/003_gh_webhook_settings-1280x1000.jpg +0 -0
  514. data/lib/starter_web/assets/images/pages/j1_webhooks/004_gh_webhook_settings-post-1280x600.jpg +0 -0
  515. data/lib/starter_web/assets/images/pages/j1_webhooks/005_smee_channel_ping_receive-1280x800.jpg +0 -0
  516. data/lib/starter_web/assets/images/pages/j1_webhooks/006_gh_redeliver_payload-1280x900.jpg +0 -0
  517. data/lib/starter_web/assets/images/pages/j1_webhooks/007_receive_redelivered_payload-1280x800.jpg +0 -0
  518. data/lib/starter_web/assets/images/pages/j1_webhooks/base/000_browser_console.jpg +0 -0
  519. data/lib/starter_web/assets/images/pages/j1_webhooks/base/000_smee_channel.jpg +0 -0
  520. data/lib/starter_web/assets/images/pages/j1_webhooks/base/002_gh_repo-settings.jpg +0 -0
  521. data/lib/starter_web/assets/images/pages/j1_webhooks/base/003_gh_webhook_settings.jpg +0 -0
  522. data/lib/starter_web/assets/images/pages/j1_webhooks/base/004_gh_webhook_settings-post.jpg +0 -0
  523. data/lib/starter_web/assets/images/pages/j1_webhooks/base/005_smee_channel_ping_received.jpg +0 -0
  524. data/lib/starter_web/assets/images/pages/j1_webhooks/base/006_gh_redeliver_payload.jpg +0 -0
  525. data/lib/starter_web/assets/images/pages/j1_webhooks/base/007_receive_redelivered_payload.jpg +0 -0
  526. data/lib/starter_web/assets/images/pages/j1_webhooks/base/webhook_flow.jpg +0 -0
  527. data/lib/starter_web/assets/images/pages/j1_webhooks/flows/webhook_flow-1920x1280.jpg +0 -0
  528. data/lib/starter_web/assets/images/pages/j1_webhooks/scaleable/webhook_flow.svg +432 -0
  529. data/lib/starter_web/assets/images/pages/j1_webhooks/uml/auth_mgmr_signin_request_flow.uxf +632 -0
  530. data/lib/starter_web/assets/images/pages/j1_webhooks/uml/webhook_flow.uxf +648 -0
  531. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/get-started-1920x1280-bw.jpg +0 -0
  532. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/130_layout_inheritance.png +0 -0
  533. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/content_inheritance.png +0 -0
  534. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/content_inheritance_thumb.png +0 -0
  535. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/html_layout.png +0 -0
  536. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1-quickstart-windows.png +0 -0
  537. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1-template-theme.jpg +0 -0
  538. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/j1_layout.png +0 -0
  539. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/jekyll-minima-theme.png +0 -0
  540. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/lane_inheritance.png +0 -0
  541. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/intro/layout_inheritance.png +0 -0
  542. data/lib/starter_web/assets/images/pages/kickstarter/web_in_a_day/preparations/msys_installation.jpg +0 -0
  543. data/lib/starter_web/assets/images/pages/log4j/apache-log4j-logo.png +0 -0
  544. data/lib/starter_web/assets/images/pages/log4r/code-1920x600.jpg +0 -0
  545. data/lib/starter_web/assets/images/pages/log4r/log4r-logo.png +0 -0
  546. data/lib/starter_web/assets/images/pages/log_expert/image_000.png +0 -0
  547. data/lib/starter_web/assets/images/pages/log_expert/image_001.png +0 -0
  548. data/lib/starter_web/assets/images/pages/log_expert/image_002.png +0 -0
  549. data/lib/starter_web/assets/images/pages/log_expert/image_003.png +0 -0
  550. data/lib/starter_web/assets/images/pages/log_expert/image_004.png +0 -0
  551. data/lib/starter_web/assets/images/pages/log_expert/image_005.png +0 -0
  552. data/lib/starter_web/assets/images/pages/log_expert/image_006.png +0 -0
  553. data/lib/starter_web/assets/images/pages/log_expert/image_007.png +0 -0
  554. data/lib/starter_web/assets/images/pages/log_expert/image_008.png +0 -0
  555. data/lib/starter_web/assets/images/pages/log_expert/image_009.png +0 -0
  556. data/lib/starter_web/assets/images/pages/log_expert/image_010.png +0 -0
  557. data/lib/starter_web/assets/images/pages/log_expert/image_011.png +0 -0
  558. data/lib/starter_web/assets/images/pages/log_expert/image_012.png +0 -0
  559. data/lib/starter_web/assets/images/pages/log_expert/image_013.png +0 -0
  560. data/lib/starter_web/assets/images/pages/log_expert/image_014.png +0 -0
  561. data/lib/starter_web/assets/images/pages/log_expert/image_015.png +0 -0
  562. data/lib/starter_web/assets/images/pages/log_expert/image_016.png +0 -0
  563. data/lib/starter_web/assets/images/pages/log_expert/image_017.png +0 -0
  564. data/lib/starter_web/assets/images/pages/log_expert/image_018.png +0 -0
  565. data/lib/starter_web/assets/images/pages/log_expert/image_019.png +0 -0
  566. data/lib/starter_web/assets/images/pages/log_expert/image_020.png +0 -0
  567. data/lib/starter_web/assets/images/pages/log_expert/image_021.png +0 -0
  568. data/lib/starter_web/assets/images/pages/log_expert/image_022.png +0 -0
  569. data/lib/starter_web/assets/images/pages/log_expert/image_023.png +0 -0
  570. data/lib/starter_web/assets/images/pages/log_expert/image_024.png +0 -0
  571. data/lib/starter_web/assets/images/pages/log_expert/image_025.png +0 -0
  572. data/lib/starter_web/assets/images/pages/log_expert/image_026.png +0 -0
  573. data/lib/starter_web/assets/images/pages/log_expert/image_027.png +0 -0
  574. data/lib/starter_web/assets/images/pages/log_expert/image_028.png +0 -0
  575. data/lib/starter_web/assets/images/pages/log_expert/image_029.png +0 -0
  576. data/lib/starter_web/assets/images/pages/log_expert/image_030.png +0 -0
  577. data/lib/starter_web/assets/images/pages/log_expert/image_031.png +0 -0
  578. data/lib/starter_web/assets/images/pages/log_expert/image_032.png +0 -0
  579. data/lib/starter_web/assets/images/pages/log_expert/image_033.png +0 -0
  580. data/lib/starter_web/assets/images/pages/log_expert/image_034.png +0 -0
  581. data/lib/starter_web/assets/images/pages/log_expert/image_035.png +0 -0
  582. data/lib/starter_web/assets/images/pages/log_expert/image_036.png +0 -0
  583. data/lib/starter_web/assets/images/pages/log_expert/image_037.png +0 -0
  584. data/lib/starter_web/assets/images/pages/log_expert/image_038.png +0 -0
  585. data/lib/starter_web/assets/images/pages/log_expert/image_039.png +0 -0
  586. data/lib/starter_web/assets/images/pages/log_expert/image_040.png +0 -0
  587. data/lib/starter_web/assets/images/pages/log_expert/image_041.png +0 -0
  588. data/lib/starter_web/assets/images/pages/log_expert/image_042.png +0 -0
  589. data/lib/starter_web/assets/images/pages/log_expert/image_043.png +0 -0
  590. data/lib/starter_web/assets/images/pages/log_expert/image_044.png +0 -0
  591. data/lib/starter_web/assets/images/pages/log_expert/image_045.png +0 -0
  592. data/lib/starter_web/assets/images/pages/log_expert/image_046.png +0 -0
  593. data/lib/starter_web/assets/images/pages/log_expert/image_047.png +0 -0
  594. data/lib/starter_web/assets/images/pages/log_expert/image_048.png +0 -0
  595. data/lib/starter_web/assets/images/pages/log_expert/image_049.png +0 -0
  596. data/lib/starter_web/assets/images/pages/log_expert/image_050.png +0 -0
  597. data/lib/starter_web/assets/images/pages/log_expert/image_051.png +0 -0
  598. data/lib/starter_web/assets/images/pages/log_expert/image_052.png +0 -0
  599. data/lib/starter_web/assets/images/pages/log_expert/image_053.png +0 -0
  600. data/lib/starter_web/assets/images/pages/log_expert/image_054.png +0 -0
  601. data/lib/starter_web/assets/images/pages/log_expert/image_055.png +0 -0
  602. data/lib/starter_web/assets/images/pages/log_expert/image_056.png +0 -0
  603. data/lib/starter_web/assets/images/pages/log_expert/image_057.png +0 -0
  604. data/lib/starter_web/assets/images/pages/modals/01_frame_modal.jpg +0 -0
  605. data/lib/starter_web/assets/images/pages/modals/02_site_modal.jpg +0 -0
  606. data/lib/starter_web/assets/images/pages/modals/03_central_modal.jpg +0 -0
  607. data/lib/starter_web/assets/images/pages/modals/04_fluid_modal.jpg +0 -0
  608. data/lib/starter_web/assets/images/pages/pen/jquery/jQuery-logo.png +0 -0
  609. data/lib/starter_web/assets/images/pages/pen/jquery/jquery-banner-1280x600.jpg +0 -0
  610. data/lib/starter_web/assets/images/pages/pen/jquery/jquery-banner-1920x800.jpg +0 -0
  611. data/lib/starter_web/assets/images/pages/pen/jquery/src/JQuery-Logo.svg +122 -0
  612. data/lib/starter_web/assets/images/pages/pen/jquery/src/banner.psd +0 -0
  613. data/lib/starter_web/assets/images/pages/previewer/bs-color-palette.png +0 -0
  614. data/lib/starter_web/assets/images/pages/previewer/material-design-color-palette.jpg +0 -0
  615. data/lib/starter_web/assets/images/pages/previewer/material-design-color-palette.png +0 -0
  616. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-1.jpg +0 -0
  617. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-2.jpg +0 -0
  618. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-3.jpg +0 -0
  619. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-1.jpg +0 -0
  620. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-2.jpg +0 -0
  621. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-thumb-3.jpg +0 -0
  622. data/lib/starter_web/assets/images/pages/roundtrip/410_bs_modals_extentions/avatar.jpg +0 -0
  623. data/lib/starter_web/assets/images/pages/roundtrip/410_bs_modals_extentions/marc.jpg +0 -0
  624. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
  625. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
  626. data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
  627. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
  628. data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
  629. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
  630. data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
  631. data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
  632. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
  633. data/lib/starter_web/assets/images/quotes/default.png +0 -0
  634. data/lib/starter_web/assets/images/quotes/people.png +0 -0
  635. data/lib/starter_web/assets/themes/j1/adapter/js/attic.js +563 -0
  636. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +227 -0
  637. data/lib/starter_web/assets/themes/j1/adapter/js/carousel.js +313 -0
  638. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +259 -0
  639. data/lib/starter_web/assets/themes/j1/adapter/js/framer.js +208 -0
  640. data/lib/starter_web/assets/themes/j1/adapter/js/gallery_customizer.js +427 -0
  641. data/lib/starter_web/assets/themes/j1/adapter/js/j1.js +2034 -0
  642. data/lib/starter_web/assets/themes/j1/adapter/js/justified_gallery.js +403 -0
  643. data/lib/starter_web/assets/themes/j1/adapter/js/lightbox.js +181 -0
  644. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +316 -0
  645. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +782 -0
  646. data/lib/starter_web/assets/themes/j1/adapter/js/scroller.js +177 -0
  647. data/lib/starter_web/assets/themes/j1/adapter/js/searcher.js +193 -0
  648. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +357 -0
  649. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +353 -0
  650. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel.css +81 -0
  651. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel.min.css +17 -0
  652. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel_transitions.css +184 -0
  653. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/carousel_transitions.min.css +17 -0
  654. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/theme/uno.css +191 -0
  655. data/lib/starter_web/assets/themes/j1/extensions/carousel/css/theme/uno.min.css +16 -0
  656. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/ajax-loader.gif +0 -0
  657. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/grabbing.png +0 -0
  658. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/owl-logo.png +0 -0
  659. data/lib/starter_web/assets/themes/j1/extensions/carousel/images/owl.video.play.png +0 -0
  660. data/lib/starter_web/assets/themes/j1/extensions/carousel/js/carousel.js +1517 -0
  661. data/lib/starter_web/assets/themes/j1/extensions/carousel/js/carousel.min.js +57 -0
  662. data/lib/starter_web/assets/themes/j1/extensions/iconify/js/iconify.min.js +13 -0
  663. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.absolute.html +86 -0
  664. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.content.html +58 -0
  665. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.hover.html +51 -0
  666. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.nested.html +68 -0
  667. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.textarea.html +46 -0
  668. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/frame.tolerance.html +79 -0
  669. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/index.html +70 -0
  670. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/examples/two.html +71 -0
  671. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.js +1104 -0
  672. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.map +1 -0
  673. data/lib/starter_web/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.min.js +10 -0
  674. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/LICENSE +22 -0
  675. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/README.md +273 -0
  676. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/justifiedGallery.css +110 -0
  677. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/justifiedGallery.min.css +110 -0
  678. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/css/theme/uno.css +23 -0
  679. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +1229 -0
  680. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.js +1229 -0
  681. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/js/justifiedGallery.min.js +8 -0
  682. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/less/.csslintrc +20 -0
  683. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v3.7.0/less/justifiedGallery.less +113 -0
  684. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/justifiedGallery.css +110 -0
  685. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/justifiedGallery.min.css +110 -0
  686. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/css/theme/uno.css +23 -0
  687. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/js/jquery.justifiedGallery.js +1229 -0
  688. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +8 -0
  689. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/justifiedGallery.css +110 -0
  690. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/justifiedGallery.min.css +110 -0
  691. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/theme/uno.css +38 -0
  692. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/css/theme/uno.min.css +38 -0
  693. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/js/justifiedGallery.js +1229 -0
  694. data/lib/starter_web/assets/themes/j1/extensions/justified_gallery/js/justifiedGallery.min.js +8 -0
  695. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-fb-comment-box.css +58 -0
  696. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-fb-comment-box.min.css +5 -0
  697. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-transitions.css +778 -0
  698. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lg-transitions.min.css +5 -0
  699. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lightgallery.css +981 -0
  700. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/core/lightgallery.min.css +5 -0
  701. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.eot +0 -0
  702. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.svg +47 -0
  703. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.ttf +0 -0
  704. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/fonts/lg.woff +0 -0
  705. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/loading.gif +0 -0
  706. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/video-play.png +0 -0
  707. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/vimeo-play.png +0 -0
  708. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/img/youtube-play.png +0 -0
  709. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/animation-w.png +0 -0
  710. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/customize-w.png +0 -0
  711. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/dynamic-w.png +0 -0
  712. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/facebook-icon.svg +10 -0
  713. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/googleplus-icon.svg +30 -0
  714. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/html5-w.png +0 -0
  715. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/linked-in.png +0 -0
  716. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/module-w.png +0 -0
  717. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/play-button.png +0 -0
  718. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/responsive-w.png +0 -0
  719. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/thumb-w.png +0 -0
  720. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/touch-w.png +0 -0
  721. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/twitter-icon.svg +15 -0
  722. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/twitter.png +0 -0
  723. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/video1-w.png +0 -0
  724. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/zoom-w.png +0 -0
  725. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/icons/zoom.png +0 -0
  726. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/uno.css +263 -0
  727. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/css/themes/uno.min.css +17 -0
  728. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/core/lightgallery.js +1362 -0
  729. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/core/lightgallery.min.js +5 -0
  730. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/j1/j1-video.js +402 -0
  731. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/j1/j1-video.min.js +8 -0
  732. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-autoplay.js +206 -0
  733. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-autoplay.min.js +5 -0
  734. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-fullscreen.js +126 -0
  735. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-fullscreen.min.js +5 -0
  736. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-hash.js +101 -0
  737. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-hash.min.js +5 -0
  738. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-pager.js +105 -0
  739. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-pager.min.js +5 -0
  740. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-share.js +107 -0
  741. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-share.min.js +5 -0
  742. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-thumbnail.js +478 -0
  743. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-thumbnail.min.js +5 -0
  744. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-video.js +342 -0
  745. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-video.min.js +5 -0
  746. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-zoom.js +527 -0
  747. data/lib/starter_web/assets/themes/j1/extensions/light_gallery/js/modules/lg-zoom.min.js +5 -0
  748. data/lib/starter_web/assets/themes/j1/extensions/log4javascript/log4javascript.js +5826 -0
  749. data/lib/starter_web/assets/themes/j1/extensions/log4javascript/log4javascript.min.js +266 -0
  750. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.dark/theme.css +78 -0
  751. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.light/theme.css +77 -0
  752. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai.dark/theme.css +78 -0
  753. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai.light/theme.css +77 -0
  754. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.monokai/theme.css +78 -0
  755. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized.dark/theme.css +78 -0
  756. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized.light/theme.css +77 -0
  757. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16.solarized/theme.css +77 -0
  758. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/base16/theme.css +77 -0
  759. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/colorful/theme.css +170 -0
  760. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/github/theme.css +209 -0
  761. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox.dark/theme.css +84 -0
  762. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox.light/theme.css +84 -0
  763. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/gruvbox/theme.css +84 -0
  764. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/igorpro/theme.css +32 -0
  765. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/molokai/theme.css +208 -0
  766. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/monokai.sublime/theme.css +187 -0
  767. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/monokai/theme.css +210 -0
  768. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/pastie/theme.css +146 -0
  769. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/thankful_eyes/theme.css +173 -0
  770. data/lib/starter_web/assets/themes/j1/extensions/rouge/css/tulip/theme.css +164 -0
  771. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/city.css +147 -0
  772. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/city.min.css +6 -0
  773. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/fantasy.css +113 -0
  774. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/fantasy.min.css +6 -0
  775. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/forest.css +165 -0
  776. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/forest.min.css +6 -0
  777. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/sea.css +72 -0
  778. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/themes/sea.min.css +6 -0
  779. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/video-js.css +1663 -0
  780. data/lib/starter_web/assets/themes/j1/extensions/videojs/css/video-js.min.css +1 -0
  781. data/lib/starter_web/assets/themes/j1/extensions/videojs/js/video.js +55690 -0
  782. data/lib/starter_web/assets/themes/j1/extensions/videojs/js/video.min.js +28 -0
  783. data/lib/starter_web/assets/themes/j1/extensions/vimeo/froogaloop/js/froogaloop2.min.js +4 -0
  784. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.js +2138 -0
  785. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.js.map +1 -0
  786. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.min.js +2 -0
  787. data/lib/starter_web/assets/themes/j1/extensions/vimeo/player/js/player.min.js.map +1 -0
  788. data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
  789. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  790. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  791. data/lib/starter_web/assets/videos/gallery/video1-thumb.jpg +0 -0
  792. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  793. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  794. data/lib/starter_web/assets/videos/gallery/video_adele-poster.jpg +0 -0
  795. data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
  796. data/lib/starter_web/assets/videos/gallery/video_gwen-poster.jpg +0 -0
  797. data/lib/starter_web/assets/videos/gallery/video_michelle-poster.jpg +0 -0
  798. data/lib/starter_web/assets/videos/headers/still/underground-broadway.png +0 -0
  799. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.png +0 -0
  800. data/lib/starter_web/collections/posts/private/readme +0 -0
  801. data/lib/starter_web/collections/posts/protected/readme +0 -0
  802. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +160 -0
  803. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/attributes.asciidoc +47 -0
  804. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/unsplash-badge.asciidoc +31 -0
  805. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +97 -0
  806. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +197 -0
  807. data/lib/starter_web/collections/posts/public/jekyll/_posts/2018-05-01-confusion-about-base-url.adoc +105 -0
  808. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/attributes.asciidoc +66 -0
  809. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +430 -0
  810. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/documents/loop.sh +28 -0
  811. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/tables/debug_variables.asciidoc +48 -0
  812. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +504 -0
  813. data/lib/starter_web/collections/posts/public/wikipedia/_posts/000_includes/attributes.asciidoc +46 -0
  814. data/lib/starter_web/collections/posts/public/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc +48 -0
  815. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +126 -0
  816. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +88 -0
  817. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +86 -0
  818. data/lib/starter_web/config.ru +24 -0
  819. data/lib/starter_web/dot.gitattributes +31 -0
  820. data/lib/starter_web/dot.gitignore +55 -0
  821. data/lib/starter_web/dot.nojekyll +19 -0
  822. data/lib/starter_web/favicon.ico +0 -0
  823. data/lib/starter_web/index.html +68 -0
  824. data/lib/starter_web/package.json +136 -0
  825. data/lib/starter_web/pages/private/readme +0 -0
  826. data/lib/starter_web/pages/protected/readme +0 -0
  827. data/lib/starter_web/pages/public/about/about_site.adoc +40 -0
  828. data/lib/starter_web/pages/public/about/become_a_patron.adoc +50 -0
  829. data/lib/starter_web/pages/public/blog/navigator/archive.html +111 -0
  830. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +153 -0
  831. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +133 -0
  832. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +187 -0
  833. data/lib/starter_web/pages/public/blog/navigator/index.html +47 -0
  834. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/attributes.asciidoc +174 -0
  835. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/100_meet_and_greet_jekyll.asciidoc +31 -0
  836. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/200_preparations.asciidoc +14 -0
  837. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/300_first_awesome_web.asciidoc +12 -0
  838. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/parts.asciidoc +193 -0
  839. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +79 -0
  840. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +72 -0
  841. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +70 -0
  842. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +121 -0
  843. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +145 -0
  844. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +644 -0
  845. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/attributes.asciidoc +117 -0
  846. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/100_gistblock.asciidoc +27 -0
  847. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_info.asciidoc +11 -0
  848. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  849. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  850. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_central_success.asciidoc +11 -0
  851. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_left_info.asciidoc +11 -0
  852. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_right_success.asciidoc +11 -0
  853. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_table_3_column.asciidoc +47 -0
  854. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_info.asciidoc +11 -0
  855. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_left_info.asciidoc +11 -0
  856. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_right_success.asciidoc +11 -0
  857. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +928 -0
  858. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +304 -0
  859. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +152 -0
  860. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +524 -0
  861. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +435 -0
  862. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +536 -0
  863. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +128 -0
  864. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +281 -0
  865. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +138 -0
  866. data/lib/starter_web/pages/public/learn/roundtrip/bs_tour.js +98 -0
  867. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/attributes.asciidoc +117 -0
  868. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/100_gistblock.asciidoc +27 -0
  869. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_info.asciidoc +11 -0
  870. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  871. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  872. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_central_success.asciidoc +11 -0
  873. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +11 -0
  874. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +11 -0
  875. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_table_3_column.asciidoc +47 -0
  876. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_info.asciidoc +11 -0
  877. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_left_info.asciidoc +11 -0
  878. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_right_success.asciidoc +11 -0
  879. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +928 -0
  880. data/lib/starter_web/pages/public/learn/vtutorials/000_test_youtube_video.adoc +141 -0
  881. data/lib/starter_web/pages/public/learn/vtutorials/100_basic_video.adoc +109 -0
  882. data/lib/starter_web/pages/public/learn/whats_up.adoc +117 -0
  883. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +97 -0
  884. data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +54 -0
  885. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +300 -0
  886. data/lib/starter_web/pages/public/legal/de/400_license_agreement.adoc +394 -0
  887. data/lib/starter_web/pages/public/legal/de/500_support.adoc +19 -0
  888. data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +89 -0
  889. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +51 -0
  890. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +48 -0
  891. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +394 -0
  892. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +432 -0
  893. data/lib/starter_web/pages/public/legal/en/500_support.adoc +19 -0
  894. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +55 -0
  895. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +158 -0
  896. data/lib/starter_web/pages/public/previewer/000_includes/attributes.asciidoc +116 -0
  897. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +39 -0
  898. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +47 -0
  899. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +87 -0
  900. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +71 -0
  901. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +31 -0
  902. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +39 -0
  903. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +61 -0
  904. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +55 -0
  905. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +95 -0
  906. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +95 -0
  907. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +95 -0
  908. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +47 -0
  909. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +47 -0
  910. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +71 -0
  911. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +30 -0
  912. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +31 -0
  913. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1858 -0
  914. data/lib/starter_web/pages/public/previewer/iframer.adoc +83 -0
  915. data/lib/starter_web/pages/public/previewer/justified_gallery.html +33 -0
  916. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +295 -0
  917. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +195 -0
  918. data/lib/starter_web/utilsrv/_defaults/package.json +52 -0
  919. data/lib/starter_web/utilsrv/package.json +52 -0
  920. data/lib/starter_web/utilsrv/server.js +601 -0
  921. metadata +1213 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["iframeResizer.contentWindow.js"],"names":["window","undefined","addEventListener","el","evt","func","attachEvent","removeEventListener","detachEvent","capitalizeFirstLetter","string","charAt","toUpperCase","slice","throttle","context","args","result","timeout","previous","later","getNow","apply","now","remaining","throttledTimer","this","arguments","clearTimeout","setTimeout","formatLogMsg","msg","msgID","myID","log","logging","console","warn","init","readDataFromParent","location","href","readDataFromPage","setMargin","setBodyStyle","bodyBackground","bodyPadding","injectClearFixIntoBodyElement","checkHeightMode","checkWidthMode","stopInfiniteResizingOfIFrame","setupPublicMethods","startEventListeners","inPageLinks","setupInPageLinks","sendSize","readyCallback","strBool","str","data","initMsg","substr","msgIdLen","split","bodyMargin","Number","calculateWidth","interval","autoResize","bodyMarginStr","heightCalcMode","tolerance","enable","resizeFrom","widthCalcMode","readData","iFrameResizer","JSON","stringify","messageCallback","targetOriginDefault","targetOrigin","heightCalculationMethod","widthCalculationMethod","setupCustomCalcMethods","calcMode","calcFunc","customCalcMethods","Object","constructor","chkCSS","attr","value","indexOf","document","body","style","documentElement","height","manageTriggerEvent","options","listener","add","eventName","handleEvent","eventType","eventHandlersByName","remove","eventNames","Array","prototype","map","method","manageEventListeners","checkCalcMode","calcModeDefault","modes","type","heightCalcModeDefault","getHeight","widthCalcModeDefault","getWidth","setupMutationObserver","stopMsgsToParent","sendPermit","removeMsgListener","receiver","disconnectMutationObserver","bodyObserver","disconnect","stopEventListeners","clearInterval","intervalTimer","teardown","clearFix","createElement","clear","display","appendChild","getPagePosition","x","pageXOffset","scrollLeft","y","pageYOffset","scrollTop","getElementPosition","elPosition","getBoundingClientRect","pagePosition","parseInt","left","top","findTarget","jumpToTarget","target","jumpPosition","hash","sendMsg","hashData","decodeURIComponent","getElementById","getElementsByName","checkLocationHash","bindAnchors","setupLink","linkClicked","e","preventDefault","getAttribute","forEach","call","querySelectorAll","bindLocationHash","initCheck","eventCancelTimer","enableInPageLinks","win","parentIFrame","resize","close","getId","getPageInfo","callback","pageInfoCallback","moveToAnchor","reset","resetIFrame","scrollTo","scrollToOffset","sendMessage","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","size","customHeight","customWidth","valString","initInterval","setInterval","Math","abs","setupBodyMutationObserver","addImageLoadListners","mutation","addImageLoadListener","element","complete","src","imageLoaded","imageError","elements","push","attributeName","removeFromArray","splice","removeImageLoadListener","imageEventTriggered","event","typeDesc","mutationObserved","mutations","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observer","MutationObserver","observe","WebKitMutationObserver","forceIntervalTimer","getComputedStyle","prop","convertUnitsToPxForIE8","PIXEL","test","base","runtimeStyle","currentStyle","pixelLeft","retVal","defaultView","chkEventThottle","timer","getMaxElement","side","elementsLength","length","elVal","maxVal","Side","i","getAllMeasurements","dimention","bodyOffset","bodyScroll","documentElementOffset","documentElementScroll","getTaggedElements","tag","noTaggedElementsFound","getAllElements","sizeIFrame","triggerEvent","triggerEventDesc","resizeIFrame","currentHeight","width","currentWidth","isSizeChangeDetected","checkTolarance","a","b","isForceResizableEvent","isForceResizableCalcMode","resetRequiredMethods","logIgnored","checkDownSizing","lockTrigger","recordTrigger","resetPage","isDoubleFiredEvent","triggerLocked","doubleEventList","sizeIFrameThrottled","triggerLockedTimer","triggerReset","hcm","sendToParent","message","postMessage","isMessageForUs","getMessageType","getData","isMiddleTier","isInitMsg","true","false","callFromParent","messageType","processRequestFromParent","processMessage","firstRun","fireInit","source","initLock","initFromParent","inPageLink","pageInfo","msgBody","parse","chkLateLoaded","readyState","parent","click","max","min","offsetHeight","scrollWidth","Date","getTime","offset","scrollHeight","custom","grow","lowestElement","taggedElement","offsetWidth","scroll","rightMostElement"],"mappings":"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","file":"iframeResizer.contentWindow.min.js","sourcesContent":["/*\n * File: iframeResizer.contentWindow.js\n * Desc: Include this file in any page being loaded into an iframe\n * to force the iframe to resize to the content size.\n * Requires: iframeResizer.js on host page.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Ian Caunce - ian@hallnet.co.uk\n */\n\n\n;(function(window, undefined) {\n\t'use strict';\n\n\tvar\n\t\tautoResize = true,\n\t\tbase = 10,\n\t\tbodyBackground = '',\n\t\tbodyMargin = 0,\n\t\tbodyMarginStr = '',\n\t\tbodyObserver = null,\n\t\tbodyPadding = '',\n\t\tcalculateWidth = false,\n\t\tdoubleEventList = {'resize':1,'click':1},\n\t\teventCancelTimer = 128,\n\t\tfirstRun = true,\n\t\theight = 1,\n\t\theightCalcModeDefault = 'bodyOffset',\n\t\theightCalcMode = heightCalcModeDefault,\n\t\tinitLock = true,\n\t\tinitMsg = '',\n\t\tinPageLinks = {},\n\t\tinterval = 32,\n\t\tintervalTimer = null,\n\t\tlogging = false,\n\t\tmsgID = '[iFrameSizer]', //Must match host page msg ID\n\t\tmsgIdLen = msgID.length,\n\t\tmyID = '',\n\t\tobserver = null,\n\t\tresetRequiredMethods = {max:1,min:1,bodyScroll:1,documentElementScroll:1},\n\t\tresizeFrom = 'child',\n\t\tsendPermit = true,\n\t\ttarget = window.parent,\n\t\ttargetOriginDefault = '*',\n\t\ttolerance = 0,\n\t\ttriggerLocked = false,\n\t\ttriggerLockedTimer = null,\n\t\tthrottledTimer = 16,\n\t\twidth = 1,\n\t\twidthCalcModeDefault = 'scroll',\n\t\twidthCalcMode = widthCalcModeDefault,\n\t\twin = window,\n\t\tmessageCallback = function(){ warn('MessageCallback function not defined'); },\n\t\treadyCallback = function(){},\n\t\tpageInfoCallback = function(){},\n\t\tcustomCalcMethods = {\n\t\t\theight: function(){\n\t\t\t\twarn('Custom height calculation function not defined');\n\t\t\t\treturn document.documentElement.offsetHeight;\n\t\t\t},\n\t\t\twidth: function(){\n\t\t\t\twarn('Custom width calculation function not defined');\n\t\t\t\treturn document.body.scrollWidth;\n\t\t\t}\n\t\t},\n\t\teventHandlersByName = {};\n\n\n\tfunction addEventListener(el,evt,func){\n\t\t/* istanbul ignore else */ // Not testable in phantonJS\n\t\tif ('addEventListener' in window){\n\t\t\tel.addEventListener(evt,func, false);\n\t\t} else if ('attachEvent' in window){ //IE\n\t\t\tel.attachEvent('on'+evt,func);\n\t\t}\n\t}\n\n\tfunction removeEventListener(el,evt,func){\n\t\t/* istanbul ignore else */ // Not testable in phantonJS\n\t\tif ('removeEventListener' in window){\n\t\t\tel.removeEventListener(evt,func, false);\n\t\t} else if ('detachEvent' in window){ //IE\n\t\t\tel.detachEvent('on'+evt,func);\n\t\t}\n\t}\n\n\tfunction capitalizeFirstLetter(string) {\n\t\treturn string.charAt(0).toUpperCase() + string.slice(1);\n\t}\n\n\t//Based on underscore.js\n\tfunction throttle(func) {\n\t\tvar\n\t\t\tcontext, args, result,\n\t\t\ttimeout = null,\n\t\t\tprevious = 0,\n\t\t\tlater = function() {\n\t\t\t\tprevious = getNow();\n\t\t\t\ttimeout = null;\n\t\t\t\tresult = func.apply(context, args);\n\t\t\t\tif (!timeout) {\n\t\t\t\t\tcontext = args = null;\n\t\t\t\t}\n\t\t\t};\n\n\t\treturn function() {\n\t\t\tvar now = getNow();\n\n\t\t\tif (!previous) {\n\t\t\t\tprevious = now;\n\t\t\t}\n\n\t\t\tvar remaining = throttledTimer - (now - previous);\n\n\t\t\tcontext = this;\n\t\t\targs = arguments;\n\n\t\t\tif (remaining <= 0 || remaining > throttledTimer) {\n\t\t\t\tif (timeout) {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\ttimeout = null;\n\t\t\t\t}\n\n\t\t\t\tprevious = now;\n\t\t\t\tresult = func.apply(context, args);\n\n\t\t\t\tif (!timeout) {\n\t\t\t\t\tcontext = args = null;\n\t\t\t\t}\n\n\t\t\t} else if (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, remaining);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tvar getNow = Date.now || function() {\n\t\t/* istanbul ignore next */ // Not testable in PhantonJS\n\t\treturn new Date().getTime();\n\t};\n\n\tfunction formatLogMsg(msg){\n\t\treturn msgID + '[' + myID + ']' + ' ' + msg;\n\t}\n\n\tfunction log(msg){\n\t\tif (logging && ('object' === typeof window.console)){\n\t\t\tconsole.log(formatLogMsg(msg));\n\t\t}\n\t}\n\n\tfunction warn(msg){\n\t\tif ('object' === typeof window.console){\n\t\t\tconsole.warn(formatLogMsg(msg));\n\t\t}\n\t}\n\n\n\tfunction init(){\n\t\treadDataFromParent();\n\t\tlog('Initialising iFrame ('+location.href+')');\n\t\treadDataFromPage();\n\t\tsetMargin();\n\t\tsetBodyStyle('background',bodyBackground);\n\t\tsetBodyStyle('padding',bodyPadding);\n\t\tinjectClearFixIntoBodyElement();\n\t\tcheckHeightMode();\n\t\tcheckWidthMode();\n\t\tstopInfiniteResizingOfIFrame();\n\t\tsetupPublicMethods();\n\t\tstartEventListeners();\n\t\tinPageLinks = setupInPageLinks();\n\t\tsendSize('init','Init message from host page');\n\t\treadyCallback();\n\t}\n\n\tfunction readDataFromParent(){\n\n\t\tfunction strBool(str){\n\t\t\treturn 'true' === str ? true : false;\n\t\t}\n\n\t\tvar data = initMsg.substr(msgIdLen).split(':');\n\n\t\tmyID = data[0];\n\t\tbodyMargin = (undefined !== data[1]) ? Number(data[1]) : bodyMargin; //For V1 compatibility\n\t\tcalculateWidth = (undefined !== data[2]) ? strBool(data[2]) : calculateWidth;\n\t\tlogging = (undefined !== data[3]) ? strBool(data[3]) : logging;\n\t\tinterval = (undefined !== data[4]) ? Number(data[4]) : interval;\n\t\tautoResize = (undefined !== data[6]) ? strBool(data[6]) : autoResize;\n\t\tbodyMarginStr = data[7];\n\t\theightCalcMode = (undefined !== data[8]) ? data[8] : heightCalcMode;\n\t\tbodyBackground = data[9];\n\t\tbodyPadding = data[10];\n\t\ttolerance = (undefined !== data[11]) ? Number(data[11]) : tolerance;\n\t\tinPageLinks.enable = (undefined !== data[12]) ? strBool(data[12]): false;\n\t\tresizeFrom = (undefined !== data[13]) ? data[13] : resizeFrom;\n\t\twidthCalcMode = (undefined !== data[14]) ? data[14] : widthCalcMode;\n\t}\n\n\tfunction readDataFromPage(){\n\t\tfunction readData(){\n\t\t\tvar data = window.iFrameResizer;\n\n\t\t\tlog('Reading data from page: ' + JSON.stringify(data));\n\n\t\t\tmessageCallback = ('messageCallback' in data) ? data.messageCallback : messageCallback;\n\t\t\treadyCallback = ('readyCallback' in data) ? data.readyCallback : readyCallback;\n\t\t\ttargetOriginDefault = ('targetOrigin' in data) ? data.targetOrigin : targetOriginDefault;\n\t\t\theightCalcMode = ('heightCalculationMethod' in data) ? data.heightCalculationMethod : heightCalcMode;\n\t\t\twidthCalcMode = ('widthCalculationMethod' in data) ? data.widthCalculationMethod : widthCalcMode;\n\t\t}\n\n\t\tfunction setupCustomCalcMethods(calcMode, calcFunc){\n\t\t\tif ('function' === typeof calcMode) {\n\t\t\t\tlog('Setup custom ' + calcFunc + 'CalcMethod');\n\t\t\t\tcustomCalcMethods[calcFunc] = calcMode;\n\t\t\t\tcalcMode = 'custom';\n\t\t\t}\n\n\t\t\treturn calcMode;\n\t\t}\n\n\t\tif(('iFrameResizer' in window) && (Object === window.iFrameResizer.constructor)) {\n\t\t\treadData();\n\t\t\theightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height');\n\t\t\twidthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width');\n\t\t}\n\n\t\tlog('TargetOrigin for parent set to: ' + targetOriginDefault);\n\t}\n\n\n\tfunction chkCSS(attr,value){\n\t\tif (-1 !== value.indexOf('-')){\n\t\t\twarn('Negative CSS value ignored for '+attr);\n\t\t\tvalue='';\n\t\t}\n\t\treturn value;\n\t}\n\n\tfunction setBodyStyle(attr,value){\n\t\tif ((undefined !== value) && ('' !== value) && ('null' !== value)){\n\t\t\tdocument.body.style[attr] = value;\n\t\t\tlog('Body '+attr+' set to \"'+value+'\"');\n\t\t}\n\t}\n\n\tfunction setMargin(){\n\t\t//If called via V1 script, convert bodyMargin from int to str\n\t\tif (undefined === bodyMarginStr){\n\t\t\tbodyMarginStr = bodyMargin+'px';\n\t\t}\n\n\t\tsetBodyStyle('margin',chkCSS('margin',bodyMarginStr));\n\t}\n\n\tfunction stopInfiniteResizingOfIFrame(){\n\t\tdocument.documentElement.style.height = '';\n\t\tdocument.body.style.height = '';\n\t\tlog('HTML & body height set to \"auto\"');\n\t}\n\n\n\tfunction manageTriggerEvent(options){\n\n\t\tvar listener = {\n\t\t\tadd: function(eventName){\n\t\t\t\tfunction handleEvent(){\n\t\t\t\t\tsendSize(options.eventName,options.eventType);\n\t\t\t\t}\n\n\t\t\t\teventHandlersByName[eventName] = handleEvent;\n\n\t\t\t\taddEventListener(window,eventName,handleEvent);\n\t\t\t},\n\t\t\tremove: function(eventName){\n\t\t\t\tvar handleEvent = eventHandlersByName[eventName];\n\t\t\t\tdelete eventHandlersByName[eventName];\n\n\t\t\t\tremoveEventListener(window,eventName,handleEvent);\n\t\t\t}\n\t\t};\n\n\t\tif(options.eventNames && Array.prototype.map){\n\t\t\toptions.eventName = options.eventNames[0];\n\t\t\toptions.eventNames.map(listener[options.method]);\n\t\t} else {\n\t\t\tlistener[options.method](options.eventName);\n\t\t}\n\n\t\tlog(capitalizeFirstLetter(options.method) + ' event listener: ' + options.eventType);\n\t}\n\n\tfunction manageEventListeners(method){\n\t\tmanageTriggerEvent({method:method, eventType: 'Animation Start', eventNames: ['animationstart','webkitAnimationStart'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Animation Iteration', eventNames: ['animationiteration','webkitAnimationIteration'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Animation End', eventNames: ['animationend','webkitAnimationEnd'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Input', eventName: 'input' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Mouse Up', eventName: 'mouseup' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Mouse Down', eventName: 'mousedown' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Orientation Change', eventName: 'orientationchange' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Print', eventName: ['afterprint', 'beforeprint'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Ready State Change', eventName: 'readystatechange' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Touch Start', eventName: 'touchstart' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Touch End', eventName: 'touchend' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Touch Cancel', eventName: 'touchcancel' });\n\t\tmanageTriggerEvent({method:method, eventType: 'Transition Start', eventNames: ['transitionstart','webkitTransitionStart','MSTransitionStart','oTransitionStart','otransitionstart'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Transition Iteration', eventNames: ['transitioniteration','webkitTransitionIteration','MSTransitionIteration','oTransitionIteration','otransitioniteration'] });\n\t\tmanageTriggerEvent({method:method, eventType: 'Transition End', eventNames: ['transitionend','webkitTransitionEnd','MSTransitionEnd','oTransitionEnd','otransitionend'] });\n\t\tif('child' === resizeFrom){\n\t\t\tmanageTriggerEvent({method:method, eventType: 'IFrame Resized', eventName: 'resize' });\n\t\t}\n\t}\n\n\tfunction checkCalcMode(calcMode,calcModeDefault,modes,type){\n\t\tif (calcModeDefault !== calcMode){\n\t\t\tif (!(calcMode in modes)){\n\t\t\t\twarn(calcMode + ' is not a valid option for '+type+'CalculationMethod.');\n\t\t\t\tcalcMode=calcModeDefault;\n\t\t\t}\n\t\t\tlog(type+' calculation method set to \"'+calcMode+'\"');\n\t\t}\n\n\t\treturn calcMode;\n\t}\n\n\tfunction checkHeightMode(){\n\t\theightCalcMode = checkCalcMode(heightCalcMode,heightCalcModeDefault,getHeight,'height');\n\t}\n\n\tfunction checkWidthMode(){\n\t\twidthCalcMode = checkCalcMode(widthCalcMode,widthCalcModeDefault,getWidth,'width');\n\t}\n\n\tfunction startEventListeners(){\n\t\tif ( true === autoResize ) {\n\t\t\tmanageEventListeners('add');\n\t\t\tsetupMutationObserver();\n\t\t}\n\t\telse {\n\t\t\tlog('Auto Resize disabled');\n\t\t}\n\t}\n\n\tfunction stopMsgsToParent(){\n\t\tlog('Disable outgoing messages');\n\t\tsendPermit = false;\n\t}\n\n\tfunction removeMsgListener(){\n\t\tlog('Remove event listener: Message');\n\t\tremoveEventListener(window, 'message', receiver);\n\t}\n\n\tfunction disconnectMutationObserver(){\n\t\tif (null !== bodyObserver){\n\t\t\t/* istanbul ignore next */ // Not testable in PhantonJS\n\t\t\tbodyObserver.disconnect();\n\t\t}\n\t}\n\n\tfunction stopEventListeners(){\n\t\tmanageEventListeners('remove');\n\t\tdisconnectMutationObserver();\n\t\tclearInterval(intervalTimer);\n\t}\n\n\tfunction teardown(){\n\t\tstopMsgsToParent();\n\t\tremoveMsgListener();\n\t\tif (true === autoResize) stopEventListeners();\n\t}\n\n\tfunction injectClearFixIntoBodyElement(){\n\t\tvar clearFix = document.createElement('div');\n\t\tclearFix.style.clear = 'both';\n\t\tclearFix.style.display = 'block'; //Guard against this having been globally redefined in CSS.\n\t\tdocument.body.appendChild(clearFix);\n\t}\n\n\tfunction setupInPageLinks(){\n\n\t\tfunction getPagePosition (){\n\t\t\treturn {\n\t\t\t\tx: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,\n\t\t\t\ty: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop\n\t\t\t};\n\t\t}\n\n\t\tfunction getElementPosition(el){\n\t\t\tvar\n\t\t\t\telPosition = el.getBoundingClientRect(),\n\t\t\t\tpagePosition = getPagePosition();\n\n\t\t\treturn {\n\t\t\t\tx: parseInt(elPosition.left,10) + parseInt(pagePosition.x,10),\n\t\t\t\ty: parseInt(elPosition.top,10) + parseInt(pagePosition.y,10)\n\t\t\t};\n\t\t}\n\n\t\tfunction findTarget(location){\n\t\t\tfunction jumpToTarget(target){\n\t\t\t\tvar jumpPosition = getElementPosition(target);\n\n\t\t\t\tlog('Moving to in page link (#'+hash+') at x: '+jumpPosition.x+' y: '+jumpPosition.y);\n\t\t\t\tsendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset'); // X&Y reversed at sendMsg uses height/width\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\thash = location.split('#')[1] || location, //Remove # if present\n\t\t\t\thashData = decodeURIComponent(hash),\n\t\t\t\ttarget = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\n\n\t\t\tif (undefined !== target){\n\t\t\t\tjumpToTarget(target);\n\t\t\t} else {\n\t\t\t\tlog('In page link (#' + hash + ') not found in iFrame, so sending to parent');\n\t\t\t\tsendMsg(0,0,'inPageLink','#'+hash);\n\t\t\t}\n\t\t}\n\n\t\tfunction checkLocationHash(){\n\t\t\tif ('' !== location.hash && '#' !== location.hash){\n\t\t\t\tfindTarget(location.href);\n\t\t\t}\n\t\t}\n\n\t\tfunction bindAnchors(){\n\t\t\tfunction setupLink(el){\n\t\t\t\tfunction linkClicked(e){\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t/*jshint validthis:true */\n\t\t\t\t\tfindTarget(this.getAttribute('href'));\n\t\t\t\t}\n\n\t\t\t\tif ('#' !== el.getAttribute('href')){\n\t\t\t\t\taddEventListener(el,'click',linkClicked);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tArray.prototype.forEach.call( document.querySelectorAll( 'a[href^=\"#\"]' ), setupLink );\n\t\t}\n\n\t\tfunction bindLocationHash(){\n\t\t\taddEventListener(window,'hashchange',checkLocationHash);\n\t\t}\n\n\t\tfunction initCheck(){ //check if page loaded with location hash after init resize\n\t\t\tsetTimeout(checkLocationHash,eventCancelTimer);\n\t\t}\n\n\t\tfunction enableInPageLinks(){\n\t\t\t/* istanbul ignore else */ // Not testable in phantonJS\n\t\t\tif(Array.prototype.forEach && document.querySelectorAll){\n\t\t\t\tlog('Setting up location.hash handlers');\n\t\t\t\tbindAnchors();\n\t\t\t\tbindLocationHash();\n\t\t\t\tinitCheck();\n\t\t\t} else {\n\t\t\t\twarn('In page linking not fully supported in this browser! (See README.md for IE8 workaround)');\n\t\t\t}\n\t\t}\n\n\t\tif(inPageLinks.enable){\n\t\t\tenableInPageLinks();\n\t\t} else {\n\t\t\tlog('In page linking not enabled');\n\t\t}\n\n\t\treturn {\n\t\t\tfindTarget:findTarget\n\t\t};\n\t}\n\n\tfunction setupPublicMethods(){\n\t\tlog('Enable public methods');\n\n\t\twin.parentIFrame = {\n\n\t\t\tautoResize: function autoResizeF(resize){\n\t\t\t\tif (true === resize && false === autoResize) {\n\t\t\t\t\tautoResize=true;\n\t\t\t\t\tstartEventListeners();\n\t\t\t\t\t//sendSize('autoResize','Auto Resize enabled');\n\t\t\t\t} else if (false === resize && true === autoResize) {\n\t\t\t\t\tautoResize=false;\n\t\t\t\t\tstopEventListeners();\n\t\t\t\t}\n\n\t\t\t\treturn autoResize;\n\t\t\t},\n\n\t\t\tclose: function closeF(){\n\t\t\t\tsendMsg(0,0,'close');\n\t\t\t\tteardown();\n\t\t\t},\n\n\t\t\tgetId: function getIdF(){\n\t\t\t\treturn myID;\n\t\t\t},\n\n\t\t\tgetPageInfo: function getPageInfoF(callback){\n\t\t\t\tif ('function' === typeof callback){\n\t\t\t\t\tpageInfoCallback = callback;\n\t\t\t\t\tsendMsg(0,0,'pageInfo');\n\t\t\t\t} else {\n\t\t\t\t\tpageInfoCallback = function(){};\n\t\t\t\t\tsendMsg(0,0,'pageInfoStop');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tmoveToAnchor: function moveToAnchorF(hash){\n\t\t\t\tinPageLinks.findTarget(hash);\n\t\t\t},\n\n\t\t\treset: function resetF(){\n\t\t\t\tresetIFrame('parentIFrame.reset');\n\t\t\t},\n\n\t\t\tscrollTo: function scrollToF(x,y){\n\t\t\t\tsendMsg(y,x,'scrollTo'); // X&Y reversed at sendMsg uses height/width\n\t\t\t},\n\n\t\t\tscrollToOffset: function scrollToF(x,y){\n\t\t\t\tsendMsg(y,x,'scrollToOffset'); // X&Y reversed at sendMsg uses height/width\n\t\t\t},\n\n\t\t\tsendMessage: function sendMessageF(msg,targetOrigin){\n\t\t\t\tsendMsg(0,0,'message',JSON.stringify(msg),targetOrigin);\n\t\t\t},\n\n\t\t\tsetHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod){\n\t\t\t\theightCalcMode = heightCalculationMethod;\n\t\t\t\tcheckHeightMode();\n\t\t\t},\n\n\t\t\tsetWidthCalculationMethod: function setWidthCalculationMethodF(widthCalculationMethod){\n\t\t\t\twidthCalcMode = widthCalculationMethod;\n\t\t\t\tcheckWidthMode();\n\t\t\t},\n\n\t\t\tsetTargetOrigin: function setTargetOriginF(targetOrigin){\n\t\t\t\tlog('Set targetOrigin: '+targetOrigin);\n\t\t\t\ttargetOriginDefault = targetOrigin;\n\t\t\t},\n\n\t\t\tsize: function sizeF(customHeight, customWidth){\n\t\t\t\tvar valString = ''+(customHeight?customHeight:'')+(customWidth?','+customWidth:'');\n\t\t\t\t//lockTrigger();\n\t\t\t\tsendSize('size','parentIFrame.size('+valString+')', customHeight, customWidth);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction initInterval(){\n\t\tif ( 0 !== interval ){\n\t\t\tlog('setInterval: '+interval+'ms');\n\t\t\tintervalTimer = setInterval(function(){\n\t\t\t\tsendSize('interval','setInterval: '+interval);\n\t\t\t},Math.abs(interval));\n\t\t}\n\t}\n\n\t/* istanbul ignore next */ //Not testable in PhantomJS\n\tfunction setupBodyMutationObserver(){\n\t\tfunction addImageLoadListners(mutation) {\n\t\t\tfunction addImageLoadListener(element){\n\t\t\t\tif (false === element.complete) {\n\t\t\t\t\tlog('Attach listeners to ' + element.src);\n\t\t\t\t\telement.addEventListener('load', imageLoaded, false);\n\t\t\t\t\telement.addEventListener('error', imageError, false);\n\t\t\t\t\telements.push(element);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (mutation.type === 'attributes' && mutation.attributeName === 'src'){\n\t\t\t\taddImageLoadListener(mutation.target);\n\t\t\t} else if (mutation.type === 'childList'){\n\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\tmutation.target.querySelectorAll('img'),\n\t\t\t\t\taddImageLoadListener\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfunction removeFromArray(element){\n\t\t\telements.splice(elements.indexOf(element),1);\n\t\t}\n\n\t\tfunction removeImageLoadListener(element){\n\t\t\tlog('Remove listeners from ' + element.src);\n\t\t\telement.removeEventListener('load', imageLoaded, false);\n\t\t\telement.removeEventListener('error', imageError, false);\n\t\t\tremoveFromArray(element);\n\t\t}\n\n\t\tfunction imageEventTriggered(event,type,typeDesc){\n\t\t\tremoveImageLoadListener(event.target);\n\t\t\tsendSize(type, typeDesc + ': ' + event.target.src, undefined, undefined);\n\t\t}\n\n\t\tfunction imageLoaded(event) {\n\t\t\timageEventTriggered(event,'imageLoad','Image loaded');\n\t\t}\n\n\t\tfunction imageError(event) {\n\t\t\timageEventTriggered(event,'imageLoadFailed','Image load failed');\n\t\t}\n\n\t\tfunction mutationObserved(mutations) {\n\t\t\tsendSize('mutationObserver','mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type);\n\n\t\t\t//Deal with WebKit asyncing image loading when tags are injected into the page\n\t\t\tmutations.forEach(addImageLoadListners);\n\t\t}\n\n\t\tfunction createMutationObserver(){\n\t\t\tvar\n\t\t\t\ttarget = document.querySelector('body'),\n\n\t\t\t\tconfig = {\n\t\t\t\t\tattributes : true,\n\t\t\t\t\tattributeOldValue : false,\n\t\t\t\t\tcharacterData : true,\n\t\t\t\t\tcharacterDataOldValue : false,\n\t\t\t\t\tchildList : true,\n\t\t\t\t\tsubtree : true\n\t\t\t\t};\n\n\t\t\tobserver = new MutationObserver(mutationObserved);\n\n\t\t\tlog('Create body MutationObserver');\n\t\t\tobserver.observe(target, config);\n\n\t\t\treturn observer;\n\t\t}\n\n\t\tvar\n\t\t\telements = [],\n\t\t\tMutationObserver = window.MutationObserver || window.WebKitMutationObserver,\n\t\t\tobserver = createMutationObserver();\n\n\t\treturn {\n\t\t\tdisconnect: function (){\n\t\t\t\tif ('disconnect' in observer){\n\t\t\t\t\tlog('Disconnect body MutationObserver');\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t\telements.forEach(removeImageLoadListener);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction setupMutationObserver(){\n\t\tvar\tforceIntervalTimer = 0 > interval;\n\n\t\t/* istanbul ignore if */ // Not testable in PhantomJS\n\t\tif (window.MutationObserver || window.WebKitMutationObserver){\n\t\t\tif (forceIntervalTimer) {\n\t\t\t\tinitInterval();\n\t\t\t} else {\n\t\t\t\tbodyObserver = setupBodyMutationObserver();\n\t\t\t}\n\t\t} else {\n\t\t\tlog('MutationObserver not supported in this browser!');\n\t\t\tinitInterval();\n\t\t}\n\t}\n\n\n\t// document.documentElement.offsetHeight is not reliable, so\n\t// we have to jump through hoops to get a better value.\n\tfunction getComputedStyle(prop,el) {\n\t\t/* istanbul ignore next */ //Not testable in PhantomJS\n\t\tfunction convertUnitsToPxForIE8(value) {\n\t\t\tvar PIXEL = /^\\d+(px)?$/i;\n\n\t\t\tif (PIXEL.test(value)) {\n\t\t\t\treturn parseInt(value,base);\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\tstyle = el.style.left,\n\t\t\t\truntimeStyle = el.runtimeStyle.left;\n\n\t\t\tel.runtimeStyle.left = el.currentStyle.left;\n\t\t\tel.style.left = value || 0;\n\t\t\tvalue = el.style.pixelLeft;\n\t\t\tel.style.left = style;\n\t\t\tel.runtimeStyle.left = runtimeStyle;\n\n\t\t\treturn value;\n\t\t}\n\n\t\tvar retVal = 0;\n\t\tel = el || document.body;\n\n\t\t/* istanbul ignore else */ // Not testable in phantonJS\n\t\tif (('defaultView' in document) && ('getComputedStyle' in document.defaultView)) {\n\t\t\tretVal = document.defaultView.getComputedStyle(el, null);\n\t\t\tretVal = (null !== retVal) ? retVal[prop] : 0;\n\t\t} else {//IE8\n\t\t\tretVal = convertUnitsToPxForIE8(el.currentStyle[prop]);\n\t\t}\n\n\t\treturn parseInt(retVal,base);\n\t}\n\n\tfunction chkEventThottle(timer){\n\t\tif(timer > throttledTimer/2){\n\t\t\tthrottledTimer = 2*timer;\n\t\t\tlog('Event throttle increased to ' + throttledTimer + 'ms');\n\t\t}\n\t}\n\n\t//Idea from https://github.com/guardian/iframe-messenger\n\tfunction getMaxElement(side,elements) {\n\t\tvar\n\t\t\telementsLength = elements.length,\n\t\t\telVal = 0,\n\t\t\tmaxVal = 0,\n\t\t\tSide = capitalizeFirstLetter(side),\n\t\t\ttimer = getNow();\n\n\t\tfor (var i = 0; i < elementsLength; i++) {\n\t\t\telVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('margin'+Side,elements[i]);\n\t\t\tif (elVal > maxVal) {\n\t\t\t\tmaxVal = elVal;\n\t\t\t}\n\t\t}\n\n\t\ttimer = getNow() - timer;\n\n\t\tlog('Parsed '+elementsLength+' HTML elements');\n\t\tlog('Element position calculated in ' + timer + 'ms');\n\n\t\tchkEventThottle(timer);\n\n\t\treturn maxVal;\n\t}\n\n\tfunction getAllMeasurements(dimention){\n\t\treturn [\n\t\t\tdimention.bodyOffset(),\n\t\t\tdimention.bodyScroll(),\n\t\t\tdimention.documentElementOffset(),\n\t\t\tdimention.documentElementScroll()\n\t\t];\n\t}\n\n\tfunction getTaggedElements(side,tag){\n\t\tfunction noTaggedElementsFound(){\n\t\t\twarn('No tagged elements ('+tag+') found on page');\n\t\t\treturn document.querySelectorAll('body *');\n\t\t}\n\n\t\tvar elements = document.querySelectorAll('['+tag+']');\n\n\t\tif (0 === elements.length) noTaggedElementsFound();\n\n\t\treturn getMaxElement(side,elements);\n\t}\n\n\tfunction getAllElements(){\n\t\treturn document.querySelectorAll('body *');\n\t}\n\n\tvar\n\t\tgetHeight = {\n\t\t\tbodyOffset: function getBodyOffsetHeight(){\n\t\t\t\treturn document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');\n\t\t\t},\n\n\t\t\toffset: function(){\n\t\t\t\treturn getHeight.bodyOffset(); //Backwards compatability\n\t\t\t},\n\n\t\t\tbodyScroll: function getBodyScrollHeight(){\n\t\t\t\treturn document.body.scrollHeight;\n\t\t\t},\n\n\t\t\tcustom: function getCustomWidth(){\n\t\t\t\treturn customCalcMethods.height();\n\t\t\t},\n\n\t\t\tdocumentElementOffset: function getDEOffsetHeight(){\n\t\t\t\treturn document.documentElement.offsetHeight;\n\t\t\t},\n\n\t\t\tdocumentElementScroll: function getDEScrollHeight(){\n\t\t\t\treturn document.documentElement.scrollHeight;\n\t\t\t},\n\n\t\t\tmax: function getMaxHeight(){\n\t\t\t\treturn Math.max.apply(null,getAllMeasurements(getHeight));\n\t\t\t},\n\n\t\t\tmin: function getMinHeight(){\n\t\t\t\treturn Math.min.apply(null,getAllMeasurements(getHeight));\n\t\t\t},\n\n\t\t\tgrow: function growHeight(){\n\t\t\t\treturn getHeight.max(); //Run max without the forced downsizing\n\t\t\t},\n\n\t\t\tlowestElement: function getBestHeight(){\n\t\t\t\treturn Math.max(getHeight.bodyOffset(), getMaxElement('bottom',getAllElements()));\n\t\t\t},\n\n\t\t\ttaggedElement: function getTaggedElementsHeight(){\n\t\t\t\treturn getTaggedElements('bottom','data-iframe-height');\n\t\t\t}\n\t\t},\n\n\t\tgetWidth = {\n\t\t\tbodyScroll: function getBodyScrollWidth(){\n\t\t\t\treturn document.body.scrollWidth;\n\t\t\t},\n\n\t\t\tbodyOffset: function getBodyOffsetWidth(){\n\t\t\t\treturn document.body.offsetWidth;\n\t\t\t},\n\n\t\t\tcustom: function getCustomWidth(){\n\t\t\t\treturn customCalcMethods.width();\n\t\t\t},\n\n\t\t\tdocumentElementScroll: function getDEScrollWidth(){\n\t\t\t\treturn document.documentElement.scrollWidth;\n\t\t\t},\n\n\t\t\tdocumentElementOffset: function getDEOffsetWidth(){\n\t\t\t\treturn document.documentElement.offsetWidth;\n\t\t\t},\n\n\t\t\tscroll: function getMaxWidth(){\n\t\t\t\treturn Math.max(getWidth.bodyScroll(), getWidth.documentElementScroll());\n\t\t\t},\n\n\t\t\tmax: function getMaxWidth(){\n\t\t\t\treturn Math.max.apply(null,getAllMeasurements(getWidth));\n\t\t\t},\n\n\t\t\tmin: function getMinWidth(){\n\t\t\t\treturn Math.min.apply(null,getAllMeasurements(getWidth));\n\t\t\t},\n\n\t\t\trightMostElement: function rightMostElement(){\n\t\t\t\treturn getMaxElement('right', getAllElements());\n\t\t\t},\n\n\t\t\ttaggedElement: function getTaggedElementsWidth(){\n\t\t\t\treturn getTaggedElements('right', 'data-iframe-width');\n\t\t\t}\n\t\t};\n\n\n\tfunction sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth){\n\n\t\tfunction resizeIFrame(){\n\t\t\theight = currentHeight;\n\t\t\twidth = currentWidth;\n\n\t\t\tsendMsg(height,width,triggerEvent);\n\t\t}\n\n\t\tfunction isSizeChangeDetected(){\n\t\t\tfunction checkTolarance(a,b){\n\t\t\t\tvar retVal = Math.abs(a-b) <= tolerance;\n\t\t\t\treturn !retVal;\n\t\t\t}\n\n\t\t\tcurrentHeight = (undefined !== customHeight) ? customHeight : getHeight[heightCalcMode]();\n\t\t\tcurrentWidth = (undefined !== customWidth ) ? customWidth : getWidth[widthCalcMode]();\n\n\t\t\treturn\tcheckTolarance(height,currentHeight) || (calculateWidth && checkTolarance(width,currentWidth));\n\t\t}\n\n\t\tfunction isForceResizableEvent(){\n\t\t\treturn !(triggerEvent in {'init':1,'interval':1,'size':1});\n\t\t}\n\n\t\tfunction isForceResizableCalcMode(){\n\t\t\treturn (heightCalcMode in resetRequiredMethods) || (calculateWidth && widthCalcMode in resetRequiredMethods);\n\t\t}\n\n\t\tfunction logIgnored(){\n\t\t\tlog('No change in size detected');\n\t\t}\n\n\t\tfunction checkDownSizing(){\n\t\t\tif (isForceResizableEvent() && isForceResizableCalcMode()){\n\t\t\t\tresetIFrame(triggerEventDesc);\n\t\t\t} else if (!(triggerEvent in {'interval':1})){\n\t\t\t\tlogIgnored();\n\t\t\t}\n\t\t}\n\n\t\tvar\tcurrentHeight,currentWidth;\n\n\t\tif (isSizeChangeDetected() || 'init' === triggerEvent){\n\t\t\tlockTrigger();\n\t\t\tresizeIFrame();\n\t\t} else {\n\t\t\tcheckDownSizing();\n\t\t}\n\t}\n\n\tvar sizeIFrameThrottled = throttle(sizeIFrame);\n\n\tfunction sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth){\n\t\tfunction recordTrigger(){\n\t\t\tif (!(triggerEvent in {'reset':1,'resetPage':1,'init':1})){\n\t\t\t\tlog( 'Trigger event: ' + triggerEventDesc );\n\t\t\t}\n\t\t}\n\n\t\tfunction isDoubleFiredEvent(){\n\t\t\treturn triggerLocked && (triggerEvent in doubleEventList);\n\t\t}\n\n\t\tif (!isDoubleFiredEvent()){\n\t\t\trecordTrigger();\n\t\t\tsizeIFrameThrottled(triggerEvent, triggerEventDesc, customHeight, customWidth);\n\t\t} else {\n\t\t\tlog('Trigger event cancelled: '+triggerEvent);\n\t\t}\n\t}\n\n\tfunction lockTrigger(){\n\t\tif (!triggerLocked){\n\t\t\ttriggerLocked = true;\n\t\t\tlog('Trigger event lock on');\n\t\t}\n\t\tclearTimeout(triggerLockedTimer);\n\t\ttriggerLockedTimer = setTimeout(function(){\n\t\t\ttriggerLocked = false;\n\t\t\tlog('Trigger event lock off');\n\t\t\tlog('--');\n\t\t},eventCancelTimer);\n\t}\n\n\tfunction triggerReset(triggerEvent){\n\t\theight = getHeight[heightCalcMode]();\n\t\twidth = getWidth[widthCalcMode]();\n\n\t\tsendMsg(height,width,triggerEvent);\n\t}\n\n\tfunction resetIFrame(triggerEventDesc){\n\t\tvar hcm = heightCalcMode;\n\t\theightCalcMode = heightCalcModeDefault;\n\n\t\tlog('Reset trigger event: ' + triggerEventDesc);\n\t\tlockTrigger();\n\t\ttriggerReset('reset');\n\n\t\theightCalcMode = hcm;\n\t}\n\n\tfunction sendMsg(height,width,triggerEvent,msg,targetOrigin){\n\t\tfunction setTargetOrigin(){\n\t\t\tif (undefined === targetOrigin){\n\t\t\t\ttargetOrigin = targetOriginDefault;\n\t\t\t} else {\n\t\t\t\tlog('Message targetOrigin: '+targetOrigin);\n\t\t\t}\n\t\t}\n\n\t\tfunction sendToParent(){\n\t\t\tvar\n\t\t\t\tsize = height + ':' + width,\n\t\t\t\tmessage = myID + ':' + size + ':' + triggerEvent + (undefined !== msg ? ':' + msg : '');\n\n\t\t\tlog('Sending message to host page (' + message + ')');\n\t\t\ttarget.postMessage( msgID + message, targetOrigin);\n\t\t}\n\n\t\tif(true === sendPermit){\n\t\t\tsetTargetOrigin();\n\t\t\tsendToParent();\n\t\t}\n\t}\n\n\tfunction receiver(event) {\n\t\tvar processRequestFromParent = {\n\t\t\tinit: function initFromParent(){\n\t\t\t\tfunction fireInit(){\n\t\t\t\t\tinitMsg = event.data;\n\t\t\t\t\ttarget = event.source;\n\n\t\t\t\t\tinit();\n\t\t\t\t\tfirstRun = false;\n\t\t\t\t\tsetTimeout(function(){ initLock = false;},eventCancelTimer);\n\t\t\t\t}\n\n\t\t\t\tif (document.body){\n\t\t\t\t\tfireInit();\n\t\t\t\t} else {\n\t\t\t\t\tlog('Waiting for page ready');\n\t\t\t\t\taddEventListener(window,'readystatechange',processRequestFromParent.initFromParent);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\treset: function resetFromParent(){\n\t\t\t\tif (!initLock){\n\t\t\t\t\tlog('Page size reset by host page');\n\t\t\t\t\ttriggerReset('resetPage');\n\t\t\t\t} else {\n\t\t\t\t\tlog('Page reset ignored by init');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tresize: function resizeFromParent(){\n\t\t\t\tsendSize('resizeParent','Parent window requested size check');\n\t\t\t},\n\n\t\t\tmoveToAnchor: function moveToAnchorF(){\n\t\t\t\tinPageLinks.findTarget(getData());\n\t\t\t},\n\t\t\tinPageLink: function inPageLinkF() {this.moveToAnchor();}, //Backward compatability\n\n\t\t\tpageInfo: function pageInfoFromParent(){\n\t\t\t\tvar msgBody = getData();\n\t\t\t\tlog('PageInfoFromParent called from parent: ' + msgBody );\n\t\t\t\tpageInfoCallback(JSON.parse(msgBody));\n\t\t\t\tlog(' --');\n\t\t\t},\n\n\t\t\tmessage: function messageFromParent(){\n\t\t\t\tvar msgBody = getData();\n\n\t\t\t\tlog('MessageCallback called from parent: ' + msgBody );\n\t\t\t\tmessageCallback(JSON.parse(msgBody));\n\t\t\t\tlog(' --');\n\t\t\t}\n\t\t};\n\n\t\tfunction isMessageForUs(){\n\t\t\treturn msgID === (''+event.data).substr(0,msgIdLen); //''+ Protects against non-string messages\n\t\t}\n\n\t\tfunction getMessageType(){\n\t\t\treturn event.data.split(']')[1].split(':')[0];\n\t\t}\n\n\t\tfunction getData(){\n\t\t\treturn event.data.substr(event.data.indexOf(':')+1);\n\t\t}\n\n\t\tfunction isMiddleTier(){\n\t\t\treturn ('iFrameResize' in window);\n\t\t}\n\n\t\tfunction isInitMsg(){\n\t\t\t//Test if this message is from a child below us. This is an ugly test, however, updating\n\t\t\t//the message format would break backwards compatibity.\n\t\t\treturn event.data.split(':')[2] in {'true':1,'false':1};\n\t\t}\n\n\t\tfunction callFromParent(){\n\t\t\tvar messageType = getMessageType();\n\n\t\t\tif (messageType in processRequestFromParent){\n\t\t\t\tprocessRequestFromParent[messageType]();\n\t\t\t} else if (!isMiddleTier() && !isInitMsg()){\n\t\t\t\twarn('Unexpected message ('+event.data+')');\n\t\t\t}\n\t\t}\n\n\t\tfunction processMessage(){\n\t\t\tif (false === firstRun) {\n\t\t\t\tcallFromParent();\n\t\t\t} else if (isInitMsg()) {\n\t\t\t\tprocessRequestFromParent.init();\n\t\t\t} else {\n\t\t\t\tlog('Ignored message of type \"' + getMessageType() + '\". Received before initialization.');\n\t\t\t}\n\t\t}\n\n\t\tif (isMessageForUs()){\n\t\t\tprocessMessage();\n\t\t}\n\t}\n\n\t//Normally the parent kicks things off when it detects the iFrame has loaded.\n\t//If this script is async-loaded, then tell parent page to retry init.\n\tfunction chkLateLoaded(){\n\t\tif('loading' !== document.readyState){\n\t\t\twindow.parent.postMessage('[iFrameResizerChild]Ready','*');\n\t\t}\n\t}\n\n\taddEventListener(window, 'message', receiver);\n\tchkLateLoaded();\n\n\t\n\n})(window || {});\n"]}
@@ -0,0 +1,10 @@
1
+ /*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v3.5.7 - 2016-12-16
2
+ * Desc: Include this file in any page being loaded into an iframe
3
+ * to force the iframe to resize to the content size.
4
+ * Requires: iframeResizer.min.js on host page.
5
+ * Copyright: (c) 2016 David J. Bradshaw - dave@bradshaw.net
6
+ * License: MIT
7
+ */
8
+
9
+ !function(a,b){"use strict";function c(b,c,d){"addEventListener"in a?b.addEventListener(c,d,!1):"attachEvent"in a&&b.attachEvent("on"+c,d)}function d(b,c,d){"removeEventListener"in a?b.removeEventListener(c,d,!1):"detachEvent"in a&&b.detachEvent("on"+c,d)}function e(a){return a.charAt(0).toUpperCase()+a.slice(1)}function f(a){var b,c,d,e=null,f=0,g=function(){f=Ia(),e=null,d=a.apply(b,c),e||(b=c=null)};return function(){var h=Ia();f||(f=h);var i=ya-(h-f);return b=this,c=arguments,0>=i||i>ya?(e&&(clearTimeout(e),e=null),f=h,d=a.apply(b,c),e||(b=c=null)):e||(e=setTimeout(g,i)),d}}function g(a){return na+"["+pa+"] "+a}function h(b){ma&&"object"==typeof a.console&&console.log(g(b))}function i(b){"object"==typeof a.console&&console.warn(g(b))}function j(){k(),h("Initialising iFrame ("+location.href+")"),l(),o(),n("background",X),n("padding",_),B(),t(),u(),p(),D(),v(),ja=C(),O("init","Init message from host page"),Ea()}function k(){function a(a){return"true"===a?!0:!1}var c=ia.substr(oa).split(":");pa=c[0],Y=b!==c[1]?Number(c[1]):Y,aa=b!==c[2]?a(c[2]):aa,ma=b!==c[3]?a(c[3]):ma,ka=b!==c[4]?Number(c[4]):ka,V=b!==c[6]?a(c[6]):V,Z=c[7],ga=b!==c[8]?c[8]:ga,X=c[9],_=c[10],va=b!==c[11]?Number(c[11]):va,ja.enable=b!==c[12]?a(c[12]):!1,ra=b!==c[13]?c[13]:ra,Ba=b!==c[14]?c[14]:Ba}function l(){function b(){var b=a.iFrameResizer;h("Reading data from page: "+JSON.stringify(b)),Da="messageCallback"in b?b.messageCallback:Da,Ea="readyCallback"in b?b.readyCallback:Ea,ua="targetOrigin"in b?b.targetOrigin:ua,ga="heightCalculationMethod"in b?b.heightCalculationMethod:ga,Ba="widthCalculationMethod"in b?b.widthCalculationMethod:Ba}function c(a,b){return"function"==typeof a&&(h("Setup custom "+b+"CalcMethod"),Ga[b]=a,a="custom"),a}"iFrameResizer"in a&&Object===a.iFrameResizer.constructor&&(b(),ga=c(ga,"height"),Ba=c(Ba,"width")),h("TargetOrigin for parent set to: "+ua)}function m(a,b){return-1!==b.indexOf("-")&&(i("Negative CSS value ignored for "+a),b=""),b}function n(a,c){b!==c&&""!==c&&"null"!==c&&(document.body.style[a]=c,h("Body "+a+' set to "'+c+'"'))}function o(){b===Z&&(Z=Y+"px"),n("margin",m("margin",Z))}function p(){document.documentElement.style.height="",document.body.style.height="",h('HTML & body height set to "auto"')}function q(b){var f={add:function(d){function e(){O(b.eventName,b.eventType)}Ha[d]=e,c(a,d,e)},remove:function(b){var c=Ha[b];delete Ha[b],d(a,b,c)}};b.eventNames&&Array.prototype.map?(b.eventName=b.eventNames[0],b.eventNames.map(f[b.method])):f[b.method](b.eventName),h(e(b.method)+" event listener: "+b.eventType)}function r(a){q({method:a,eventType:"Animation Start",eventNames:["animationstart","webkitAnimationStart"]}),q({method:a,eventType:"Animation Iteration",eventNames:["animationiteration","webkitAnimationIteration"]}),q({method:a,eventType:"Animation End",eventNames:["animationend","webkitAnimationEnd"]}),q({method:a,eventType:"Input",eventName:"input"}),q({method:a,eventType:"Mouse Up",eventName:"mouseup"}),q({method:a,eventType:"Mouse Down",eventName:"mousedown"}),q({method:a,eventType:"Orientation Change",eventName:"orientationchange"}),q({method:a,eventType:"Print",eventName:["afterprint","beforeprint"]}),q({method:a,eventType:"Ready State Change",eventName:"readystatechange"}),q({method:a,eventType:"Touch Start",eventName:"touchstart"}),q({method:a,eventType:"Touch End",eventName:"touchend"}),q({method:a,eventType:"Touch Cancel",eventName:"touchcancel"}),q({method:a,eventType:"Transition Start",eventNames:["transitionstart","webkitTransitionStart","MSTransitionStart","oTransitionStart","otransitionstart"]}),q({method:a,eventType:"Transition Iteration",eventNames:["transitioniteration","webkitTransitionIteration","MSTransitionIteration","oTransitionIteration","otransitioniteration"]}),q({method:a,eventType:"Transition End",eventNames:["transitionend","webkitTransitionEnd","MSTransitionEnd","oTransitionEnd","otransitionend"]}),"child"===ra&&q({method:a,eventType:"IFrame Resized",eventName:"resize"})}function s(a,b,c,d){return b!==a&&(a in c||(i(a+" is not a valid option for "+d+"CalculationMethod."),a=b),h(d+' calculation method set to "'+a+'"')),a}function t(){ga=s(ga,fa,Ja,"height")}function u(){Ba=s(Ba,Aa,Ka,"width")}function v(){!0===V?(r("add"),G()):h("Auto Resize disabled")}function w(){h("Disable outgoing messages"),sa=!1}function x(){h("Remove event listener: Message"),d(a,"message",T)}function y(){null!==$&&$.disconnect()}function z(){r("remove"),y(),clearInterval(la)}function A(){w(),x(),!0===V&&z()}function B(){var a=document.createElement("div");a.style.clear="both",a.style.display="block",document.body.appendChild(a)}function C(){function d(){return{x:a.pageXOffset!==b?a.pageXOffset:document.documentElement.scrollLeft,y:a.pageYOffset!==b?a.pageYOffset:document.documentElement.scrollTop}}function e(a){var b=a.getBoundingClientRect(),c=d();return{x:parseInt(b.left,10)+parseInt(c.x,10),y:parseInt(b.top,10)+parseInt(c.y,10)}}function f(a){function c(a){var b=e(a);h("Moving to in page link (#"+d+") at x: "+b.x+" y: "+b.y),S(b.y,b.x,"scrollToOffset")}var d=a.split("#")[1]||a,f=decodeURIComponent(d),g=document.getElementById(f)||document.getElementsByName(f)[0];b!==g?c(g):(h("In page link (#"+d+") not found in iFrame, so sending to parent"),S(0,0,"inPageLink","#"+d))}function g(){""!==location.hash&&"#"!==location.hash&&f(location.href)}function j(){function a(a){function b(a){a.preventDefault(),f(this.getAttribute("href"))}"#"!==a.getAttribute("href")&&c(a,"click",b)}Array.prototype.forEach.call(document.querySelectorAll('a[href^="#"]'),a)}function k(){c(a,"hashchange",g)}function l(){setTimeout(g,ca)}function m(){Array.prototype.forEach&&document.querySelectorAll?(h("Setting up location.hash handlers"),j(),k(),l()):i("In page linking not fully supported in this browser! (See README.md for IE8 workaround)")}return ja.enable?m():h("In page linking not enabled"),{findTarget:f}}function D(){h("Enable public methods"),Ca.parentIFrame={autoResize:function(a){return!0===a&&!1===V?(V=!0,v()):!1===a&&!0===V&&(V=!1,z()),V},close:function(){S(0,0,"close"),A()},getId:function(){return pa},getPageInfo:function(a){"function"==typeof a?(Fa=a,S(0,0,"pageInfo")):(Fa=function(){},S(0,0,"pageInfoStop"))},moveToAnchor:function(a){ja.findTarget(a)},reset:function(){R("parentIFrame.reset")},scrollTo:function(a,b){S(b,a,"scrollTo")},scrollToOffset:function(a,b){S(b,a,"scrollToOffset")},sendMessage:function(a,b){S(0,0,"message",JSON.stringify(a),b)},setHeightCalculationMethod:function(a){ga=a,t()},setWidthCalculationMethod:function(a){Ba=a,u()},setTargetOrigin:function(a){h("Set targetOrigin: "+a),ua=a},size:function(a,b){var c=""+(a?a:"")+(b?","+b:"");O("size","parentIFrame.size("+c+")",a,b)}}}function E(){0!==ka&&(h("setInterval: "+ka+"ms"),la=setInterval(function(){O("interval","setInterval: "+ka)},Math.abs(ka)))}function F(){function c(a){function b(a){!1===a.complete&&(h("Attach listeners to "+a.src),a.addEventListener("load",g,!1),a.addEventListener("error",i,!1),l.push(a))}"attributes"===a.type&&"src"===a.attributeName?b(a.target):"childList"===a.type&&Array.prototype.forEach.call(a.target.querySelectorAll("img"),b)}function d(a){l.splice(l.indexOf(a),1)}function e(a){h("Remove listeners from "+a.src),a.removeEventListener("load",g,!1),a.removeEventListener("error",i,!1),d(a)}function f(a,c,d){e(a.target),O(c,d+": "+a.target.src,b,b)}function g(a){f(a,"imageLoad","Image loaded")}function i(a){f(a,"imageLoadFailed","Image load failed")}function j(a){O("mutationObserver","mutationObserver: "+a[0].target+" "+a[0].type),a.forEach(c)}function k(){var a=document.querySelector("body"),b={attributes:!0,attributeOldValue:!1,characterData:!0,characterDataOldValue:!1,childList:!0,subtree:!0};return n=new m(j),h("Create body MutationObserver"),n.observe(a,b),n}var l=[],m=a.MutationObserver||a.WebKitMutationObserver,n=k();return{disconnect:function(){"disconnect"in n&&(h("Disconnect body MutationObserver"),n.disconnect(),l.forEach(e))}}}function G(){var b=0>ka;a.MutationObserver||a.WebKitMutationObserver?b?E():$=F():(h("MutationObserver not supported in this browser!"),E())}function H(a,b){function c(a){var c=/^\d+(px)?$/i;if(c.test(a))return parseInt(a,W);var d=b.style.left,e=b.runtimeStyle.left;return b.runtimeStyle.left=b.currentStyle.left,b.style.left=a||0,a=b.style.pixelLeft,b.style.left=d,b.runtimeStyle.left=e,a}var d=0;return b=b||document.body,"defaultView"in document&&"getComputedStyle"in document.defaultView?(d=document.defaultView.getComputedStyle(b,null),d=null!==d?d[a]:0):d=c(b.currentStyle[a]),parseInt(d,W)}function I(a){a>ya/2&&(ya=2*a,h("Event throttle increased to "+ya+"ms"))}function J(a,b){for(var c=b.length,d=0,f=0,g=e(a),i=Ia(),j=0;c>j;j++)d=b[j].getBoundingClientRect()[a]+H("margin"+g,b[j]),d>f&&(f=d);return i=Ia()-i,h("Parsed "+c+" HTML elements"),h("Element position calculated in "+i+"ms"),I(i),f}function K(a){return[a.bodyOffset(),a.bodyScroll(),a.documentElementOffset(),a.documentElementScroll()]}function L(a,b){function c(){return i("No tagged elements ("+b+") found on page"),document.querySelectorAll("body *")}var d=document.querySelectorAll("["+b+"]");return 0===d.length&&c(),J(a,d)}function M(){return document.querySelectorAll("body *")}function N(a,c,d,e){function f(){ea=m,za=n,S(ea,za,a)}function g(){function a(a,b){var c=Math.abs(a-b)<=va;return!c}return m=b!==d?d:Ja[ga](),n=b!==e?e:Ka[Ba](),a(ea,m)||aa&&a(za,n)}function i(){return!(a in{init:1,interval:1,size:1})}function j(){return ga in qa||aa&&Ba in qa}function k(){h("No change in size detected")}function l(){i()&&j()?R(c):a in{interval:1}||k()}var m,n;g()||"init"===a?(P(),f()):l()}function O(a,b,c,d){function e(){a in{reset:1,resetPage:1,init:1}||h("Trigger event: "+b)}function f(){return wa&&a in ba}f()?h("Trigger event cancelled: "+a):(e(),La(a,b,c,d))}function P(){wa||(wa=!0,h("Trigger event lock on")),clearTimeout(xa),xa=setTimeout(function(){wa=!1,h("Trigger event lock off"),h("--")},ca)}function Q(a){ea=Ja[ga](),za=Ka[Ba](),S(ea,za,a)}function R(a){var b=ga;ga=fa,h("Reset trigger event: "+a),P(),Q("reset"),ga=b}function S(a,c,d,e,f){function g(){b===f?f=ua:h("Message targetOrigin: "+f)}function i(){var g=a+":"+c,i=pa+":"+g+":"+d+(b!==e?":"+e:"");h("Sending message to host page ("+i+")"),ta.postMessage(na+i,f)}!0===sa&&(g(),i())}function T(b){function d(){return na===(""+b.data).substr(0,oa)}function e(){return b.data.split("]")[1].split(":")[0]}function f(){return b.data.substr(b.data.indexOf(":")+1)}function g(){return"iFrameResize"in a}function k(){return b.data.split(":")[2]in{"true":1,"false":1}}function l(){var a=e();a in n?n[a]():g()||k()||i("Unexpected message ("+b.data+")")}function m(){!1===da?l():k()?n.init():h('Ignored message of type "'+e()+'". Received before initialization.')}var n={init:function(){function d(){ia=b.data,ta=b.source,j(),da=!1,setTimeout(function(){ha=!1},ca)}document.body?d():(h("Waiting for page ready"),c(a,"readystatechange",n.initFromParent))},reset:function(){ha?h("Page reset ignored by init"):(h("Page size reset by host page"),Q("resetPage"))},resize:function(){O("resizeParent","Parent window requested size check")},moveToAnchor:function(){ja.findTarget(f())},inPageLink:function(){this.moveToAnchor()},pageInfo:function(){var a=f();h("PageInfoFromParent called from parent: "+a),Fa(JSON.parse(a)),h(" --")},message:function(){var a=f();h("MessageCallback called from parent: "+a),Da(JSON.parse(a)),h(" --")}};d()&&m()}function U(){"loading"!==document.readyState&&a.parent.postMessage("[iFrameResizerChild]Ready","*")}var V=!0,W=10,X="",Y=0,Z="",$=null,_="",aa=!1,ba={resize:1,click:1},ca=128,da=!0,ea=1,fa="bodyOffset",ga=fa,ha=!0,ia="",ja={},ka=32,la=null,ma=!1,na="[iFrameSizer]",oa=na.length,pa="",qa={max:1,min:1,bodyScroll:1,documentElementScroll:1},ra="child",sa=!0,ta=a.parent,ua="*",va=0,wa=!1,xa=null,ya=16,za=1,Aa="scroll",Ba=Aa,Ca=a,Da=function(){i("MessageCallback function not defined")},Ea=function(){},Fa=function(){},Ga={height:function(){return i("Custom height calculation function not defined"),document.documentElement.offsetHeight},width:function(){return i("Custom width calculation function not defined"),document.body.scrollWidth}},Ha={},Ia=Date.now||function(){return(new Date).getTime()},Ja={bodyOffset:function(){return document.body.offsetHeight+H("marginTop")+H("marginBottom")},offset:function(){return Ja.bodyOffset()},bodyScroll:function(){return document.body.scrollHeight},custom:function(){return Ga.height()},documentElementOffset:function(){return document.documentElement.offsetHeight},documentElementScroll:function(){return document.documentElement.scrollHeight},max:function(){return Math.max.apply(null,K(Ja))},min:function(){return Math.min.apply(null,K(Ja))},grow:function(){return Ja.max()},lowestElement:function(){return Math.max(Ja.bodyOffset(),J("bottom",M()))},taggedElement:function(){return L("bottom","data-iframe-height")}},Ka={bodyScroll:function(){return document.body.scrollWidth},bodyOffset:function(){return document.body.offsetWidth},custom:function(){return Ga.width()},documentElementScroll:function(){return document.documentElement.scrollWidth},documentElementOffset:function(){return document.documentElement.offsetWidth},scroll:function(){return Math.max(Ka.bodyScroll(),Ka.documentElementScroll())},max:function(){return Math.max.apply(null,K(Ka))},min:function(){return Math.min.apply(null,K(Ka))},rightMostElement:function(){return J("right",M())},taggedElement:function(){return L("right","data-iframe-width")}},La=f(N);c(a,"message",T),U()}(window||{});
10
+ //# sourceMappingURL=iframeResizer.contentWindow.map
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2019 Miro Mannino
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,273 @@
1
+ ## Release History
2
+
3
+ ### 4.0.0-alpha
4
+
5
+ * Added support for SVG images
6
+ * .entry-visible renamed to .jg-entry-visible to avoid too generic css classes
7
+ * Various fixes
8
+
9
+ ### 3.7
10
+
11
+ * Compatible with AMD and CommonJS formats using Universal Module Definition pattern (examples provided for Webpack, Browserify, and AMD/RequireJS)
12
+ * $.prop() changed to $.attr() because it was creating problems with Foundation
13
+ * The library could now be used without necessarily defining it as jQuery plugin. But it still requires jQuery to provide a better browser compatibility.
14
+
15
+ ### 3.6.5
16
+
17
+ * For more flexibility, option imgSelector to select the image, given an image entry (e.g. a figure or a div)
18
+ * $.attr() changed to $.prop() for better compatibility
19
+ * Right to left option
20
+ * Prevent gallery height collapse when the page is resized and keep the scroll position
21
+ * Avoid width check in case the gallery is not visible
22
+
23
+ ### 3.6.4
24
+
25
+ * semplified the possibility to have a gallery of `<figure>`.
26
+
27
+ ### 3.6.3
28
+
29
+ * Added in thumbnailPath an extra parameter which specify the current image. In this way properties of that image could
30
+ be read
31
+ * Fixed bugs for filter when used specifying a function
32
+ * Fixed bugs for filter when norewind is used
33
+ * Performance improvements in case of norewind
34
+ * Changed the selector behaviour. Only direct children of the gallery can be choose as gallery entry.
35
+ * Fixed bug for maxRowHeight
36
+
37
+ ### 3.6.2
38
+
39
+ * cssAnimation = true as default. It’s time to move to the future and leave IE in the past.
40
+ * fixed cssAnimation
41
+ * scrollbar existence check to avoid image resizing flickering
42
+ * The boxes could now be configured to have a background color to be visible with waitThumbnailsLoad = false.
43
+ * removed the `fixedHeight` option since now this behaviour can be replicated using `maxRowHeight`.
44
+ * The last row height will be calculated as the average row height of all the other rows. Before the last row height
45
+ was always following the `rowHeight` option, that could be smaller than the effective height of all the other rows.
46
+ For example: a gallery of images of 100x100px in a container of 950px, where rowHeight = 100. That gallery would
47
+ contain 9 pictures for each row, and the extra space used for justification. Each row will have approximately an
48
+ height of 105px after the justification. In this example the last row height would be 105px, where in the past
49
+ it would usually be 100px if not justified.
50
+ * other bugfixes
51
+
52
+ ### 3.6.1
53
+
54
+ * bugfixes
55
+ * lastRow option can be 'nojustify', which is the same as 'left', or it can be 'justify', 'center', 'right' or 'hide'.
56
+ * refreshSensitivity option, to configure the change in width allowed (in px) without re-building the gallery
57
+ * thumbnailPath to configure JG with a custom thumbnail selector,
58
+ e.g. we want to do select the correct thumbnail changing only a suffix of the current filename
59
+
60
+ ```
61
+ $("#myGallery").justifiedGallery({
62
+ thumbnailPath: function (currentPath, width, height) {
63
+ if (Math.max(width, height) < 250) {
64
+ return currentPath.replace(/(.*)(_[a-z]+)(\..*)/, "$1_small$2");
65
+ } else {
66
+ return currentPath.replace(/(.*)(_[a-z]+)(\..*)/, "$1_medium$2");
67
+ }
68
+ }
69
+ });
70
+ ```
71
+
72
+ ### 3.6
73
+
74
+ * Sort (works also with infinite scroll)
75
+ * Filter (works also with infinite scroll)
76
+ * Randomize images now works also with infinite scroll
77
+ * Text entries (i.e. without images) support
78
+ * Destroy method
79
+ * maxRowHeight could be also a percentage
80
+ * configurable sizeRangeSuffixes.
81
+ e.g. to have only thumbnails and big images it could be:
82
+
83
+ ```
84
+ sizeRangeSuffixes : {
85
+ 500: '_t',
86
+ 2000: '_m'
87
+ }
88
+ ```
89
+ * Configurable entry selector
90
+ * Code refactoring
91
+
92
+ <details>
93
+ <summary>Older versions</summary>
94
+
95
+ ### 3.5.4
96
+
97
+ * Added the border option
98
+ * Fixed some problems with waitThumbnailsLoad and infinite scroll
99
+
100
+ ### 3.5
101
+ * The default suffixes are all empty, to be simpler to understand. To have the previous suffixes,
102
+ the following settings can be used:
103
+
104
+ ```
105
+ sizeRangeSuffixes : {
106
+ 'lt100': '_t',
107
+ 'lt240': '_m',
108
+ 'lt320': '_n',
109
+ 'lt500': '',
110
+ 'lt640': '_z',
111
+ 'lt1024': '_b'
112
+ }
113
+ ```
114
+
115
+ * Now is possible to have entries with the structure:
116
+
117
+ ```
118
+ <div>
119
+ <a href="...">
120
+ <img src="..." />
121
+ </a>
122
+ <div class="caption">...</div>
123
+ </div>
124
+ ```
125
+
126
+ * Fixed margins
127
+ * The border of the entire gallery can be customized
128
+ * Corrected bugs for the callbacks when waitThumbnailsLoad = false
129
+
130
+ ### 3.4
131
+
132
+ * Performance improvements
133
+ * In presence of width and height attributes in thumbnails, and with the option
134
+ 'waitThumbnailsLoad', the layout is immediately built, and the thumbnails will appear randomly
135
+ while they are loaded.
136
+ * Other code refactorings to be more performant
137
+ * With nojustify, if there is only a row, it doesn't justify anything. The previous behaviour seems
138
+ too like a bug than a feature.
139
+ * Infinite scroll example with plain javascript to be more understandable.
140
+ * Fixes some bugs with infinite scroll
141
+
142
+ ### 3.3
143
+
144
+ * No more crops
145
+ * Removed some floating point approximations that caused some small crops
146
+ * Initial opacity settings for the caption to allow them to be always visible
147
+ * Can be also configured changing the less file, if one prefers CSS animations
148
+ * All caption settings in a single object to be more compact
149
+
150
+ ```
151
+ captionSettings : { //ignored with css animations
152
+ animationDuration : 500,
153
+ visibleOpacity : 0.7,
154
+ nonVisibleOpacity : 0.0
155
+ },
156
+ ```
157
+ * Justification formulas refactoring to be more maintainable
158
+
159
+ ### 3.2
160
+
161
+ * A gallery of `div` can be used instead of `a`
162
+ * Fixed errors for the last rows
163
+ * Option to use only css animations (i.e `cssAnimation`)
164
+ * Without css animations
165
+ * Configurable caption fadein/fadeout time (i.e. `captionsAnimationDuration`)
166
+ * Configurable caption final opacity (i.e. `captionsVisibleOpacity`)
167
+ * Configurable images fadein time (i.e. `imagesAnimationDuration`)
168
+ * Configurable treshold that decides to justify the row also in presence of nojustify (i.e. `justifyThreshold`)
169
+
170
+ ### 3.1
171
+
172
+ * Improved the algorithm to reduce the image crops
173
+ * Fixed errors with some jQuery versions
174
+ * Fixed errors with fixed height
175
+ * Settings checks and parsing
176
+ * Added event jg.rowflush
177
+
178
+ ### 3.0
179
+
180
+ * Totally rewritten!
181
+ * Row by row loading
182
+ * The plugin doesn't wait that all the gallery thumbnails are loaded
183
+ * A row is printed when the its thumbnails are available
184
+ * Non-blocking layout creation
185
+ * No more white spaces (If the gallery needs to load a bigger image, it first show the smaller and then replace it with the bigger)
186
+ * Improved the algorithm for a better result
187
+ * No more white pixels at the end of a row (bugfix)
188
+ * Reduced a lot the image crops
189
+ * Vertical centering
190
+ * Proportional images enlargement looking the image aspect ratio
191
+ * Improved the algorithm efficiency
192
+ * No more extra tags or new elements added to create the layout
193
+ * All the images remain in the DOM, they aren't deleted or created
194
+ * Hence, each tag remains in the links and in the images
195
+ * Added `maxRowHeight` option
196
+ * Custom captions
197
+ * Thumbnails randomization (`randomize` option)
198
+ * Statefulness
199
+ * can be called again changing only some settings
200
+ * can be called again to update the layout (after add or remove of images)
201
+ * Infinite scroll capable
202
+ * Improved last row behavior
203
+ * Last row option changed
204
+ * `justifyLastRow` setting has been renamed to `lastRow`, and it accepts: `'justify'`, `'nojustify'`, `'hide'`.
205
+ * Option to hide the row if it is incomplete and cannot be justified
206
+ * The plugin can justify also with `lastRow = 'nojustify'`, if the free space is small.
207
+ * Silent error handling
208
+ * If a thumbnail doesn't exists, it is ignored in the layout (hided)
209
+ * If the plugin needs an inexistent thumbnail, it maintains the previous one
210
+ * Errors are still visible in the console
211
+ * Loading spinner
212
+ * Visible when a new row needs to be loaded
213
+ * Pure CSS spinner
214
+ * Configurable changing the CSS/Less
215
+ * Project structure
216
+ * Grunt to manage the build
217
+ * Less
218
+ * Tests
219
+ * Javascript and CSS validation
220
+ * CSS filename changed to be more standard
221
+ * License changed to MIT
222
+ * Improved the gallery size check to be less invasive
223
+ * Fixed lightbox removal when the page is resized
224
+
225
+ ### 2.1
226
+
227
+ * Setting removed: 'usedSizeRange', now the plugin do it automatically
228
+ * Setting behavior changed: 'extension', now it accept a regular expression. The old behavior still works, but is not safe.
229
+ * New behavior: if an image defines the attribute `data-safe-src`, this is choice, no matter what the src attribute is. This can be used to avoid the problems with Photon or other services that resize the images, changing the image `src`s.
230
+
231
+ ### 2.0
232
+
233
+ * Setting removed: 'lightbox', now can be done simply with the onComplete callback.
234
+ * Added Setting: 'rel' to change all the links `rel` attribute.
235
+ * Added Setting: 'target' to change all the links `target` attribute.
236
+ * Setting name changed: 'complete' to 'onComplete'.
237
+ * Setting name changed: 'sizeSuffixes' to 'sizeRangeSuffixes'.
238
+ * Setting name changed: 'usedSuffix' to 'usedSizeRange'.
239
+ * Added the CSS for the div that shows the Justified Gallery errors. Now can be changed, or hided.
240
+
241
+ </details>
242
+
243
+ ## Contributing
244
+
245
+ ### Important notes
246
+ Please don't edit files in the `dist` subdirectory as they are generated via Grunt. You'll find source code in the `src` subdirectory.
247
+
248
+ #### Code style
249
+ Regarding code style like indentation and whitespace, **follow the conventions you see used in the source already.**
250
+
251
+ ### Modifying the code
252
+
253
+ - Prerequisites:
254
+ - Ensure that you have the latest [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) installed.
255
+ - Test that Grunt's CLI is installed by running `grunt --version`. If the command isn't found, run `npm install -g grunt-cli`. For more information about installing Grunt, see the [getting started guide](http://gruntjs.com/getting-started).
256
+ - Ensure that you have Bower installed. If not, install it using `npm install -g bower`.
257
+
258
+ - Steps:
259
+ - Fork and clone this repository.
260
+ - Open a terminal and change the current directory to the cloned folder.
261
+ - Run `npm install` to install all dependencies (including bower and Grunt).
262
+ - Run `bower install` to install all the dependencies needed for the tests.
263
+ - Run `grunt debug` to build the library only for testing (debug mode).
264
+ - Run `grunt` to build this project in release mode.
265
+
266
+ ### Submitting pull requests
267
+
268
+ - Create a new branch, please don't work in your `master` branch directly.
269
+ - Add failing tests for the change you want to make.
270
+ - Fix stuff.
271
+ - Ensure that the written tests don't fail anymore, as well as the other tests.
272
+ - Update the documentation to reflect any changes.
273
+ - Push to your fork and submit a pull request.
@@ -0,0 +1,110 @@
1
+ /*!
2
+ * justifiedGallery - v4.0.0-alpha
3
+ * http://miromannino.github.io/Justified-Gallery/
4
+ * Copyright (c) 2019 Miro Mannino
5
+ * Licensed under the MIT license.
6
+ */
7
+ .justified-gallery {
8
+ width: 100%;
9
+ position: relative;
10
+ overflow: hidden;
11
+ }
12
+ .justified-gallery > a,
13
+ .justified-gallery > div,
14
+ .justified-gallery > figure {
15
+ position: absolute;
16
+ display: inline-block;
17
+ overflow: hidden;
18
+ /* background: #888888; To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
19
+ filter: "alpha(opacity=10)";
20
+ opacity: 0.1;
21
+ margin: 0;
22
+ padding: 0;
23
+ }
24
+ .justified-gallery > a > img,
25
+ .justified-gallery > div > img,
26
+ .justified-gallery > figure > img,
27
+ .justified-gallery > a > a > img,
28
+ .justified-gallery > div > a > img,
29
+ .justified-gallery > figure > a > img,
30
+ .justified-gallery > a > svg,
31
+ .justified-gallery > div > svg,
32
+ .justified-gallery > figure > svg,
33
+ .justified-gallery > a > a > svg,
34
+ .justified-gallery > div > a > svg,
35
+ .justified-gallery > figure > a > svg {
36
+ position: absolute;
37
+ top: 50%;
38
+ left: 50%;
39
+ margin: 0;
40
+ padding: 0;
41
+ border: none;
42
+ filter: "alpha(opacity=0)";
43
+ opacity: 0;
44
+ }
45
+ .justified-gallery > a > .caption,
46
+ .justified-gallery > div > .caption,
47
+ .justified-gallery > figure > .caption {
48
+ display: none;
49
+ position: absolute;
50
+ bottom: 0;
51
+ padding: 5px;
52
+ background-color: #000000;
53
+ left: 0;
54
+ right: 0;
55
+ margin: 0;
56
+ color: white;
57
+ font-size: 12px;
58
+ font-weight: 300;
59
+ font-family: sans-serif;
60
+ }
61
+ .justified-gallery > a > .caption.caption-visible,
62
+ .justified-gallery > div > .caption.caption-visible,
63
+ .justified-gallery > figure > .caption.caption-visible {
64
+ display: initial;
65
+ filter: "alpha(opacity=70)";
66
+ opacity: 0.7;
67
+ -webkit-transition: opacity 500ms ease-in;
68
+ -moz-transition: opacity 500ms ease-in;
69
+ -o-transition: opacity 500ms ease-in;
70
+ transition: opacity 500ms ease-in;
71
+ }
72
+ .justified-gallery > .jg-entry-visible {
73
+ filter: "alpha(opacity=100)";
74
+ opacity: 1;
75
+ background: none;
76
+ }
77
+ .justified-gallery > .jg-entry-visible > img,
78
+ .justified-gallery > .jg-entry-visible > a > img,
79
+ .justified-gallery > .jg-entry-visible > svg,
80
+ .justified-gallery > .jg-entry-visible > a > svg {
81
+ filter: "alpha(opacity=100)";
82
+ opacity: 1;
83
+ -webkit-transition: opacity 500ms ease-in;
84
+ -moz-transition: opacity 500ms ease-in;
85
+ -o-transition: opacity 500ms ease-in;
86
+ transition: opacity 500ms ease-in;
87
+ }
88
+ .justified-gallery > .jg-filtered {
89
+ display: none;
90
+ }
91
+ .justified-gallery > .spinner {
92
+ position: absolute;
93
+ bottom: 0;
94
+ margin-left: -24px;
95
+ padding: 10px 0 10px 0;
96
+ left: 50%;
97
+ filter: "alpha(opacity=100)";
98
+ opacity: 1;
99
+ overflow: initial;
100
+ }
101
+ .justified-gallery > .spinner > span {
102
+ display: inline-block;
103
+ filter: "alpha(opacity=0)";
104
+ opacity: 0;
105
+ width: 8px;
106
+ height: 8px;
107
+ margin: 0 4px 0 4px;
108
+ background-color: #000;
109
+ border-radius: 6px;
110
+ }
@@ -0,0 +1,110 @@
1
+ /*!
2
+ * justifiedGallery - v4.0.0-alpha
3
+ * http://miromannino.github.io/Justified-Gallery/
4
+ * Copyright (c) 2019 Miro Mannino
5
+ * Licensed under the MIT license.
6
+ */
7
+ .justified-gallery {
8
+ width: 100%;
9
+ position: relative;
10
+ overflow: hidden;
11
+ }
12
+ .justified-gallery > a,
13
+ .justified-gallery > div,
14
+ .justified-gallery > figure {
15
+ position: absolute;
16
+ display: inline-block;
17
+ overflow: hidden;
18
+ /* background: #888888; To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
19
+ filter: "alpha(opacity=10)";
20
+ opacity: 0.1;
21
+ margin: 0;
22
+ padding: 0;
23
+ }
24
+ .justified-gallery > a > img,
25
+ .justified-gallery > div > img,
26
+ .justified-gallery > figure > img,
27
+ .justified-gallery > a > a > img,
28
+ .justified-gallery > div > a > img,
29
+ .justified-gallery > figure > a > img,
30
+ .justified-gallery > a > svg,
31
+ .justified-gallery > div > svg,
32
+ .justified-gallery > figure > svg,
33
+ .justified-gallery > a > a > svg,
34
+ .justified-gallery > div > a > svg,
35
+ .justified-gallery > figure > a > svg {
36
+ position: absolute;
37
+ top: 50%;
38
+ left: 50%;
39
+ margin: 0;
40
+ padding: 0;
41
+ border: none;
42
+ filter: "alpha(opacity=0)";
43
+ opacity: 0;
44
+ }
45
+ .justified-gallery > a > .caption,
46
+ .justified-gallery > div > .caption,
47
+ .justified-gallery > figure > .caption {
48
+ display: none;
49
+ position: absolute;
50
+ bottom: 0;
51
+ padding: 5px;
52
+ background-color: #000000;
53
+ left: 0;
54
+ right: 0;
55
+ margin: 0;
56
+ color: white;
57
+ font-size: 12px;
58
+ font-weight: 300;
59
+ font-family: sans-serif;
60
+ }
61
+ .justified-gallery > a > .caption.caption-visible,
62
+ .justified-gallery > div > .caption.caption-visible,
63
+ .justified-gallery > figure > .caption.caption-visible {
64
+ display: initial;
65
+ filter: "alpha(opacity=70)";
66
+ opacity: 0.7;
67
+ -webkit-transition: opacity 500ms ease-in;
68
+ -moz-transition: opacity 500ms ease-in;
69
+ -o-transition: opacity 500ms ease-in;
70
+ transition: opacity 500ms ease-in;
71
+ }
72
+ .justified-gallery > .jg-entry-visible {
73
+ filter: "alpha(opacity=100)";
74
+ opacity: 1;
75
+ background: none;
76
+ }
77
+ .justified-gallery > .jg-entry-visible > img,
78
+ .justified-gallery > .jg-entry-visible > a > img,
79
+ .justified-gallery > .jg-entry-visible > svg,
80
+ .justified-gallery > .jg-entry-visible > a > svg {
81
+ filter: "alpha(opacity=100)";
82
+ opacity: 1;
83
+ -webkit-transition: opacity 500ms ease-in;
84
+ -moz-transition: opacity 500ms ease-in;
85
+ -o-transition: opacity 500ms ease-in;
86
+ transition: opacity 500ms ease-in;
87
+ }
88
+ .justified-gallery > .jg-filtered {
89
+ display: none;
90
+ }
91
+ .justified-gallery > .spinner {
92
+ position: absolute;
93
+ bottom: 0;
94
+ margin-left: -24px;
95
+ padding: 10px 0 10px 0;
96
+ left: 50%;
97
+ filter: "alpha(opacity=100)";
98
+ opacity: 1;
99
+ overflow: initial;
100
+ }
101
+ .justified-gallery > .spinner > span {
102
+ display: inline-block;
103
+ filter: "alpha(opacity=0)";
104
+ opacity: 0;
105
+ width: 8px;
106
+ height: 8px;
107
+ margin: 0 4px 0 4px;
108
+ background-color: #000;
109
+ border-radius: 6px;
110
+ }