j1-template 2020.0.7 → 2020.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/ads/ad.html +64 -0
  3. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +1 -1
  4. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +3 -2
  5. data/_includes/themes/j1/layouts/content_generator_collection.html +3 -1
  6. data/_includes/themes/j1/layouts/content_generator_page.html +3 -1
  7. data/_includes/themes/j1/layouts/content_generator_post.html +12 -11
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +141 -4
  9. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +6 -9
  10. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +9 -6
  11. data/_includes/themes/j1/modules/connectors/ads +3 -6
  12. data/_includes/themes/j1/modules/navigator/generator.html +6 -6
  13. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +10 -5
  14. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  15. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +7 -7
  16. data/_layouts/default.html +18 -8
  17. data/assets/data/authclient.html +19 -8
  18. data/assets/data/banner.html +24 -23
  19. data/assets/data/carousel.json +31 -21
  20. data/assets/data/cookie_consent.html +81 -52
  21. data/assets/data/footer.html +15 -5
  22. data/assets/data/galleries.json +91 -81
  23. data/assets/data/gallery_customizer.html +20 -10
  24. data/assets/data/mdi_icons.json +56 -1
  25. data/assets/data/menu.html +14 -6
  26. data/assets/data/mmenu.html +47 -93
  27. data/assets/data/mmenu_sidebar.html +41 -44
  28. data/assets/data/mmenu_toc.html +20 -3
  29. data/assets/data/panel.html +35 -22
  30. data/assets/data/quicklinks.html +15 -3
  31. data/assets/data/{search.yml → search.json} +44 -14
  32. data/assets/data/ssm.html +30 -14
  33. data/assets/data/themes.json +17 -6
  34. data/assets/data/twa_v1.json +7035 -6978
  35. data/assets/themes/j1/adapter/js/algolia.js +34 -15
  36. data/assets/themes/j1/adapter/js/attic.js +66 -45
  37. data/assets/themes/j1/adapter/js/carousel.js +43 -22
  38. data/assets/themes/j1/adapter/js/clipboard.js +232 -0
  39. data/assets/themes/j1/adapter/js/cookie_consent.js +21 -4
  40. data/assets/themes/j1/adapter/js/framer.js +18 -3
  41. data/assets/themes/j1/adapter/js/gallery_customizer.js +27 -10
  42. data/assets/themes/j1/adapter/js/j1.js +349 -759
  43. data/assets/themes/j1/adapter/js/{justified_gallery.js → jf_gallery.js} +64 -38
  44. data/assets/themes/j1/adapter/js/lightbox.js +20 -3
  45. data/assets/themes/j1/adapter/js/logger.js +23 -6
  46. data/assets/themes/j1/adapter/js/mdb.js +167 -0
  47. data/assets/themes/j1/adapter/js/mmenu.js +29 -11
  48. data/assets/themes/j1/adapter/js/navigator.js +126 -139
  49. data/assets/themes/j1/adapter/js/searcher.js +22 -4
  50. data/assets/themes/j1/adapter/js/ssm.js +96 -63
  51. data/assets/themes/j1/adapter/js/themer.js +35 -52
  52. data/assets/themes/j1/adapter/js/toccer.js +69 -158
  53. data/assets/themes/j1/core/css/theme_extensions.css +120 -1230
  54. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  55. data/assets/themes/j1/core/css/uno.css +253 -1275
  56. data/assets/themes/j1/core/css/uno.min.css +1 -1
  57. data/assets/themes/j1/core/css/vendor.css +7 -57
  58. data/assets/themes/j1/core/css/vendor.min.css +2 -2
  59. data/assets/themes/j1/core/js/template.js +16 -86
  60. data/assets/themes/j1/core/js/template.js.map +1 -1
  61. data/assets/themes/j1/core/js/template.min.js +1 -1
  62. data/assets/themes/j1/extensions/bsDatepicker/css/datepicker.css +203 -0
  63. data/assets/themes/j1/extensions/bsDatepicker/css/theme/uno.css +235 -0
  64. data/assets/themes/j1/extensions/bsDatepicker/js/datepicker.js +509 -0
  65. data/assets/themes/j1/extensions/bsDatepicker/less/datepicker.less +122 -0
  66. data/assets/themes/j1/extensions/bsThemeSwitcher/js/switcher.js +425 -0
  67. data/assets/themes/j1/extensions/bsThemeSwitcher/js/switcher.min.js +20 -0
  68. data/assets/themes/j1/extensions/clipboard/LICENSE +20 -0
  69. data/assets/themes/j1/extensions/clipboard/css/theme/uno.css +52 -0
  70. data/assets/themes/j1/extensions/clipboard/css/theme/uno.min.css +52 -0
  71. data/assets/themes/j1/extensions/clipboard/js/clipboard.js +975 -0
  72. data/assets/themes/j1/extensions/clipboard/js/clipboard.min.js +7 -0
  73. data/assets/themes/j1/extensions/{iconify → iconifyAPI}/js/iconify.min.js +0 -0
  74. data/assets/themes/j1/extensions/iframeResizer/LICENSE +21 -0
  75. data/assets/themes/j1/extensions/iframeResizer/examples/frame.absolute.html +127 -0
  76. data/assets/themes/j1/extensions/iframeResizer/examples/frame.content.html +157 -0
  77. data/assets/themes/j1/extensions/iframeResizer/examples/frame.hover.html +68 -0
  78. data/assets/themes/j1/extensions/iframeResizer/examples/frame.nested.html +100 -0
  79. data/assets/themes/j1/extensions/iframeResizer/examples/frame.textarea.html +45 -0
  80. data/assets/themes/j1/extensions/iframeResizer/examples/frame.tolerance.html +113 -0
  81. data/assets/themes/j1/extensions/iframeResizer/examples/index.html +83 -0
  82. data/assets/themes/j1/extensions/iframeResizer/examples/two.html +88 -0
  83. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.js +1288 -0
  84. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.map +1 -0
  85. data/assets/themes/j1/extensions/iframeResizer/js/client/iframeResizer.contentWindow.min.js +10 -0
  86. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.js +1390 -0
  87. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.map +1 -0
  88. data/assets/themes/j1/extensions/iframeResizer/js/iframeResizer.min.js +9 -0
  89. data/assets/themes/j1/extensions/jqMouseWheel/README.md +76 -0
  90. data/assets/themes/j1/extensions/jqMouseWheel/js/jquery.mousewheel.js +221 -0
  91. data/assets/themes/j1/extensions/jqMouseWheel/js/jquery.mousewheel.min.js +9 -0
  92. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/LICENSE +0 -0
  93. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/README.md +0 -0
  94. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.css +0 -0
  95. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.min.css +0 -0
  96. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/css/theme/uno.css +0 -0
  97. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +0 -0
  98. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.js +0 -0
  99. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.min.js +0 -0
  100. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/less/.csslintrc +0 -0
  101. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v3.7.0/less/justifiedGallery.less +0 -0
  102. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.css +0 -0
  103. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.min.css +0 -0
  104. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/css/theme/uno.css +0 -0
  105. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.js +0 -0
  106. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +0 -0
  107. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/justifiedGallery.css +0 -0
  108. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/justifiedGallery.min.css +0 -0
  109. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/theme/uno.css +0 -0
  110. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/css/theme/uno.min.css +0 -0
  111. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/js/justifiedGallery.js +0 -0
  112. data/assets/themes/j1/extensions/{justified_gallery → justifiedGallery}/js/justifiedGallery.min.js +0 -0
  113. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-fb-comment-box.css +0 -0
  114. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-fb-comment-box.min.css +0 -0
  115. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-transitions.css +0 -0
  116. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lg-transitions.min.css +0 -0
  117. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lightgallery.css +0 -0
  118. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/core/lightgallery.min.css +0 -0
  119. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.eot +0 -0
  120. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.svg +0 -0
  121. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.ttf +0 -0
  122. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/fonts/lg.woff +0 -0
  123. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/loading.gif +0 -0
  124. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/video-play.png +0 -0
  125. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/vimeo-play.png +0 -0
  126. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/img/youtube-play.png +0 -0
  127. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/animation-w.png +0 -0
  128. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/customize-w.png +0 -0
  129. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/dynamic-w.png +0 -0
  130. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/facebook-icon.svg +0 -0
  131. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/googleplus-icon.svg +0 -0
  132. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/html5-w.png +0 -0
  133. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/linked-in.png +0 -0
  134. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/module-w.png +0 -0
  135. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/play-button.png +0 -0
  136. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/responsive-w.png +0 -0
  137. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/thumb-w.png +0 -0
  138. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/touch-w.png +0 -0
  139. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/twitter-icon.svg +0 -0
  140. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/twitter.png +0 -0
  141. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/video1-w.png +0 -0
  142. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/zoom-w.png +0 -0
  143. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/icons/zoom.png +0 -0
  144. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/uno.css +1 -1
  145. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/css/themes/uno.min.css +1 -1
  146. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/core/lightgallery.js +0 -0
  147. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/core/lightgallery.min.js +0 -0
  148. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/j1/j1-video.js +0 -0
  149. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/j1/j1-video.min.js +0 -0
  150. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-autoplay.js +0 -0
  151. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-autoplay.min.js +0 -0
  152. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-fullscreen.js +0 -0
  153. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-fullscreen.min.js +0 -0
  154. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-hash.js +0 -0
  155. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-hash.min.js +0 -0
  156. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-pager.js +0 -0
  157. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-pager.min.js +0 -0
  158. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-share.js +0 -0
  159. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-share.min.js +0 -0
  160. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-thumbnail.js +0 -0
  161. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-thumbnail.min.js +0 -0
  162. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-video.js +0 -0
  163. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-video.min.js +0 -0
  164. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-zoom.js +0 -0
  165. data/assets/themes/j1/extensions/{light_gallery → lightGallery}/js/modules/lg-zoom.min.js +0 -0
  166. data/assets/themes/j1/extensions/lightbox/LICENSE +22 -0
  167. data/assets/themes/j1/extensions/lightbox/css/lightbox.css +224 -0
  168. data/assets/themes/j1/extensions/lightbox/css/lightbox.min.css +21 -0
  169. data/assets/themes/j1/extensions/lightbox/css/theme/uno.css +25 -0
  170. data/assets/themes/j1/extensions/lightbox/css/theme/uno.min.css +26 -0
  171. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/close.png +0 -0
  172. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/loading.gif +0 -0
  173. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/next.png +0 -0
  174. data/{lib/starter_web/assets/images/modules/lightbox → assets/themes/j1/extensions/lightbox/images}/prev.png +0 -0
  175. data/assets/themes/j1/extensions/lightbox/js/lightbox.js +583 -0
  176. data/assets/themes/j1/extensions/lightbox/js/lightbox.min.js +35 -0
  177. data/assets/themes/j1/extensions/mmenuLight/css/mmenu.css +392 -0
  178. data/assets/themes/j1/extensions/mmenuLight/css/mmenu.min.css +393 -0
  179. data/assets/themes/j1/extensions/mmenuLight/css/theme/uno.css +170 -0
  180. data/assets/themes/j1/extensions/mmenuLight/css/theme/uno.min.css +169 -0
  181. data/assets/themes/j1/extensions/mmenuLight/js/mmenu.js +30 -0
  182. data/assets/themes/j1/extensions/noUISlider/LICENSE +13 -0
  183. data/assets/themes/j1/extensions/noUISlider/css/nouislider.css +260 -0
  184. data/assets/themes/j1/extensions/noUISlider/css/nouislider.min.css +1 -0
  185. data/assets/themes/j1/extensions/noUISlider/js/nouislider.js +2312 -0
  186. data/assets/themes/j1/extensions/noUISlider/js/nouislider.min.js +3 -0
  187. data/assets/themes/j1/extensions/twemoji/js/LICENSE +21 -0
  188. data/assets/themes/j1/extensions/twemoji/js/picker/LICENSE +21 -0
  189. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.js +21 -0
  190. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.min.js +21 -0
  191. data/assets/themes/j1/extensions/twemoji/js/twemoji.js +590 -0
  192. data/assets/themes/j1/extensions/twemoji/js/twemoji.min.js +25 -0
  193. data/lib/j1/version.rb +1 -1
  194. data/lib/starter_web/Gemfile +7 -1
  195. data/lib/starter_web/_config.yml +9 -8
  196. data/lib/starter_web/_data/_defaults/resources.yml +13 -13
  197. data/lib/starter_web/_data/blocks/banner.yml +21 -29
  198. data/lib/starter_web/_data/blocks/footer.yml +10 -3
  199. data/lib/starter_web/_data/blocks/panel.yml +13 -13
  200. data/lib/starter_web/_data/layouts/default.yml +10 -0
  201. data/lib/starter_web/_data/layouts/home.yml +7 -7
  202. data/lib/starter_web/_data/layouts/page.yml +15 -16
  203. data/lib/starter_web/_data/modules/advertising.yml +48 -0
  204. data/lib/starter_web/_data/modules/attics.yml +2 -38
  205. data/lib/starter_web/_data/modules/cookie_consent.yml +3 -95
  206. data/lib/starter_web/_data/modules/defaults/attics.yml +16 -15
  207. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +75 -12
  208. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +9 -9
  209. data/lib/starter_web/_data/modules/defaults/navigator.yml +56 -21
  210. data/lib/starter_web/_data/modules/defaults/ssm.yml +3 -3
  211. data/lib/starter_web/_data/modules/defaults/toccer.yml +4 -8
  212. data/lib/starter_web/_data/modules/jekyll_search.yml +3 -21
  213. data/lib/starter_web/_data/modules/navigator.yml +1 -1
  214. data/lib/starter_web/_data/modules/navigator_menu.yml +4 -0
  215. data/lib/starter_web/_data/modules/ssm.yml +10 -1
  216. data/lib/starter_web/_data/modules/themer.yml +2 -3
  217. data/lib/starter_web/_data/modules/toccer.yml +7 -12
  218. data/lib/starter_web/_data/resources.yml +240 -112
  219. data/lib/starter_web/_data/template_settings.yml +109 -6
  220. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
  221. data/lib/starter_web/_plugins/asciidoctor-extensions/fas-icon-inline.rb +2 -2
  222. data/lib/starter_web/_plugins/asciidoctor-extensions/iconify-icon-inline.rb +2 -2
  223. data/lib/starter_web/_plugins/asciidoctor-extensions/mdi-icon-inline.rb +2 -2
  224. data/lib/starter_web/_plugins/asciidoctor-extensions/twitter-emoji-inline.rb +2 -2
  225. data/lib/starter_web/_plugins/minifyJS.rb +54 -0
  226. data/lib/starter_web/_plugins/{uglify.rb → minifyJSON.rb} +15 -9
  227. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.jpg +0 -0
  228. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  229. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  230. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  231. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  232. data/lib/starter_web/assets/images/modules/attics/banner/library-1920x800-bw.jpg +0 -0
  233. data/lib/starter_web/assets/images/modules/attics/banner/signpost-1920x800-bw.jpg +0 -0
  234. data/lib/starter_web/assets/images/modules/attics/banner/water-journal-1280x600.jpg +0 -0
  235. data/lib/starter_web/assets/images/modules/attics/banner/write-1280x600-bw.jpg +0 -0
  236. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  237. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  238. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  239. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  240. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  241. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  242. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  243. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  244. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  245. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  246. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  247. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  248. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  249. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  250. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  251. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  252. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  253. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  254. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  255. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  256. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  257. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  258. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  259. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  260. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  261. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  262. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  263. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  264. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  265. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  266. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  267. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  268. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  269. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  270. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  271. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  272. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  273. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  274. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  275. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  276. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  277. data/lib/starter_web/index.html +9 -8
  278. data/lib/starter_web/package.json +1 -1
  279. data/lib/starter_web/pages/public/clear_button.adoc +121 -0
  280. data/lib/starter_web/pages/public/learn/examples/floating_ad.adoc +221 -0
  281. data/lib/starter_web/pages/public/learn/{floating_sidebar.adoc → examples/floating_div.adoc} +60 -50
  282. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/parts.asciidoc +1 -1
  283. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +9 -4
  284. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +2 -2
  285. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_table_3_column.asciidoc +1 -1
  286. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +5 -5
  287. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  288. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +8 -3
  289. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +35 -44
  290. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  291. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +39 -39
  292. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_table_3_column.asciidoc +1 -1
  293. data/lib/starter_web/pages/public/learn/whats_up.adoc +1 -0
  294. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +54 -48
  295. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  296. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  297. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +1 -41
  298. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  299. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/300_flip.asciidoc +1 -1
  300. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +1 -1
  301. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  302. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  303. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  304. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  305. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  306. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  307. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  308. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  309. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/300_flip.asciidoc +1 -1
  310. data/lib/starter_web/pages/public/previewer/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  311. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +672 -863
  312. data/lib/starter_web/pages/public/previewer/iframer.adoc +15 -14
  313. data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
  314. data/lib/starter_web/pages/public/previewer/mdb_preview/000_includes/attributes.asciidoc +69 -0
  315. data/lib/starter_web/pages/public/previewer/mdb_preview/000_includes/documents/100_buttons.asciidoc +170 -0
  316. data/lib/starter_web/pages/public/previewer/mdb_preview/mdb_previewer.adoc +52 -0
  317. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +1 -1
  318. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +2 -2
  319. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  320. data/lib/starter_web/utilsrv/package.json +1 -1
  321. metadata +148 -105
  322. data/assets/data/colors.json +0 -42
  323. data/assets/data/font_sizes.json +0 -42
  324. data/assets/data/messages.yml +0 -131
  325. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.absolute.html +0 -86
  326. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.content.html +0 -58
  327. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.hover.html +0 -51
  328. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.nested.html +0 -68
  329. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.textarea.html +0 -46
  330. data/assets/themes/j1/extensions/iframe_resizer/examples/frame.tolerance.html +0 -79
  331. data/assets/themes/j1/extensions/iframe_resizer/examples/index.html +0 -70
  332. data/assets/themes/j1/extensions/iframe_resizer/examples/two.html +0 -71
  333. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.js +0 -1104
  334. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.map +0 -1
  335. data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.min.js +0 -10
  336. data/assets/themes/j1/extensions/log4javascript/log4javascript.js +0 -5826
  337. data/assets/themes/j1/extensions/log4javascript/log4javascript.min.js +0 -266
  338. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
  339. data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
  340. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  341. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
@@ -0,0 +1,235 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/extensions/bsDatepicker/css/theme/uno.css
4
+ # Provides theme styles (Uno) for Mobile Menu light (v3.0.5)
5
+ #
6
+ # Product/Info:
7
+ # http://jekyll.one
8
+ # http://www.eyecon.ro/bootstrap-datepicker
9
+ #
10
+ # Copyright (C) 2020 Juergen Adams
11
+ # Copyright (C) 2012-2013 Stefan Petre
12
+ #
13
+ # J1 Template is licensed under the MIT License.
14
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
15
+ # Datepicker is licensed under the Apache License, Version 2.0
16
+ # See: http://www.apache.org/licenses/LICENSE-2.0
17
+ # -----------------------------------------------------------------------------
18
+ # Version 1.7.1
19
+ # -----------------------------------------------------------------------------
20
+ */
21
+
22
+ /*
23
+ # ----------------------------------------------------------------------------
24
+ # ~/theme_uno/modules/_datepicker.scss
25
+ # Theme Uno - additional mde styles for Bootstrap Datepicker
26
+ # ----------------------------------------------------------------------------
27
+ */
28
+
29
+ // NOTE: Settings for text_color|background_color are set dynamicall by the JS adapter
30
+ // TODO:
31
+ // SPEC: http://www.eyecon.ro/bootstrap-datepicker/
32
+
33
+ /*
34
+ * Datepicker for Bootstrap
35
+ *
36
+ * Copyright 2012 Stefan Petre
37
+ * Licensed under the Apache License v2.0
38
+ * http://www.apache.org/licenses/LICENSE-2.0
39
+ *
40
+ */
41
+ /*!
42
+ * Datepicker for Bootstrap
43
+ *
44
+ * Copyright 2012 Stefan Petre
45
+ * Licensed under the Apache License v2.0
46
+ * http://www.apache.org/licenses/LICENSE-2.0
47
+ *
48
+ */
49
+ /*
50
+ *
51
+ * SCSS by Creative Tim
52
+ * http://www.creative-tim.com
53
+ *
54
+ */
55
+ .datepicker {
56
+ top: 0;
57
+ left: 0;
58
+ padding: 4px;
59
+ margin-top: 1px;
60
+ -webkit-border-radius: 4px;
61
+ -moz-border-radius: 4px;
62
+ border-radius: 4px;
63
+ }
64
+ .datepicker > div {
65
+ display: none;
66
+ }
67
+ .datepicker table {
68
+ width: 100%;
69
+ margin: 0;
70
+ }
71
+ .datepicker td,
72
+ .datepicker th {
73
+ text-align: center;
74
+ width: 20px;
75
+ height: 20px;
76
+ -webkit-border-radius: 4px;
77
+ -moz-border-radius: 4px;
78
+ border-radius: 4px;
79
+ }
80
+ .datepicker td {
81
+ text-align: center;
82
+ }
83
+ .datepicker td p {
84
+ font-size: 1em;
85
+ font-weight: 400;
86
+ border-radius: 50%;
87
+ height: 29px;
88
+ line-height: 29px;
89
+ margin: 3px 0 8px;
90
+ width: 29px;
91
+ }
92
+ .datepicker td :hover {
93
+ cursor: pointer;
94
+ }
95
+ .datepicker th {
96
+ font-weight: 500;
97
+ }
98
+ .datepicker th.switch-datepicker {
99
+ font-size: 1em;
100
+ }
101
+ .datepicker .prev p,
102
+ .datepicker .next p {
103
+ font-size: 1.825em;
104
+ }
105
+ .datepicker p:hover {
106
+ background: #eeeeee;
107
+ }
108
+ .datepicker .day.disabled {
109
+ color: #eeeeee;
110
+ }
111
+ .datepicker td.old,
112
+ .datepicker td.new {
113
+ color: #999999;
114
+ border-top: 0;
115
+ }
116
+ .datepicker td.active p,
117
+ .datepicker td.active:hover p {
118
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
119
+ color: #ffffff;
120
+ background-color: #9c27b0;
121
+ }
122
+ .datepicker td.primary p,
123
+ .datepicker td.primary:hover p {
124
+ background-color: #9c27b0;
125
+ }
126
+ .datepicker td.info p,
127
+ .datepicker td.info:hover p {
128
+ background-color: #03a9f4;
129
+ }
130
+ .datepicker td.success p,
131
+ .datepicker td.success:hover p {
132
+ background-color: #4caf50;
133
+ }
134
+ .datepicker td.warning p,
135
+ .datepicker td.warning:hover p {
136
+ background-color: #fbc02d;
137
+ }
138
+ .datepicker td.danger p,
139
+ .datepicker td.danger:hover p {
140
+ background-color: #f44336;
141
+ }
142
+ .datepicker span {
143
+ display: block;
144
+ width: 55px;
145
+ height: 54px;
146
+ line-height: 54px;
147
+ float: left;
148
+ margin: 2px;
149
+ cursor: pointer;
150
+ -webkit-border-radius: 4px;
151
+ -moz-border-radius: 4px;
152
+ border-radius: 4px;
153
+ }
154
+ .datepicker span.old {
155
+ color: #999999;
156
+ }
157
+ .datepicker span.active, .datepicker span.active:focus, .datepicker span.active:hover, .datepicker span.active:active {
158
+ background-color: #9c27b0;
159
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
160
+ }
161
+ .datepicker span.active {
162
+ color: #FFFFFF;
163
+ }
164
+ .datepicker span:hover {
165
+ background-color: #EEEEEE;
166
+ }
167
+ .datepicker span.primary,
168
+ .datepicker span.primary:hover {
169
+ background-color: #9c27b0;
170
+ }
171
+ .datepicker span.info,
172
+ .datepicker span.info:hover {
173
+ background-color: #03a9f4;
174
+ }
175
+ .datepicker span.success,
176
+ .datepicker span.success:hover {
177
+ background-color: #4caf50;
178
+ }
179
+ .datepicker span.warning,
180
+ .datepicker span.warning:hover {
181
+ background-color: #fbc02d;
182
+ }
183
+ .datepicker span.danger,
184
+ .datepicker span.danger:hover {
185
+ background-color: #f44336;
186
+ }
187
+ .datepicker th.switch-datepicker {
188
+ width: 145px;
189
+ }
190
+ .datepicker th.next,
191
+ .datepicker th.prev {
192
+ font-size: 21px;
193
+ }
194
+ .datepicker thead tr:first-child th {
195
+ cursor: pointer;
196
+ }
197
+ .datepicker thead tr:first-child th:hover {
198
+ background: #eeeeee;
199
+ }
200
+ .datepicker.dropdown-menu {
201
+ border-radius: 3px;
202
+ box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
203
+ -webkit-transition: all 150ms linear;
204
+ -moz-transition: all 150ms linear;
205
+ -o-transition: all 150ms linear;
206
+ -ms-transition: all 150ms linear;
207
+ transition: all 150ms linear;
208
+ margin-top: -20px;
209
+ opacity: 0;
210
+ visibility: hidden;
211
+ }
212
+ .datepicker.dropdown-menu.open {
213
+ opacity: 1;
214
+ visibility: visible;
215
+ margin-top: 1px;
216
+ }
217
+ .datepicker .table-condensed > tbody > tr > td {
218
+ padding: 2px;
219
+ }
220
+ .datepicker .table-condensed > thead > tr > th {
221
+ padding: 0;
222
+ }
223
+
224
+ .input-append.date .add-on i,
225
+ .input-prepend.date .add-on i {
226
+ display: block;
227
+ cursor: pointer;
228
+ width: 16px;
229
+ height: 16px;
230
+ }
231
+
232
+ .datepicker-months thead {
233
+ padding: 0 0 3px;
234
+ display: block;
235
+ }
@@ -0,0 +1,509 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/extensions/bsDatepicker/js/datepicker.js
4
+ # Provides Javascript functions for Bootstrap Datepicker
5
+ #
6
+ # Product/Info:
7
+ # http://jekyll.one
8
+ # http://www.eyecon.ro/bootstrap-datepicker
9
+ #
10
+ # Copyright (C) 2020 Juergen Adams
11
+ # Copyright (C) 2012-2013 Stefan Petre
12
+ #
13
+ # J1 Template is licensed under the MIT License.
14
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
15
+ # Datepicker is licensed under the Apache License, Version 2.0
16
+ # See: http://www.apache.org/licenses/LICENSE-2.0
17
+ # -----------------------------------------------------------------------------
18
+ # Version 1.7.1
19
+ # -----------------------------------------------------------------------------
20
+ */
21
+ 'use strict';
22
+
23
+ // -----------------------------------------------------------------------------
24
+ // ESLint shimming
25
+ // -----------------------------------------------------------------------------
26
+ /* eslint indent: "off" */
27
+ /* eslint no-unused-vars: "off" */
28
+ /* eslint no-undef: "off" */
29
+ /* eslint no-redeclare: "off" */
30
+ /* eslint quotes: "off" */
31
+ /* eslint no-extra-boolean-cast: "off" */
32
+ /* eslint no-useless-escape: "off" */
33
+ // -----------------------------------------------------------------------------
34
+
35
+ (function($, window, document) {
36
+
37
+ // Picker object
38
+ // ---------------------------------------------------------------------------
39
+ var Datepicker = function(element, options){
40
+ this.element = $(element);
41
+ this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'mm/dd/yyyy');
42
+ this.picker = $(DPGlobal.template)
43
+ .appendTo('body')
44
+ .on({
45
+ click: $.proxy(this.click, this)//,
46
+ //mousedown: $.proxy(this.mousedown, this)
47
+ });
48
+ this.isInput = this.element.is('input');
49
+ this.component = this.element.is('.date') ? this.element.find('.add-on') : false;
50
+
51
+ if (this.isInput) {
52
+ this.element.on({
53
+ focus: $.proxy(this.show, this),
54
+ //blur: $.proxy(this.hide, this),
55
+ keyup: $.proxy(this.update, this)
56
+ });
57
+ } else {
58
+ if (this.component){
59
+ this.component.on('click', $.proxy(this.show, this));
60
+ } else {
61
+ this.element.on('click', $.proxy(this.show, this));
62
+ }
63
+ }
64
+
65
+ this.minViewMode = options.minViewMode||this.element.data('date-minviewmode')||0;
66
+ if (typeof this.minViewMode === 'string') {
67
+ switch (this.minViewMode) {
68
+ case 'months':
69
+ this.minViewMode = 1;
70
+ break;
71
+ case 'years':
72
+ this.minViewMode = 2;
73
+ break;
74
+ default:
75
+ this.minViewMode = 0;
76
+ break;
77
+ }
78
+ }
79
+ this.viewMode = options.viewMode||this.element.data('date-viewmode')||0;
80
+ if (typeof this.viewMode === 'string') {
81
+ switch (this.viewMode) {
82
+ case 'months':
83
+ this.viewMode = 1;
84
+ break;
85
+ case 'years':
86
+ this.viewMode = 2;
87
+ break;
88
+ default:
89
+ this.viewMode = 0;
90
+ break;
91
+ }
92
+ }
93
+ this.color = options.color||'azure';
94
+ this.startViewMode = this.viewMode;
95
+ this.weekStart = options.weekStart||this.element.data('date-weekstart')||0;
96
+ this.weekEnd = this.weekStart === 0 ? 6 : this.weekStart - 1;
97
+ this.onRender = options.onRender;
98
+ this.fillDow();
99
+ this.fillMonths();
100
+ this.update();
101
+ this.showMode();
102
+
103
+ };
104
+
105
+
106
+
107
+ Datepicker.prototype = {
108
+ constructor: Datepicker,
109
+
110
+ show: function(e) {
111
+ var datepicker = this.picker;
112
+
113
+ this.picker.show();
114
+ this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
115
+ this.place();
116
+ $(window).on('resize', $.proxy(this.place, this));
117
+ if (e ) {
118
+ e.stopPropagation();
119
+ e.preventDefault();
120
+ }
121
+ if (!this.isInput) {
122
+ // do something
123
+ var foo = 'bar';
124
+ }
125
+ var that = this;
126
+ $(document).on('mousedown', function(ev){
127
+ if ($(ev.target).closest('.datepicker').length == 0) {
128
+ that.hide();
129
+ }
130
+ });
131
+ this.element.trigger({
132
+ type: 'show',
133
+ date: this.date
134
+ });
135
+
136
+ setTimeout(function(){
137
+ // jadams, 207-12-28: first time, the days widget is set to display none
138
+ $('.datepicker-days').show();
139
+ datepicker.addClass('open');
140
+ }, 170);
141
+ },
142
+
143
+ hide: function(){
144
+ var datepicker = this.picker;
145
+ datepicker.removeClass('open');
146
+ this.picker.hide();
147
+
148
+ $(window).off('resize', this.place);
149
+ this.viewMode = this.startViewMode;
150
+ this.showMode();
151
+ if (!this.isInput) {
152
+ $(document).off('mousedown', this.hide);
153
+ }
154
+ //this.set();
155
+ this.element.trigger({
156
+ type: 'hide',
157
+ date: this.date
158
+ });
159
+
160
+ },
161
+
162
+ set: function() {
163
+ var formated = DPGlobal.formatDate(this.date, this.format);
164
+ if (!this.isInput) {
165
+ if (this.component){
166
+ this.element.find('input').prop('value', formated);
167
+ }
168
+ this.element.data('date', formated);
169
+ } else {
170
+ this.element.prop('value', formated);
171
+ }
172
+ },
173
+
174
+ setValue: function(newDate) {
175
+ if (typeof newDate === 'string') {
176
+ this.date = DPGlobal.parseDate(newDate, this.format);
177
+ } else {
178
+ this.date = new Date(newDate);
179
+ }
180
+ this.set();
181
+ this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0);
182
+ this.fill();
183
+ },
184
+
185
+ place: function(){
186
+ var offset = this.component ? this.component.offset() : this.element.offset();
187
+ this.picker.css({
188
+ top: offset.top + this.height,
189
+ left: offset.left
190
+ });
191
+ },
192
+
193
+ update: function(newDate){
194
+ this.date = DPGlobal.parseDate(
195
+ typeof newDate === 'string' ? newDate : (this.isInput ? this.element.prop('value') : this.element.data('date')),
196
+ this.format
197
+ );
198
+ this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0);
199
+ this.fill();
200
+ },
201
+
202
+ fillDow: function(){
203
+ var dowCnt = this.weekStart;
204
+ var html = '<tr>';
205
+ while (dowCnt < this.weekStart + 7) {
206
+ html += '<th class="dow">'+DPGlobal.dates.daysMin[(dowCnt++)%7]+'</th>';
207
+ }
208
+ html += '</tr>';
209
+ this.picker.find('.datepicker-days thead').append(html);
210
+ },
211
+
212
+ fillMonths: function(){
213
+ var html = '';
214
+ var i = 0;
215
+ while (i < 12) {
216
+ html += '<span class="month">'+DPGlobal.dates.monthsShort[i++]+'</span>';
217
+ }
218
+ this.picker.find('.datepicker-months td').append(html);
219
+ },
220
+
221
+ fill: function() {
222
+ var d = new Date(this.viewDate),
223
+ year = d.getFullYear(),
224
+ month = d.getMonth(),
225
+ currentDate = this.date.valueOf();
226
+ this.picker.find('.datepicker-days th:eq(1)')
227
+ .text(DPGlobal.dates.months[month]+' '+year);
228
+ var prevMonth = new Date(year, month-1, 28,0,0,0,0),
229
+ day = DPGlobal.getDaysInMonth(prevMonth.getFullYear(), prevMonth.getMonth());
230
+ prevMonth.setDate(day);
231
+ prevMonth.setDate(day - (prevMonth.getDay() - this.weekStart + 7)%7);
232
+ var nextMonth = new Date(prevMonth);
233
+ nextMonth.setDate(nextMonth.getDate() + 42);
234
+ nextMonth = nextMonth.valueOf();
235
+ var html = [];
236
+ var clsName,
237
+ prevY,
238
+ prevM;
239
+ while(prevMonth.valueOf() < nextMonth) {
240
+ if (prevMonth.getDay() === this.weekStart) {
241
+ html.push('<tr>');
242
+ }
243
+ clsName = this.onRender(prevMonth);
244
+ prevY = prevMonth.getFullYear();
245
+ prevM = prevMonth.getMonth();
246
+ if ((prevM < month && prevY === year) || prevY < year) {
247
+ clsName += ' old';
248
+ } else if ((prevM > month && prevY === year) || prevY > year) {
249
+ clsName += ' new';
250
+ }
251
+ if (prevMonth.valueOf() === currentDate) {
252
+ clsName += ' active ' + this.color;
253
+ }
254
+ html.push('<td class="day '+clsName+'"><p>'+prevMonth.getDate() + '</p></td>');
255
+ if (prevMonth.getDay() === this.weekEnd) {
256
+ html.push('</tr>');
257
+ }
258
+ prevMonth.setDate(prevMonth.getDate()+1);
259
+ }
260
+ this.picker.find('.datepicker-days tbody').empty().append(html.join(''));
261
+ var currentYear = this.date.getFullYear();
262
+
263
+ var months = this.picker.find('.datepicker-months')
264
+ .find('th:eq(1)')
265
+ .text(year)
266
+ .end()
267
+ .find('span').removeClass('active');
268
+ if (currentYear === year) {
269
+ months.eq(this.date.getMonth()).addClass('active').addClass(this.color);
270
+ }
271
+
272
+ html = '';
273
+ year = parseInt(year/10, 10) * 10;
274
+ var yearCont = this.picker.find('.datepicker-years')
275
+ .find('th:eq(1)')
276
+ .text(year + '-' + (year + 9))
277
+ .end()
278
+ .find('td');
279
+ year -= 1;
280
+ for (var i = -1; i < 11; i++) {
281
+ html += '<span class="year'+(i === -1 || i === 10 ? ' old' : '')+(currentYear === year ? ' active ' : '')+ this.color + '">'+year+'</span>';
282
+ year += 1;
283
+ }
284
+ yearCont.html(html);
285
+ },
286
+
287
+ click: function(e) {
288
+ e.stopPropagation();
289
+ e.preventDefault();
290
+ var target = $(e.target).closest('span, td, th');
291
+ if (target.length === 1) {
292
+ switch(target[0].nodeName.toLowerCase()) {
293
+ case 'th':
294
+ switch(target[0].className) {
295
+ case 'switch-datepicker':
296
+ this.showMode(1);
297
+ break;
298
+ case 'prev':
299
+ case 'next':
300
+ this.viewDate['set'+DPGlobal.modes[this.viewMode].navFnc].call(
301
+ this.viewDate,
302
+ this.viewDate['get'+DPGlobal.modes[this.viewMode].navFnc].call(this.viewDate) +
303
+ DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1)
304
+ );
305
+ this.fill();
306
+ this.set();
307
+ break;
308
+ }
309
+ break;
310
+ case 'span':
311
+ if (target.is('.month')) {
312
+ var month = target.parent().find('span').index(target);
313
+ this.viewDate.setMonth(month);
314
+ } else {
315
+ var year = parseInt(target.text(), 10)||0;
316
+ this.viewDate.setFullYear(year);
317
+ }
318
+ if (this.viewMode !== 0) {
319
+ this.date = new Date(this.viewDate);
320
+ this.element.trigger({
321
+ type: 'changeDate',
322
+ date: this.date,
323
+ viewMode: DPGlobal.modes[this.viewMode].clsName
324
+ });
325
+ }
326
+ this.showMode(-1);
327
+ this.fill();
328
+ this.set();
329
+ break;
330
+ case 'td':
331
+ if (target.is('.day') && !target.is('.disabled')){
332
+ var day = parseInt(target.text(), 10)||1;
333
+ var month = this.viewDate.getMonth();
334
+ if (target.is('.old')) {
335
+ month -= 1;
336
+ } else if (target.is('.new')) {
337
+ month += 1;
338
+ }
339
+ var year = this.viewDate.getFullYear();
340
+ this.date = new Date(year, month, day,0,0,0,0);
341
+ this.viewDate = new Date(year, month, Math.min(28, day),0,0,0,0);
342
+ this.fill();
343
+ this.set();
344
+ this.element.trigger({
345
+ type: 'changeDate',
346
+ date: this.date,
347
+ viewMode: DPGlobal.modes[this.viewMode].clsName
348
+ });
349
+ }
350
+ break;
351
+ }
352
+ }
353
+ },
354
+
355
+ mousedown: function(e){
356
+ e.stopPropagation();
357
+ e.preventDefault();
358
+ },
359
+
360
+ showMode: function(dir) {
361
+ if (dir) {
362
+ this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + dir));
363
+ }
364
+ this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();
365
+ }
366
+ };
367
+
368
+ $.fn.datepicker = function ( option, val ) {
369
+ return this.each(function () {
370
+ var $this = $(this),
371
+ data = $this.data('datepicker'),
372
+ options = typeof option === 'object' && option;
373
+ if (!data) {
374
+ $this.data('datepicker', (data = new Datepicker(this, $.extend({}, $.fn.datepicker.defaults,options))));
375
+ }
376
+ if (typeof option === 'string') data[option](val);
377
+ });
378
+ };
379
+
380
+ $.fn.datepicker.defaults = {
381
+ onRender: function(date) {
382
+ return '';
383
+ }
384
+ };
385
+ $.fn.datepicker.Constructor = Datepicker;
386
+
387
+ var DPGlobal = {
388
+ modes: [
389
+ {
390
+ clsName: 'days',
391
+ navFnc: 'Month',
392
+ navStep: 1
393
+ },
394
+ {
395
+ clsName: 'months',
396
+ navFnc: 'FullYear',
397
+ navStep: 1
398
+ },
399
+ {
400
+ clsName: 'years',
401
+ navFnc: 'FullYear',
402
+ navStep: 10
403
+ }],
404
+ dates:{
405
+ days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
406
+ daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
407
+ daysMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S', 'S'],
408
+ months: ['JAN.', 'FEB.', 'MAR.', 'APR.', 'MAY', 'JUN.', 'JUL.', 'AUG.', 'SEPT.', 'OCT.', 'NOV.', 'DEC.'],
409
+ monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
410
+ },
411
+ isLeapYear: function (year) {
412
+ return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
413
+ },
414
+ getDaysInMonth: function (year, month) {
415
+ return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
416
+ },
417
+ parseFormat: function(format){
418
+ var separator = format.match(/[.\/\-\s].*?/),
419
+ parts = format.split(/\W+/);
420
+ if (!separator || !parts || parts.length === 0){
421
+ throw new Error('Invalid date format.');
422
+ }
423
+ return {separator: separator, parts: parts};
424
+ },
425
+ parseDate: function(date, format) {
426
+ var parts = date.split(format.separator),
427
+ date = new Date(),
428
+ val;
429
+ date.setHours(0);
430
+ date.setMinutes(0);
431
+ date.setSeconds(0);
432
+ date.setMilliseconds(0);
433
+ if (parts.length === format.parts.length) {
434
+ var year = date.getFullYear(), day = date.getDate(), month = date.getMonth();
435
+ for (var i=0, cnt = format.parts.length; i < cnt; i++) {
436
+ val = parseInt(parts[i], 10)||1;
437
+ switch(format.parts[i]) {
438
+ case 'dd':
439
+ case 'd':
440
+ day = val;
441
+ date.setDate(val);
442
+ break;
443
+ case 'mm':
444
+ case 'm':
445
+ month = val - 1;
446
+ date.setMonth(val - 1);
447
+ break;
448
+ case 'yy':
449
+ year = 2000 + val;
450
+ date.setFullYear(2000 + val);
451
+ break;
452
+ case 'yyyy':
453
+ year = val;
454
+ date.setFullYear(val);
455
+ break;
456
+ }
457
+ }
458
+ date = new Date(year, month, day, 0 ,0 ,0);
459
+ }
460
+ return date;
461
+ },
462
+ formatDate: function(date, format){
463
+ var val = {
464
+ d: date.getDate(),
465
+ m: date.getMonth() + 1,
466
+ yy: date.getFullYear().toString().substring(2),
467
+ yyyy: date.getFullYear()
468
+ };
469
+ val.dd = (val.d < 10 ? '0' : '') + val.d;
470
+ val.mm = (val.m < 10 ? '0' : '') + val.m;
471
+ var date = [];
472
+ for (var i=0, cnt = format.parts.length; i < cnt; i++) {
473
+ date.push(val[format.parts[i]]);
474
+ }
475
+ return date.join(format.separator);
476
+ },
477
+ headTemplate: '<thead>'+
478
+ '<tr>'+
479
+ '<th class="prev"><p>&lsaquo;</p></th>'+
480
+ '<th colspan="5" class="switch-datepicker"></th>'+
481
+ '<th class="next"><p>&rsaquo;</p></th>'+
482
+ '</tr>'+
483
+ '</thead>',
484
+ contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>'
485
+ };
486
+
487
+ // jadams, 2017-12-28: added style display:none to te template
488
+ DPGlobal.template = '<div class="datepicker dropdown-menu" style="display:none;">'+
489
+ '<div class="datepicker-days">'+
490
+ '<table class=" table-condensed">'+
491
+ DPGlobal.headTemplate+
492
+ '<tbody></tbody>'+
493
+ '</table>'+
494
+ '</div>'+
495
+ '<div class="datepicker-months">'+
496
+ '<table class="table-condensed">'+
497
+ DPGlobal.headTemplate+
498
+ DPGlobal.contTemplate+
499
+ '</table>'+
500
+ '</div>'+
501
+ '<div class="datepicker-years">'+
502
+ '<table class="table-condensed">'+
503
+ DPGlobal.headTemplate+
504
+ DPGlobal.contTemplate+
505
+ '</table>'+
506
+ '</div>'+
507
+ '</div>';
508
+
509
+ })(jQuery, window, document);