j1-template 2020.0.21 → 2020.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/ads/ad.html +2 -2
  3. data/_includes/themes/j1/blocks/footer/generator.html +1 -1
  4. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +2 -2
  5. data/_includes/themes/j1/layouts/content_generator_collection.html +2 -2
  6. data/_includes/themes/j1/layouts/content_generator_page.html +3 -3
  7. data/_includes/themes/j1/layouts/content_generator_post.html +3 -3
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +2 -2
  9. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +1 -1
  10. data/_includes/themes/j1/modules/connectors/ads +2 -2
  11. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +1 -1
  12. data/_includes/themes/j1/modules/connectors/analytics +2 -2
  13. data/_includes/themes/j1/modules/connectors/comment/disqus.html +1 -1
  14. data/_includes/themes/j1/modules/connectors/comments +2 -2
  15. data/_includes/themes/j1/modules/connectors/translator +2 -2
  16. data/_includes/themes/j1/modules/navigator/generator.html +9 -5
  17. data/_includes/themes/j1/procedures/global/attributes_loader.proc +20 -20
  18. data/_includes/themes/j1/procedures/global/create_bs_button.proc +3 -2
  19. data/_includes/themes/j1/procedures/global/setup.proc +9 -9
  20. data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -2
  21. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
  22. data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
  23. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +2 -2
  24. data/_layouts/default.html +3 -3
  25. data/_layouts/home.html +2 -2
  26. data/apps/public/cc/cc.yml +3 -3
  27. data/assets/data/authclient.html +1 -1
  28. data/assets/data/banner.html +27 -22
  29. data/assets/data/cookiebar.html +14 -10
  30. data/assets/data/menu.html +1 -1
  31. data/assets/data/mmenu.html +1 -1
  32. data/assets/data/panel.html +109 -63
  33. data/assets/data/quicklinks.html +2 -2
  34. data/assets/data/search.json +1 -1
  35. data/assets/data/ssm.html +1 -1
  36. data/assets/data/themes.json +8 -8
  37. data/assets/themes/j1/adapter/js/algolia.js +1 -1
  38. data/assets/themes/j1/adapter/js/attic.js +1 -1
  39. data/assets/themes/j1/adapter/js/back2top.js +2 -2
  40. data/assets/themes/j1/adapter/js/carousel.js +1 -1
  41. data/assets/themes/j1/adapter/js/clipboard.js +2 -2
  42. data/assets/themes/j1/adapter/js/framer.js +1 -1
  43. data/assets/themes/j1/adapter/js/gallery_customizer.js +1 -1
  44. data/assets/themes/j1/adapter/js/j1.js +16 -16
  45. data/assets/themes/j1/adapter/js/jf_gallery.js +1 -1
  46. data/assets/themes/j1/adapter/js/lightbox.js +2 -2
  47. data/assets/themes/j1/adapter/js/logger.js +1 -1
  48. data/assets/themes/j1/adapter/js/mmenu.js +17 -11
  49. data/assets/themes/j1/adapter/js/navigator.js +61 -55
  50. data/assets/themes/j1/adapter/js/rouge.js +246 -0
  51. data/assets/themes/j1/adapter/js/rtable.js +181 -0
  52. data/assets/themes/j1/adapter/js/searcher.js +1 -1
  53. data/assets/themes/j1/adapter/js/ssm.js +3 -3
  54. data/assets/themes/j1/adapter/js/themer.js +62 -109
  55. data/assets/themes/j1/adapter/js/toccer.js +10 -2
  56. data/assets/themes/j1/core/css/{icons-fontawesome.css → icon-fonts/fontawesome.css} +0 -0
  57. data/assets/themes/j1/core/css/{icons-fontawesome.min.css → icon-fonts/fontawesome.min.css} +0 -0
  58. data/assets/themes/j1/core/css/{icons-iconify.css → icon-fonts/iconify.css} +0 -0
  59. data/assets/themes/j1/core/css/{icons-iconify.min.css → icon-fonts/iconify.min.css} +0 -0
  60. data/assets/themes/j1/core/css/{icons-materialdesign.css → icon-fonts/materialdesign.css} +0 -0
  61. data/assets/themes/j1/core/css/{icons-materialdesign.min.css → icon-fonts/materialdesign.min.css} +0 -0
  62. data/assets/themes/j1/core/css/{icons-twemoji.css → icon-fonts/twemoji.css} +0 -0
  63. data/assets/themes/j1/core/css/{icons-twemoji.min.css → icon-fonts/twemoji.min.css} +0 -0
  64. data/assets/themes/j1/core/css/{bootstrap.css → themes/bootstrap/bootstrap.css} +0 -0
  65. data/assets/themes/j1/core/css/{bootstrap.min.css → themes/bootstrap/bootstrap.min.css} +0 -0
  66. data/assets/themes/j1/core/css/{uno-dark.css → themes/uno-dark/bootstrap.css} +103 -97
  67. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +6 -0
  68. data/assets/themes/j1/core/css/{uno.css → themes/uno-light/bootstrap.css} +1139 -936
  69. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +8 -0
  70. data/assets/themes/j1/core/css/vendor.css +44 -32
  71. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  72. data/assets/themes/j1/core/js/template.js +1 -1
  73. data/assets/themes/j1/core/js/template.js.map +1 -1
  74. data/assets/themes/j1/core/js/template.min.js +1 -1
  75. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.full.js +6930 -0
  76. data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.js +4 -5
  77. data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js +8 -1
  78. data/assets/themes/j1/modules/carousel/css/theme/uno.css +8 -2
  79. data/assets/themes/j1/modules/jquery/js/jquery.js +7 -4
  80. data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -2
  81. data/assets/themes/j1/modules/mmenuLight/css/mmenu.css +11 -11
  82. data/assets/themes/j1/modules/mmenuLight/css/mmenu.min.css +386 -12
  83. data/assets/themes/j1/modules/mmenuLight/css/theme/uno.css +16 -12
  84. data/assets/themes/j1/modules/mmenuLight/css/theme/uno.min.css +189 -8
  85. data/assets/themes/j1/modules/rouge/js/select.js +25 -0
  86. data/assets/themes/j1/modules/rtable/LICENSE +22 -0
  87. data/assets/themes/j1/modules/rtable/README.md +418 -0
  88. data/assets/themes/j1/modules/rtable/css/tablesaw.stackonly.css +148 -0
  89. data/assets/themes/j1/modules/rtable/css/theme/uno.css +191 -0
  90. data/assets/themes/j1/modules/rtable/css/theme/uno.min.css +191 -0
  91. data/assets/themes/j1/modules/rtable/js/rtable.js +692 -0
  92. data/assets/themes/j1/modules/rtable/js/rtable.min.js +690 -0
  93. data/assets/themes/j1/modules/rtable/js/tablesaw-init.js +18 -0
  94. data/assets/themes/j1/modules/rtable/js/tablesaw.stackonly.js +2371 -0
  95. data/assets/themes/j1/modules/tocbot/css/theme/uno.css +15 -2
  96. data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +1 -1
  97. data/lib/j1/version.rb +1 -1
  98. data/lib/j1_app/j1_auth_manager/config.rb +2 -2
  99. data/lib/starter_web/Gemfile +1 -1
  100. data/lib/starter_web/_config.yml +74 -8
  101. data/lib/starter_web/_data/apps/carousel.yml +2 -2
  102. data/lib/starter_web/_data/blocks/banner.yml +31 -26
  103. data/lib/starter_web/_data/blocks/defaults/banner.yml +14 -13
  104. data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -1
  105. data/lib/starter_web/_data/blocks/defaults/panel.yml +3 -2
  106. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  107. data/lib/starter_web/_data/blocks/panel.yml +30 -31
  108. data/lib/starter_web/_data/{template_settings.yml → j1_config.yml} +54 -4
  109. data/lib/starter_web/_data/layouts/home.yml +9 -9
  110. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +3 -1
  111. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  112. data/lib/starter_web/_data/modules/defaults/themer.yml +8 -13
  113. data/lib/starter_web/_data/modules/themer.yml +0 -18
  114. data/lib/starter_web/_data/resources.yml +58 -12
  115. data/lib/starter_web/{includes → _includes}/attributes.asciidoc +18 -7
  116. data/lib/starter_web/_includes/documents/licenses/mit.asciidoc +19 -0
  117. data/lib/starter_web/{collections/posts/private → _includes/documents}/readme +0 -0
  118. data/lib/starter_web/{collections/posts/public/wikipedia/_posts/000_includes/tables/debug_variables.asciidoc → _includes/tables/jekyll_variables.asciidoc} +8 -11
  119. data/lib/starter_web/_includes/tables/template_variables.asciidoc +46 -0
  120. data/lib/starter_web/assets/images/modules/attics/katie-moum-1920x1280.jpg +0 -0
  121. data/lib/starter_web/assets/images/modules/attics/tldr-1920x800.jpg +0 -0
  122. data/lib/starter_web/collections/posts/{protected → private/_posts}/readme +0 -0
  123. data/lib/starter_web/collections/posts/protected/_posts/readme +0 -0
  124. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +70 -72
  125. data/lib/starter_web/collections/posts/public/featured/_posts/2018-05-01-confusion-about-base-url.adoc +17 -5
  126. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +32 -25
  127. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +24 -21
  128. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +38 -0
  129. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/documents/readme +0 -0
  130. data/lib/starter_web/collections/posts/public/featured/_posts/{000_includes → _includes/documents}/unsplash-badge.asciidoc +0 -0
  131. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/tables/readme +0 -0
  132. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +493 -506
  133. data/lib/starter_web/collections/posts/public/{featured/_posts/000_includes → series/_posts/_includes}/attributes.asciidoc +8 -18
  134. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/documents/100-docker-using-shared-folders.asciidoc +0 -0
  135. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/documents/loop.sh +0 -0
  136. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/tables/debug_variables.asciidoc +0 -0
  137. data/lib/starter_web/collections/posts/public/test_posts/_posts/2020-09-11-test_post.adoc +97 -11
  138. data/lib/starter_web/collections/posts/public/test_posts/_posts/{includes → _includes}/attributes.asciidoc +1 -8
  139. data/lib/starter_web/collections/posts/public/test_posts/_posts/_includes/documents/readme +0 -0
  140. data/lib/starter_web/collections/posts/public/{series/_posts/includes → test_posts/_posts/_includes}/tables/debug_variables.asciidoc +0 -0
  141. data/lib/starter_web/collections/posts/public/test_posts/_posts/_includes/tables/readme +0 -0
  142. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +14 -5
  143. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/attributes.asciidoc +37 -0
  144. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/documents/readme +0 -0
  145. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/tables/readme +0 -0
  146. data/lib/starter_web/package.json +1 -1
  147. data/lib/starter_web/pages/protected/site_search.adoc +4 -4
  148. data/lib/starter_web/pages/public/blog/navigator/archive.html +2 -2
  149. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
  150. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
  151. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
  152. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +7 -3
  153. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +9 -4
  154. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +8 -4
  155. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{includes → _includes}/attributes.asciidoc +2 -9
  156. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/100_meet_and_greet_jekyll.asciidoc +31 -0
  157. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{includes → _includes}/documents/200_preparations.asciidoc +0 -0
  158. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{includes → _includes}/documents/300_first_awesome_web.asciidoc +0 -0
  159. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{includes → _includes}/parts.asciidoc +1 -1
  160. data/lib/starter_web/{collections/posts/public/test_posts/_posts/includes → pages/public/learn/kickstarter/web_in_a_day/_includes}/tables/debug_variables.asciidoc +0 -0
  161. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/readme +0 -0
  162. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +56 -54
  163. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +26 -23
  164. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +34 -31
  165. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +51 -48
  166. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +47 -57
  167. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +20 -17
  168. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +223 -72
  169. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +132 -33
  170. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/attributes.asciidoc +6 -0
  171. data/lib/starter_web/pages/public/{test_pages/includes → learn/roundtrip/_includes}/documents/100_gistblock.asciidoc +2 -1
  172. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_bottom_info.asciidoc +0 -0
  173. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_bottom_left_warning.asciidoc +0 -0
  174. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_bottom_right_danger.asciidoc +0 -0
  175. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_central_success.asciidoc +0 -0
  176. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_full_height_left_info.asciidoc +0 -0
  177. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_full_height_right_success.asciidoc +0 -0
  178. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_table_3_column.asciidoc +1 -1
  179. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_top_info.asciidoc +0 -0
  180. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_top_left_info.asciidoc +0 -0
  181. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/410_top_right_success.asciidoc +0 -0
  182. data/lib/starter_web/pages/public/learn/roundtrip/{includes → _includes}/documents/419_advanced_modals_demo.asciidoc +0 -0
  183. data/lib/starter_web/pages/public/learn/roundtrip/_includes/tables/readme +0 -0
  184. data/lib/starter_web/pages/public/learn/{whats_up.adoc → where_to_go.adoc} +28 -23
  185. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +1 -1
  186. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +64 -65
  187. data/lib/starter_web/pages/public/previewer/{includes → _includes}/attributes.asciidoc +6 -0
  188. data/lib/starter_web/pages/public/previewer/_includes/documents/licenses/mit.asciidoc +19 -0
  189. data/lib/starter_web/pages/public/previewer/_includes/documents/readme +0 -0
  190. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  191. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  192. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/120_relative_sizes.asciidoc +1 -1
  193. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/200_rotate.asciidoc +1 -1
  194. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/300_flip.asciidoc +1 -1
  195. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/400_spin_pulsed.asciidoc +1 -1
  196. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  197. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  198. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  199. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  200. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  201. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  202. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  203. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  204. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/twitter_emoji/300_flip.asciidoc +1 -1
  205. data/lib/starter_web/pages/public/previewer/{includes → _includes}/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  206. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +2059 -1827
  207. data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -2
  208. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +8 -4
  209. data/lib/starter_web/pages/public/previewer/rouge.adoc +200 -0
  210. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +7 -7
  211. data/lib/starter_web/pages/public/test_pages/{includes → _includes}/attributes.asciidoc +3 -1
  212. data/lib/starter_web/pages/public/{learn/roundtrip/includes → test_pages/_includes}/documents/100_gistblock.asciidoc +0 -0
  213. data/lib/starter_web/pages/public/test_pages/{includes → _includes}/tables/000_bem_specifiers.asciidoc +1 -1
  214. data/lib/starter_web/pages/public/test_pages/_includes/tables/000_specifier_examples.asciidoc +56 -0
  215. data/lib/starter_web/pages/public/test_pages/deck_of_posts.adoc +162 -0
  216. data/lib/starter_web/pages/public/test_pages/floating_ad.adoc +7 -21
  217. data/lib/starter_web/pages/public/test_pages/floating_div.adoc +24 -38
  218. data/lib/starter_web/pages/public/test_pages/nav_pagination_tester.adoc +7 -21
  219. data/lib/starter_web/pages/public/test_pages/page_attribute_tester.adoc +100 -8
  220. data/lib/starter_web/pages/public/test_pages/responsive_images.adoc +212 -0
  221. data/lib/starter_web/pages/public/test_pages/responsive_tables.adoc +209 -0
  222. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/attributes.asciidoc +0 -0
  223. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/100_gistblock.asciidoc +0 -0
  224. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_info.asciidoc +0 -0
  225. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +0 -0
  226. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +0 -0
  227. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_central_success.asciidoc +0 -0
  228. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +0 -0
  229. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +0 -0
  230. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_table_3_column.asciidoc +1 -1
  231. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_info.asciidoc +0 -0
  232. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_left_info.asciidoc +0 -0
  233. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_right_success.asciidoc +0 -0
  234. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +0 -0
  235. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_test_youtube_video.adoc +0 -0
  236. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/100_basic_video.adoc +0 -0
  237. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  238. data/lib/starter_web/utilsrv/package.json +1 -1
  239. metadata +118 -147
  240. data/assets/data/jupyter/notebooks/_html/template.full.head.html +0 -75
  241. data/assets/data/jupyter/notebooks/_html/visualisation.html +0 -968
  242. data/assets/data/jupyter/notebooks/html/template.html +0 -50
  243. data/assets/data/jupyter/notebooks/html/visualisation.ok.html +0 -949
  244. data/assets/data/jupyter/notebooks/tutorial.ipynb +0 -169
  245. data/assets/data/jupyter/notebooks/visualisation.ipynb +0 -9413
  246. data/assets/themes/j1/core/css/theme-extensions.css +0 -9811
  247. data/assets/themes/j1/core/css/theme-extensions.min.css +0 -1
  248. data/assets/themes/j1/core/css/uno-dark.min.css +0 -6
  249. data/assets/themes/j1/core/css/uno.min.css +0 -8
  250. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css +0 -10278
  251. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css.map +0 -1
  252. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css +0 -7
  253. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css.map +0 -1
  254. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +0 -4420
  255. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js.map +0 -1
  256. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +0 -7
  257. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +0 -1
  258. data/assets/themes/j1/modules/bsDatepicker/css/datepicker.css +0 -203
  259. data/assets/themes/j1/modules/bsDatepicker/css/theme/uno.css +0 -235
  260. data/assets/themes/j1/modules/bsDatepicker/js/datepicker.js +0 -509
  261. data/assets/themes/j1/modules/bsDatepicker/less/datepicker.less +0 -122
  262. data/assets/themes/j1/modules/jqMouseWheel/README.md +0 -76
  263. data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.js +0 -221
  264. data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.min.js +0 -9
  265. data/assets/themes/j1/modules/noUISlider/LICENSE +0 -13
  266. data/assets/themes/j1/modules/noUISlider/css/nouislider.css +0 -260
  267. data/assets/themes/j1/modules/noUISlider/css/nouislider.min.css +0 -1
  268. data/assets/themes/j1/modules/noUISlider/js/nouislider.js +0 -2312
  269. data/assets/themes/j1/modules/noUISlider/js/nouislider.min.js +0 -3
  270. data/assets/themes/j1/modules/polyfills/js/msie.js +0 -140
  271. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +0 -132
  272. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  273. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +0 -81
  274. data/lib/starter_web/collections/_biography/becoming.adoc +0 -72
  275. data/lib/starter_web/collections/_biography/born-to-run.adoc +0 -78
  276. data/lib/starter_web/collections/_biography/forty-autumns.adoc +0 -75
  277. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +0 -69
  278. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +0 -72
  279. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +0 -73
  280. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +0 -64
  281. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +0 -64
  282. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +0 -62
  283. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +0 -63
  284. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +0 -62
  285. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary-2017.adoc +0 -60
  286. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes-a.adoc +0 -67
  287. data/lib/starter_web/collections/_romance/dressmaker-the.adoc +0 -61
  288. data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +0 -69
  289. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +0 -66
  290. data/lib/starter_web/collections/_romance/outlander-novel.adoc +0 -78
  291. data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +0 -62
  292. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/attributes.asciidoc +0 -66
  293. data/lib/starter_web/collections/posts/public/series/_posts/includes/attributes.asciidoc +0 -66
  294. data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/100-docker-using-shared-folders.asciidoc +0 -430
  295. data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/loop.sh +0 -28
  296. data/lib/starter_web/collections/posts/public/wikipedia/_posts/000_includes/attributes.asciidoc +0 -46
  297. data/lib/starter_web/pages/public/bookshelf/100_whats_up.adoc +0 -281
  298. data/lib/starter_web/pages/public/bookshelf/200_book_shelf_biography.adoc +0 -52
  299. data/lib/starter_web/pages/public/bookshelf/300_book_shelf_fantasy.adoc +0 -54
  300. data/lib/starter_web/pages/public/bookshelf/400_book_shelf_romance.adoc +0 -54
  301. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/includes/documents/100_meet_and_greet_jekyll.asciidoc +0 -31
  302. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/000_includes/attributes.asciidoc +0 -69
  303. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/000_includes/documents/100_buttons.asciidoc +0 -170
  304. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/mdb_previewer.adoc +0 -52
  305. data/lib/starter_web/pages/public/test_pages/includes/images/pages/minneapolis.1200x400.jpg +0 -0
  306. data/lib/starter_web/pages/public/test_pages/includes/tables/000_specifier_examples.asciidoc +0 -56
@@ -0,0 +1,692 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/mmenu_light/js/mmenu.js
4
+ # Tablesaw v3.1.2 implementation for J1 Template
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ # https://github.com/filamentgroup/tablesaw
9
+ #
10
+ # Copyright (C) 2020 Juergen Adams
11
+ # Copyright (c) 2013 Filament Group
12
+ #
13
+ # J1 Template is licensed under the MIT License.
14
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
15
+ # Tablesaw is licensed under the MIT License.
16
+ # See: https://github.com/filamentgroup/tablesaw/blob/master/LICENSE
17
+ # -----------------------------------------------------------------------------
18
+ */
19
+
20
+ /*! Tablesaw - v3.1.2 - 2019-03-19
21
+ * https://github.com/filamentgroup/tablesaw
22
+ * Copyright (c) 2019 Filament Group; Licensed MIT */
23
+
24
+ (function (root, factory) {
25
+ if (typeof define === 'function' && define.amd) {
26
+ define(["jquery"], function (jQuery) {
27
+ return (root.Tablesaw = factory(jQuery, root));
28
+ });
29
+ } else if (typeof exports === 'object') {
30
+ if( "document" in root ) {
31
+ module.exports = factory(require('jquery'), root);
32
+ } else {
33
+ // special jQuery case for CommonJS (pass in a window)
34
+ module.exports = factory(require('jquery')(root), root);
35
+ }
36
+ } else {
37
+ root.Tablesaw = factory(jQuery, root);
38
+ }
39
+ }(typeof window !== "undefined" ? window : this, function ($, window) {
40
+ "use strict";
41
+
42
+ var document = window.document;
43
+
44
+ // Account for Tablesaw being loaded either before or after the DOMContentLoaded event is fired.
45
+ var domContentLoadedTriggered = /complete|loaded/.test(document.readyState);
46
+ document.addEventListener("DOMContentLoaded", function() {
47
+ domContentLoadedTriggered = true;
48
+ });
49
+
50
+ var Tablesaw = {
51
+ i18n: {
52
+ modeStack: "Stack",
53
+ modeSwipe: "Swipe",
54
+ modeToggle: "Toggle",
55
+ modeSwitchColumnsAbbreviated: "Cols",
56
+ modeSwitchColumns: "Columns",
57
+ columnToggleButton: "Columns",
58
+ columnToggleError: "No eligible columns.",
59
+ sort: "Sort",
60
+ swipePreviousColumn: "Previous column",
61
+ swipeNextColumn: "Next column"
62
+ },
63
+ // BS4 Media break points
64
+ // -----------------------------------------------------------------------------
65
+ breakpoint: {
66
+ xl: "1200px",
67
+ lg: "992px",
68
+ md: "768px",
69
+ sm: "576px",
70
+ xs: "575px",
71
+ default: "992px"
72
+ },
73
+ // cut the mustard
74
+ mustard:
75
+ "head" in document && // IE9+, Firefox 4+, Safari 5.1+, Mobile Safari 4.1+, Opera 11.5+, Android 2.3+
76
+ (!window.blackberry || window.WebKitPoint) && // only WebKit Blackberry (OS 6+)
77
+ !window.operamini,
78
+ $: $,
79
+ _init: function(element) {
80
+ Tablesaw.$(element || document).trigger("enhance.tablesaw");
81
+ },
82
+ init: function(element) {
83
+ // Account for Tablesaw being loaded either before or after the DOMContentLoaded event is fired.
84
+ domContentLoadedTriggered =
85
+ domContentLoadedTriggered || /complete|loaded/.test(document.readyState);
86
+ if (!domContentLoadedTriggered) {
87
+ if ("addEventListener" in document) {
88
+ // Use raw DOMContentLoaded instead of shoestring (may have issues in Android 2.3, exhibited by stack table)
89
+ document.addEventListener("DOMContentLoaded", function() {
90
+ Tablesaw._init(element);
91
+ });
92
+ }
93
+ } else {
94
+ Tablesaw._init(element);
95
+ }
96
+ }
97
+ };
98
+
99
+ $(document).on("enhance.tablesaw", function() {
100
+
101
+ // Extend i18n config, if one exists.
102
+ if (typeof TablesawConfig !== "undefined" && TablesawConfig.i18n) {
103
+ Tablesaw.i18n = $.extend(Tablesaw.i18n, TablesawConfig.i18n || {});
104
+ }
105
+
106
+ Tablesaw.i18n.modes = [
107
+ Tablesaw.i18n.modeStack,
108
+ Tablesaw.i18n.modeSwipe,
109
+ Tablesaw.i18n.modeToggle
110
+ ];
111
+ });
112
+
113
+ if (Tablesaw.mustard) {
114
+ $(document.documentElement).addClass("tablesaw-enhanced");
115
+ }
116
+
117
+ (function() {
118
+ var pluginName = "tablesaw";
119
+ var classes = {
120
+ toolbar: "tablesaw-bar"
121
+ };
122
+ var events = {
123
+ create: "tablesawcreate",
124
+ destroy: "tablesawdestroy",
125
+ refresh: "tablesawrefresh",
126
+ resize: "tablesawresize"
127
+ };
128
+ var defaultMode = "stack";
129
+ var initSelector = "table";
130
+ var initFilterSelector = "[data-tablesaw],[data-tablesaw-mode],[data-tablesaw-sortable]";
131
+ var defaultConfig = {};
132
+
133
+ Tablesaw.events = events;
134
+
135
+ var Table = function(element) {
136
+ if (!element) {
137
+ throw new Error("Tablesaw requires an element.");
138
+ }
139
+
140
+ this.table = element;
141
+ this.$table = $(element);
142
+
143
+ // only one <thead> and <tfoot> are allowed, per the specification
144
+ this.$thead = this.$table
145
+ .children()
146
+ .filter("thead")
147
+ .eq(0);
148
+
149
+ // multiple <tbody> are allowed, per the specification
150
+ this.$tbody = this.$table.children().filter("tbody");
151
+
152
+ this.mode = this.$table.attr("data-tablesaw-mode") || defaultMode;
153
+
154
+ this.$toolbar = null;
155
+
156
+ this.attributes = {
157
+ subrow: "data-tablesaw-subrow",
158
+ ignorerow: "data-tablesaw-ignorerow"
159
+ };
160
+
161
+ this.init();
162
+ };
163
+
164
+ Table.prototype.init = function() {
165
+ if (!this.$thead.length) {
166
+ throw new Error("tablesaw: a <thead> is required, but none was found.");
167
+ }
168
+
169
+ if (!this.$thead.find("th").length) {
170
+ throw new Error("tablesaw: no header cells found. Are you using <th> inside of <thead>?");
171
+ }
172
+
173
+ // assign an id if there is none
174
+ if (!this.$table.attr("id")) {
175
+ this.$table.attr("id", pluginName + "-" + Math.round(Math.random() * 10000));
176
+ }
177
+
178
+ this.createToolbar();
179
+ this._initCells();
180
+ this.$table.data(pluginName, this);
181
+ this.$table.trigger(events.create, [this]);
182
+ };
183
+
184
+ Table.prototype.getConfig = function(pluginSpecificConfig) {
185
+ // shoestring extend doesn’t support arbitrary args
186
+ var configs = $.extend(defaultConfig, pluginSpecificConfig || {});
187
+ return $.extend(configs, typeof TablesawConfig !== "undefined" ? TablesawConfig : {});
188
+ };
189
+
190
+ Table.prototype._getPrimaryHeaderRow = function() {
191
+ return this._getHeaderRows().eq(0);
192
+ };
193
+
194
+ Table.prototype._getHeaderRows = function() {
195
+ return this.$thead
196
+ .children()
197
+ .filter("tr")
198
+ .filter(function() {
199
+ return !$(this).is("[data-tablesaw-ignorerow]");
200
+ });
201
+ };
202
+
203
+ Table.prototype._getRowIndex = function($row) {
204
+ return $row.prevAll().length;
205
+ };
206
+
207
+ Table.prototype._getHeaderRowIndeces = function() {
208
+ var self = this;
209
+ var indeces = [];
210
+ this._getHeaderRows().each(function() {
211
+ indeces.push(self._getRowIndex($(this)));
212
+ });
213
+ return indeces;
214
+ };
215
+
216
+ Table.prototype._getPrimaryHeaderCells = function($row) {
217
+ return ($row || this._getPrimaryHeaderRow()).find("th");
218
+ };
219
+
220
+ Table.prototype._$getCells = function(th) {
221
+ var self = this;
222
+ return $(th)
223
+ .add(th.cells)
224
+ .filter(function() {
225
+ var $t = $(this);
226
+ var $row = $t.parent();
227
+ var hasColspan = $t.is("[colspan]");
228
+ // no subrows or ignored rows (keep cells in ignored rows that do not have a colspan)
229
+ return (
230
+ !$row.is("[" + self.attributes.subrow + "]") &&
231
+ (!$row.is("[" + self.attributes.ignorerow + "]") || !hasColspan)
232
+ );
233
+ });
234
+ };
235
+
236
+ Table.prototype._getVisibleColspan = function() {
237
+ var colspan = 0;
238
+ this._getPrimaryHeaderCells().each(function() {
239
+ var $t = $(this);
240
+ if ($t.css("display") !== "none") {
241
+ colspan += parseInt($t.attr("colspan"), 10) || 1;
242
+ }
243
+ });
244
+ return colspan;
245
+ };
246
+
247
+ Table.prototype.getColspanForCell = function($cell) {
248
+ var visibleColspan = this._getVisibleColspan();
249
+ var visibleSiblingColumns = 0;
250
+ if ($cell.closest("tr").data("tablesaw-rowspanned")) {
251
+ visibleSiblingColumns++;
252
+ }
253
+
254
+ $cell.siblings().each(function() {
255
+ var $t = $(this);
256
+ var colColspan = parseInt($t.attr("colspan"), 10) || 1;
257
+
258
+ if ($t.css("display") !== "none") {
259
+ visibleSiblingColumns += colColspan;
260
+ }
261
+ });
262
+ // console.log( $cell[ 0 ], visibleColspan, visibleSiblingColumns );
263
+
264
+ return visibleColspan - visibleSiblingColumns;
265
+ };
266
+
267
+ Table.prototype.isCellInColumn = function(header, cell) {
268
+ return $(header)
269
+ .add(header.cells)
270
+ .filter(function() {
271
+ return this === cell;
272
+ }).length;
273
+ };
274
+
275
+ Table.prototype.updateColspanCells = function(cls, header, userAction) {
276
+ var self = this;
277
+ var primaryHeaderRow = self._getPrimaryHeaderRow();
278
+
279
+ // find persistent column rowspans
280
+ this.$table.find("[rowspan][data-tablesaw-priority]").each(function() {
281
+ var $t = $(this);
282
+ if ($t.attr("data-tablesaw-priority") !== "persist") {
283
+ return;
284
+ }
285
+
286
+ var $row = $t.closest("tr");
287
+ var rowspan = parseInt($t.attr("rowspan"), 10);
288
+ if (rowspan > 1) {
289
+ $row = $row.next();
290
+ $row.data("tablesaw-rowspanned", true);
291
+ rowspan--;
292
+ }
293
+ });
294
+
295
+ this.$table
296
+ .find("[colspan],[data-tablesaw-maxcolspan]")
297
+ .filter(function() {
298
+ // is not in primary header row
299
+ return $(this).closest("tr")[0] !== primaryHeaderRow[0];
300
+ })
301
+ .each(function() {
302
+ var $cell = $(this);
303
+
304
+ if (userAction === undefined || self.isCellInColumn(header, this)) {
305
+ } else {
306
+ // if is not a user action AND the cell is not in the updating column, kill it
307
+ return;
308
+ }
309
+
310
+ var colspan = self.getColspanForCell($cell);
311
+
312
+ if (cls && userAction !== undefined) {
313
+ // console.log( colspan === 0 ? "addClass" : "removeClass", $cell );
314
+ $cell[colspan === 0 ? "addClass" : "removeClass"](cls);
315
+ }
316
+
317
+ // cache original colspan
318
+ var maxColspan = parseInt($cell.attr("data-tablesaw-maxcolspan"), 10);
319
+ if (!maxColspan) {
320
+ $cell.attr("data-tablesaw-maxcolspan", $cell.attr("colspan"));
321
+ } else if (colspan > maxColspan) {
322
+ colspan = maxColspan;
323
+ }
324
+
325
+ // console.log( this, "setting colspan to ", colspan );
326
+ $cell.attr("colspan", colspan);
327
+ });
328
+ };
329
+
330
+ Table.prototype._findPrimaryHeadersForCell = function(cell) {
331
+ var $headerRow = this._getPrimaryHeaderRow();
332
+ var headerRowIndex = this._getRowIndex($headerRow);
333
+ var results = [];
334
+
335
+ for (var rowNumber = 0; rowNumber < this.headerMapping.length; rowNumber++) {
336
+ if (rowNumber === headerRowIndex) {
337
+ continue;
338
+ }
339
+
340
+ for (var colNumber = 0; colNumber < this.headerMapping[rowNumber].length; colNumber++) {
341
+ if (this.headerMapping[rowNumber][colNumber] === cell) {
342
+ results.push(this.headerMapping[headerRowIndex][colNumber]);
343
+ }
344
+ }
345
+ }
346
+
347
+ return results;
348
+ };
349
+
350
+ // used by init cells
351
+ Table.prototype.getRows = function() {
352
+ var self = this;
353
+ return this.$table.find("tr").filter(function() {
354
+ return $(this)
355
+ .closest("table")
356
+ .is(self.$table);
357
+ });
358
+ };
359
+
360
+ // used by sortable
361
+ Table.prototype.getBodyRows = function(tbody) {
362
+ return (tbody ? $(tbody) : this.$tbody).children().filter("tr");
363
+ };
364
+
365
+ Table.prototype.getHeaderCellIndex = function(cell) {
366
+ var lookup = this.headerMapping[0];
367
+ for (var colIndex = 0; colIndex < lookup.length; colIndex++) {
368
+ if (lookup[colIndex] === cell) {
369
+ return colIndex;
370
+ }
371
+ }
372
+ return -1;
373
+ };
374
+
375
+ Table.prototype._initCells = function() {
376
+ // re-establish original colspans
377
+ this.$table.find("[data-tablesaw-maxcolspan]").each(function() {
378
+ var $t = $(this);
379
+ $t.attr("colspan", $t.attr("data-tablesaw-maxcolspan"));
380
+ });
381
+
382
+ var $rows = this.getRows();
383
+ var columnLookup = [];
384
+
385
+ $rows.each(function(rowNumber) {
386
+ columnLookup[rowNumber] = [];
387
+ });
388
+
389
+ $rows.each(function(rowNumber) {
390
+ var coltally = 0;
391
+ var $t = $(this);
392
+ var children = $t.children();
393
+
394
+ children.each(function() {
395
+ var colspan = parseInt(
396
+ this.getAttribute("data-tablesaw-maxcolspan") || this.getAttribute("colspan"),
397
+ 10
398
+ );
399
+ var rowspan = parseInt(this.getAttribute("rowspan"), 10);
400
+
401
+ // set in a previous rowspan
402
+ while (columnLookup[rowNumber][coltally]) {
403
+ coltally++;
404
+ }
405
+
406
+ columnLookup[rowNumber][coltally] = this;
407
+
408
+ // TODO? both colspan and rowspan
409
+ if (colspan) {
410
+ for (var k = 0; k < colspan - 1; k++) {
411
+ coltally++;
412
+ columnLookup[rowNumber][coltally] = this;
413
+ }
414
+ }
415
+ if (rowspan) {
416
+ for (var j = 1; j < rowspan; j++) {
417
+ columnLookup[rowNumber + j][coltally] = this;
418
+ }
419
+ }
420
+
421
+ coltally++;
422
+ });
423
+ });
424
+
425
+ var headerRowIndeces = this._getHeaderRowIndeces();
426
+ for (var colNumber = 0; colNumber < columnLookup[0].length; colNumber++) {
427
+ for (var headerIndex = 0, k = headerRowIndeces.length; headerIndex < k; headerIndex++) {
428
+ var headerCol = columnLookup[headerRowIndeces[headerIndex]][colNumber];
429
+
430
+ var rowNumber = headerRowIndeces[headerIndex];
431
+ var rowCell;
432
+
433
+ if (!headerCol.cells) {
434
+ headerCol.cells = [];
435
+ }
436
+
437
+ while (rowNumber < columnLookup.length) {
438
+ rowCell = columnLookup[rowNumber][colNumber];
439
+
440
+ if (headerCol !== rowCell) {
441
+ headerCol.cells.push(rowCell);
442
+ }
443
+ rowNumber++;
444
+ }
445
+ }
446
+ }
447
+
448
+ this.headerMapping = columnLookup;
449
+ };
450
+
451
+ Table.prototype.refresh = function() {
452
+ this._initCells();
453
+
454
+ this.$table.trigger(events.refresh, [this]);
455
+ };
456
+
457
+ Table.prototype._getToolbarAnchor = function() {
458
+ var $parent = this.$table.parent();
459
+ if ($parent.is(".tablesaw-overflow")) {
460
+ return $parent;
461
+ }
462
+ return this.$table;
463
+ };
464
+
465
+ Table.prototype._getToolbar = function($anchor) {
466
+ if (!$anchor) {
467
+ $anchor = this._getToolbarAnchor();
468
+ }
469
+ return $anchor.prev().filter("." + classes.toolbar);
470
+ };
471
+
472
+ Table.prototype.createToolbar = function() {
473
+ // Insert the toolbar
474
+ // TODO move this into a separate component
475
+ var $anchor = this._getToolbarAnchor();
476
+ var $toolbar = this._getToolbar($anchor);
477
+ if (!$toolbar.length) {
478
+ $toolbar = $("<div>")
479
+ .addClass(classes.toolbar)
480
+ .insertBefore($anchor);
481
+ }
482
+ this.$toolbar = $toolbar;
483
+
484
+ if (this.mode) {
485
+ this.$toolbar.addClass("tablesaw-mode-" + this.mode);
486
+ }
487
+ };
488
+
489
+ Table.prototype.destroy = function() {
490
+ // Don’t remove the toolbar, just erase the classes on it.
491
+ // Some of the table features are not yet destroy-friendly.
492
+ this._getToolbar().each(function() {
493
+ this.className = this.className.replace(/\btablesaw-mode\-\w*\b/gi, "");
494
+ });
495
+
496
+ var tableId = this.$table.attr("id");
497
+ $(document).off("." + tableId);
498
+ $(window).off("." + tableId);
499
+
500
+ // other plugins
501
+ this.$table.trigger(events.destroy, [this]);
502
+ this.$table.removeData(pluginName);
503
+ };
504
+
505
+ // Collection method.
506
+ $.fn[pluginName] = function() {
507
+ return this.each(function() {
508
+ var $t = $(this);
509
+
510
+ if ($t.data(pluginName)) {
511
+ return;
512
+ }
513
+
514
+ new Table(this);
515
+ });
516
+ };
517
+
518
+ var $doc = $(document);
519
+ $doc.on("enhance.tablesaw", function(e) {
520
+ // Cut the mustard
521
+ if (Tablesaw.mustard) {
522
+ var $target = $(e.target);
523
+ if ($target.parent().length) {
524
+ $target = $target.parent();
525
+ }
526
+
527
+ $target
528
+ .find(initSelector)
529
+ .filter(initFilterSelector)
530
+ [pluginName]();
531
+ }
532
+ });
533
+
534
+ // Avoid a resize during scroll:
535
+ // Some Mobile devices trigger a resize during scroll (sometimes when
536
+ // doing elastic stretch at the end of the document or from the
537
+ // location bar hide)
538
+ var isScrolling = false;
539
+ var scrollTimeout;
540
+ $doc.on("scroll.tablesaw", function() {
541
+ isScrolling = true;
542
+
543
+ window.clearTimeout(scrollTimeout);
544
+ scrollTimeout = window.setTimeout(function() {
545
+ isScrolling = false;
546
+ }, 300); // must be greater than the resize timeout below
547
+ });
548
+
549
+ var resizeTimeout;
550
+ $(window).on("resize", function() {
551
+ if (!isScrolling) {
552
+ window.clearTimeout(resizeTimeout);
553
+ resizeTimeout = window.setTimeout(function() {
554
+ $doc.trigger(events.resize);
555
+ }, 150); // must be less than the scrolling timeout above.
556
+ }
557
+ });
558
+
559
+ Tablesaw.Table = Table;
560
+ })();
561
+
562
+ (function() {
563
+ var classes = {
564
+ stackTable: "tablesaw-stack",
565
+ cellLabels: "tablesaw-cell-label",
566
+ cellContentLabels: "tablesaw-cell-content"
567
+ };
568
+
569
+ var data = {
570
+ key: "tablesaw-stack"
571
+ };
572
+
573
+ var attrs = {
574
+ labelless: "data-tablesaw-no-labels",
575
+ hideempty: "data-tablesaw-hide-empty"
576
+ };
577
+
578
+ var Stack = function(element, tablesaw) {
579
+ this.tablesaw = tablesaw;
580
+ this.$table = $(element);
581
+
582
+ this.labelless = this.$table.is("[" + attrs.labelless + "]");
583
+ this.hideempty = this.$table.is("[" + attrs.hideempty + "]");
584
+ this.$table.data(data.key, this);
585
+ };
586
+
587
+ Stack.prototype.init = function() {
588
+ this.$table.addClass(classes.stackTable);
589
+
590
+ if (this.labelless) {
591
+ return;
592
+ }
593
+
594
+ var self = this;
595
+
596
+ this.$table
597
+ .find("th, td")
598
+ .filter(function() {
599
+ return !$(this).closest("thead").length;
600
+ })
601
+ .filter(function() {
602
+ return (
603
+ !$(this).is("[" + attrs.labelless + "]") &&
604
+ !$(this)
605
+ .closest("tr")
606
+ .is("[" + attrs.labelless + "]") &&
607
+ (!self.hideempty || !!$(this).html())
608
+ );
609
+ })
610
+ .each(function() {
611
+ var $newHeader = $(document.createElement("b")).addClass(classes.cellLabels);
612
+ var $cell = $(this);
613
+
614
+ $(self.tablesaw._findPrimaryHeadersForCell(this)).each(function(index) {
615
+ var $header = $(this.cloneNode(true));
616
+ // TODO decouple from sortable better
617
+ // Changed from .text() in https://github.com/filamentgroup/tablesaw/commit/b9c12a8f893ec192830ec3ba2d75f062642f935b
618
+ // to preserve structural html in headers, like <a>
619
+ var $sortableButton = $header.find(".tablesaw-sortable-btn");
620
+ $header.find(".tablesaw-sortable-arrow").remove();
621
+
622
+ // TODO decouple from checkall better
623
+ var $checkall = $header.find("[data-tablesaw-checkall]");
624
+ $checkall.closest("label").remove();
625
+ if ($checkall.length) {
626
+ $newHeader = $([]);
627
+ return;
628
+ }
629
+
630
+ if (index > 0) {
631
+ $newHeader.append(document.createTextNode(", "));
632
+ }
633
+
634
+ var parentNode = $sortableButton.length ? $sortableButton[0] : $header[0];
635
+ var el;
636
+ while ((el = parentNode.firstChild)) {
637
+ $newHeader[0].appendChild(el);
638
+ }
639
+ });
640
+
641
+ if ($newHeader.length && !$cell.find("." + classes.cellContentLabels).length) {
642
+ $cell.wrapInner("<span class='" + classes.cellContentLabels + "'></span>");
643
+ }
644
+
645
+ // Update if already exists.
646
+ var $label = $cell.find("." + classes.cellLabels);
647
+ if (!$label.length) {
648
+ $cell.prepend(document.createTextNode(" "));
649
+ $cell.prepend($newHeader);
650
+ } else {
651
+ // only if changed
652
+ $label.replaceWith($newHeader);
653
+ }
654
+ });
655
+ };
656
+
657
+ Stack.prototype.destroy = function() {
658
+ this.$table.removeClass(classes.stackTable);
659
+ this.$table.find("." + classes.cellLabels).remove();
660
+ this.$table.find("." + classes.cellContentLabels).each(function() {
661
+ $(this).replaceWith($(this.childNodes));
662
+ });
663
+ };
664
+
665
+ // on tablecreate, init
666
+ $(document)
667
+ .on(Tablesaw.events.create, function(e, tablesaw) {
668
+ if (tablesaw.mode === "stack") {
669
+ var table = new Stack(tablesaw.table, tablesaw);
670
+ table.init();
671
+ }
672
+ })
673
+ .on(Tablesaw.events.refresh, function(e, tablesaw) {
674
+ if (tablesaw.mode === "stack") {
675
+ $(tablesaw.table)
676
+ .data(data.key)
677
+ .init();
678
+ }
679
+ })
680
+ .on(Tablesaw.events.destroy, function(e, tablesaw) {
681
+ if (tablesaw.mode === "stack") {
682
+ $(tablesaw.table)
683
+ .data(data.key)
684
+ .destroy();
685
+ }
686
+ });
687
+
688
+ Tablesaw.Stack = Stack;
689
+ })();
690
+ return Tablesaw;
691
+
692
+ }));