j1-template 2020.0.11 → 2020.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/blocks/ads/ad.html +64 -0
- data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +2 -2
- data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +3 -3
- data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +3 -3
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +3 -2
- data/_includes/themes/j1/layouts/content_generator_collection.html +3 -2
- data/_includes/themes/j1/layouts/content_generator_page.html +26 -25
- data/_includes/themes/j1/layouts/content_generator_post.html +13 -13
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +134 -4
- data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +6 -9
- data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +9 -6
- data/_includes/themes/j1/modules/connectors/ads +3 -6
- data/_includes/themes/j1/modules/navigator/generator.html +0 -1
- data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +5 -5
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +5 -2
- data/_includes/themes/j1/procedures/layouts/content_writer.proc +8 -9
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +3 -13
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +14 -14
- data/_layouts/default.html +60 -59
- data/apps/public/cc/index.adoc +1 -5
- data/assets/data/authclient.html +48 -27
- data/assets/data/banner.html +23 -23
- data/assets/data/carousel.json +30 -21
- data/assets/data/cookiebar.html +277 -0
- data/assets/data/footer.html +14 -7
- data/assets/data/galleries.json +90 -81
- data/assets/data/gallery_customizer.html +21 -12
- data/assets/data/jupyter/notebooks/_html/template.full.head.html +10 -10
- data/assets/data/jupyter/notebooks/_html/visualisation.html +11 -11
- data/assets/data/jupyter/notebooks/html/template.html +7 -7
- data/assets/data/jupyter/notebooks/html/visualisation.ok.html +12 -12
- data/assets/data/jupyter/notebooks/visualisation.ipynb +1 -1
- data/assets/data/mdi_icons.json +55 -1
- data/assets/data/menu.html +16 -9
- data/assets/data/mmenu.html +48 -95
- data/assets/data/mmenu_sidebar.html +40 -44
- data/assets/data/mmenu_toc.html +20 -4
- data/assets/data/panel.html +44 -38
- data/assets/data/quicklinks.html +36 -20
- data/assets/data/search.json +165 -0
- data/assets/data/ssm.html +15 -4
- data/assets/data/themes.json +17 -6
- data/assets/data/twa_v1.json +54 -0
- data/assets/themes/j1/adapter/js/algolia.js +28 -17
- data/assets/themes/j1/adapter/js/attic.js +51 -40
- data/assets/themes/j1/adapter/js/carousel.js +27 -13
- data/assets/themes/j1/adapter/js/clipboard.js +232 -0
- data/assets/themes/j1/adapter/js/cookiebar.js +204 -0
- data/assets/themes/j1/adapter/js/framer.js +37 -21
- data/assets/themes/j1/adapter/js/gallery_customizer.js +230 -250
- data/assets/themes/j1/adapter/js/j1.js +563 -803
- data/assets/themes/j1/adapter/js/{justified_gallery.js → jf_gallery.js} +32 -22
- data/assets/themes/j1/adapter/js/lightbox.js +20 -10
- data/assets/themes/j1/adapter/js/logger.js +13 -6
- data/assets/themes/j1/adapter/js/mdb.js +164 -0
- data/assets/themes/j1/adapter/js/mmenu.js +60 -69
- data/assets/themes/j1/adapter/js/navigator.js +200 -169
- data/assets/themes/j1/adapter/js/searcher.js +30 -14
- data/assets/themes/j1/adapter/js/ssm.js +111 -88
- data/assets/themes/j1/adapter/js/themer.js +71 -103
- data/assets/themes/j1/adapter/js/toccer.js +30 -22
- data/assets/themes/j1/core/css/animate.css +2382 -0
- data/assets/themes/j1/core/css/animate.min.css +7 -0
- data/assets/themes/j1/core/css/fontawesome.css +4415 -0
- data/assets/themes/j1/core/css/fontawesome.min.css +1 -0
- data/assets/themes/j1/core/css/iconify-icons.css +4106 -0
- data/assets/themes/j1/core/css/iconify-icons.min.css +1 -0
- data/assets/themes/j1/core/css/material-design-icons.css +14532 -0
- data/assets/themes/j1/core/css/material-design-icons.min.css +1 -0
- data/assets/themes/j1/core/css/theme_extensions.css +326 -3004
- data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
- data/assets/themes/j1/core/css/twemoji.css +9485 -0
- data/assets/themes/j1/core/css/twemoji.min.css +1 -0
- data/assets/themes/j1/core/css/uno.css +453 -3039
- data/assets/themes/j1/core/css/uno.min.css +1 -1
- data/assets/themes/j1/core/css/vendor.css +884 -33335
- data/assets/themes/j1/core/css/vendor.min.css +2 -9
- data/assets/themes/j1/core/js/template.js +25 -416
- data/assets/themes/j1/core/js/template.js.map +1 -1
- data/assets/themes/j1/core/js/template.min.js +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +1695 -0
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +21 -0
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js.org +1 -0
- data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.css +12177 -0
- data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.min.css +8 -0
- data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +6930 -0
- data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js.map +1 -0
- data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.min.js +1 -0
- data/assets/themes/j1/modules/bootstrap/css/bootstrap.css +10278 -0
- data/assets/themes/j1/modules/bootstrap/css/bootstrap.css.map +1 -0
- data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css +7 -0
- data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css.map +1 -0
- data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +4420 -0
- data/assets/themes/j1/modules/bootstrap/js/bootstrap.js.map +1 -0
- data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +7 -0
- data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +1 -0
- data/assets/themes/j1/modules/bsDatepicker/css/datepicker.css +203 -0
- data/assets/themes/j1/modules/bsDatepicker/css/theme/uno.css +235 -0
- data/assets/themes/j1/modules/bsDatepicker/js/datepicker.js +509 -0
- data/assets/themes/j1/modules/bsDatepicker/less/datepicker.less +122 -0
- data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.js +435 -0
- data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js +20 -0
- data/assets/themes/j1/{extensions → modules}/carousel/css/carousel.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/css/carousel.min.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/css/carousel_transitions.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/css/carousel_transitions.min.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/css/theme/uno.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/{extensions → modules}/carousel/images/ajax-loader.gif +0 -0
- data/assets/themes/j1/{extensions → modules}/carousel/images/grabbing.png +0 -0
- data/assets/themes/j1/{extensions → modules}/carousel/images/owl-logo.png +0 -0
- data/assets/themes/j1/{extensions → modules}/carousel/images/owl.video.play.png +0 -0
- data/assets/themes/j1/{extensions → modules}/carousel/js/carousel.js +0 -0
- data/assets/themes/j1/{extensions → modules}/carousel/js/carousel.min.js +0 -0
- data/assets/themes/j1/modules/clipboard/LICENSE +20 -0
- data/assets/themes/j1/modules/clipboard/css/theme/uno.css +52 -0
- data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +52 -0
- data/assets/themes/j1/modules/clipboard/js/clipboard.js +975 -0
- data/assets/themes/j1/modules/clipboard/js/clipboard.min.js +7 -0
- data/assets/themes/j1/{extensions/iconify → modules/iconifyAPI}/js/iconify.min.js +0 -0
- data/assets/themes/j1/modules/iframeResizer/LICENSE +21 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +127 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +157 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.hover.html +68 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +100 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.textarea.html +45 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +113 -0
- data/assets/themes/j1/modules/iframeResizer/examples/index.html +83 -0
- data/assets/themes/j1/modules/iframeResizer/examples/two.html +88 -0
- data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.js +1288 -0
- data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.map +1 -0
- data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js +10 -0
- data/assets/themes/j1/modules/iframeResizer/js/iframeResizer.js +1390 -0
- data/assets/themes/j1/modules/iframeResizer/js/iframeResizer.map +1 -0
- data/assets/themes/j1/modules/iframeResizer/js/iframeResizer.min.js +9 -0
- data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.js +468 -0
- data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.min.js +6 -0
- data/assets/themes/j1/modules/jqMouseWheel/README.md +76 -0
- data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.js +221 -0
- data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.min.js +9 -0
- data/assets/themes/j1/modules/jquery/js/jquery.js +10869 -0
- data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/LICENSE +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/README.md +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/css/justifiedGallery.min.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/css/theme/uno.css +1 -1
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/js/justifiedGallery.min.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/less/.csslintrc +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v3.7.0/less/justifiedGallery.less +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v4.0.0/css/justifiedGallery.min.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v4.0.0/css/theme/uno.css +1 -1
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/css/justifiedGallery.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/css/justifiedGallery.min.css +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/css/theme/uno.css +1 -1
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/js/justifiedGallery.js +0 -0
- data/assets/themes/j1/{extensions/justified_gallery → modules/justifiedGallery}/js/justifiedGallery.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lg-fb-comment-box.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lg-fb-comment-box.min.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lg-transitions.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lg-transitions.min.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lightgallery.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/core/lightgallery.min.css +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/fonts/lg.eot +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/fonts/lg.svg +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/fonts/lg.ttf +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/fonts/lg.woff +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/img/loading.gif +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/img/video-play.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/img/vimeo-play.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/img/youtube-play.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/animation-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/customize-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/dynamic-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/facebook-icon.svg +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/googleplus-icon.svg +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/html5-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/linked-in.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/module-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/play-button.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/responsive-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/thumb-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/touch-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/twitter-icon.svg +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/twitter.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/video1-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/zoom-w.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/icons/zoom.png +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/uno.css +1 -1
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/css/themes/uno.min.css +1 -1
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/core/lightgallery.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/core/lightgallery.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/j1/j1-video.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/j1/j1-video.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-autoplay.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-autoplay.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-fullscreen.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-fullscreen.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-hash.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-hash.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-pager.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-pager.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-share.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-share.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-thumbnail.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-thumbnail.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-video.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-video.min.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-zoom.js +0 -0
- data/assets/themes/j1/{extensions/light_gallery → modules/lightGallery}/js/modules/lg-zoom.min.js +0 -0
- data/assets/themes/j1/modules/lightbox/LICENSE +22 -0
- data/assets/themes/j1/modules/lightbox/css/lightbox.css +224 -0
- data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +21 -0
- data/assets/themes/j1/modules/lightbox/css/theme/uno.css +25 -0
- data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +26 -0
- data/assets/themes/j1/modules/lightbox/images/close.png +0 -0
- data/assets/themes/j1/modules/lightbox/images/loading.gif +0 -0
- data/assets/themes/j1/modules/lightbox/images/next.png +0 -0
- data/assets/themes/j1/modules/lightbox/images/prev.png +0 -0
- data/assets/themes/j1/modules/lightbox/js/lightbox.js +583 -0
- data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +35 -0
- data/assets/themes/j1/modules/mmenuLight/css/mmenu.css +392 -0
- data/assets/themes/j1/modules/mmenuLight/css/mmenu.min.css +393 -0
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno.css +178 -0
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno.min.css +170 -0
- data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +563 -0
- data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +30 -0
- data/assets/themes/j1/modules/noUISlider/LICENSE +13 -0
- data/assets/themes/j1/modules/noUISlider/css/nouislider.css +260 -0
- data/assets/themes/j1/modules/noUISlider/css/nouislider.min.css +1 -0
- data/assets/themes/j1/modules/noUISlider/js/nouislider.js +2312 -0
- data/assets/themes/j1/modules/noUISlider/js/nouislider.min.js +3 -0
- data/assets/themes/j1/modules/polyfills/js/msie.js +140 -0
- data/assets/themes/j1/modules/popper/js/popper.js +2623 -0
- data/assets/themes/j1/modules/popper/js/popper.js.map +1 -0
- data/assets/themes/j1/modules/popper/js/popper.min.js +4 -0
- data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.dark/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.light/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai.dark/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai.light/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized.dark/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized.light/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/base16/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/colorful/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/github/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox.dark/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox.light/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/igorpro/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/molokai/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/monokai.sublime/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/monokai/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/pastie/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/thankful_eyes/theme.css +0 -0
- data/assets/themes/j1/{extensions → modules}/rouge/css/tulip/theme.css +0 -0
- data/assets/themes/j1/modules/tocbot/css/theme/uno.css +89 -0
- data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +89 -0
- data/assets/themes/j1/modules/tocbot/css/tocbot.css +75 -0
- data/assets/themes/j1/modules/tocbot/css/tocbot.min.css +19 -0
- data/assets/themes/j1/modules/tocbot/js/tocbot.js +19 -0
- data/assets/themes/j1/modules/tocbot/js/tocbot.min.js +19 -0
- data/assets/themes/j1/modules/twemoji/js/LICENSE +21 -0
- data/assets/themes/j1/modules/twemoji/js/picker/LICENSE +21 -0
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +275 -0
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +275 -0
- data/assets/themes/j1/modules/twemoji/js/twemoji.js +589 -0
- data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +25 -0
- data/assets/themes/j1/modules/util/js/js.cookie.js +163 -0
- data/assets/themes/j1/modules/util/js/lite-url.js +203 -0
- data/assets/themes/j1/modules/util/js/lite-url.min.js +7 -0
- data/assets/themes/j1/{extensions/log4javascript/log4javascript.min.js → modules/util/js/log4javascript.js} +0 -2
- data/assets/themes/j1/modules/util/js/platform.js +1260 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/city.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/city.min.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/fantasy.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/fantasy.min.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/forest.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/forest.min.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/sea.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/themes/sea.min.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/video-js.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/css/video-js.min.css +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/js/video.js +0 -0
- data/assets/themes/j1/{extensions → modules}/videojs/js/video.min.js +0 -0
- data/assets/themes/j1/{extensions → modules}/vimeo/froogaloop/js/froogaloop2.min.js +0 -0
- data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.js +0 -0
- data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.js.map +0 -0
- data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.min.js +0 -0
- data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.min.js.map +0 -0
- data/lib/j1/version.rb +1 -1
- data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +391 -389
- data/lib/starter_web/Gemfile +22 -13
- data/lib/starter_web/_config.yml +9 -8
- data/lib/starter_web/_data/_defaults/resources.yml +13 -13
- data/lib/starter_web/_data/blocks/banner.yml +23 -31
- data/lib/starter_web/_data/blocks/footer.yml +10 -3
- data/lib/starter_web/_data/blocks/panel.yml +21 -21
- data/lib/starter_web/_data/layouts/default.yml +10 -0
- data/lib/starter_web/_data/layouts/home.yml +7 -7
- data/lib/starter_web/_data/layouts/page.yml +15 -16
- data/lib/starter_web/_data/modules/advertising.yml +48 -0
- data/lib/starter_web/_data/modules/attics.yml +2 -38
- data/lib/starter_web/_data/modules/cookiebar.yml +2 -2
- data/lib/starter_web/_data/modules/defaults/attics.yml +16 -15
- data/lib/starter_web/_data/modules/defaults/authentication.yml +8 -9
- data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +75 -12
- data/lib/starter_web/_data/modules/defaults/cookiebar.yml +101 -50
- data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +12 -9
- data/lib/starter_web/_data/modules/defaults/navigator.yml +57 -21
- data/lib/starter_web/_data/modules/jekyll_search.yml +1 -20
- data/lib/starter_web/_data/modules/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/navigator_menu.yml +6 -7
- data/lib/starter_web/_data/modules/themer.yml +10 -11
- data/lib/starter_web/_data/resources.yml +379 -174
- data/lib/starter_web/_data/template_settings.yml +96 -4
- data/lib/starter_web/_data/utilities/util_srv.yml +1 -1
- data/lib/starter_web/_plugins/asciidoctor-extensions/banner.rb +43 -0
- data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor-extensions/fas-icon-inline.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor-extensions/iconify-icon-inline.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor-extensions/mdi-icon-inline.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor-extensions/panel.rb +43 -0
- data/lib/starter_web/_plugins/asciidoctor-extensions/twitter-emoji-inline.rb +2 -2
- data/lib/starter_web/_plugins/{asciidoctor-extensions/lorem-inline.rb → lorem-inline.rb} +0 -0
- data/lib/starter_web/_plugins/minifyJS.rb +54 -0
- data/lib/starter_web/_plugins/minifyJSON.rb +47 -0
- data/lib/starter_web/assets/images/pages/material/apple-touch-icon.png +0 -0
- data/lib/starter_web/assets/videos/headers/still/underground-broadway.webp +0 -0
- data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.webp +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +3 -4
- data/lib/starter_web/collections/posts/public/featured/_posts/2018-05-01-confusion-about-base-url.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +17 -17
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +36 -40
- data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +4 -6
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -3
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +3 -3
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +4 -4
- data/lib/starter_web/index.html +12 -13
- data/lib/starter_web/package.json +10 -10
- data/lib/starter_web/pages/{public → protected}/site_search.adoc +2 -2
- data/lib/starter_web/pages/public/blog/navigator/archive.html +24 -18
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +39 -34
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +43 -30
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +29 -29
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -2
- data/lib/starter_web/pages/public/learn/examples/floating_ad.adoc +221 -0
- data/lib/starter_web/pages/public/learn/examples/floating_div.adoc +33 -1
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +1 -0
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +1 -2
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +1 -2
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +16 -18
- data/lib/starter_web/pages/public/learn/roundtrip/000_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +5 -5
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +7 -3
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +36 -45
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +9 -10
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +39 -39
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +20 -22
- data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/000_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/000_includes/documents/100_buttons.asciidoc +0 -0
- data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/mdb_previewer.adoc +2 -2
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +5 -5
- data/lib/starter_web/pages/public/learn/whats_up.adoc +2 -2
- data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +11 -13
- data/lib/starter_web/pages/public/previewer/iframer.adoc +17 -15
- data/lib/starter_web/pages/public/previewer/justified_gallery.html +2 -2
- data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -2
- data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +255 -165
- data/assets/data/colors.json +0 -42
- data/assets/data/cookie_consent.html +0 -223
- data/assets/data/font_sizes.json +0 -42
- data/assets/data/messages.yml +0 -131
- data/assets/data/search.yml +0 -153
- data/assets/themes/j1/adapter/js/cookie_consent.js +0 -277
- data/assets/themes/j1/core/css/custom.scss +0 -28
- data/assets/themes/j1/core/css/globals.css +0 -14523
- data/assets/themes/j1/core/css/globals.min.css +0 -1
- data/assets/themes/j1/core/css/uno.scss +0 -28
- data/assets/themes/j1/core/css/vendor.scss +0 -28
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.absolute.html +0 -86
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.content.html +0 -58
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.hover.html +0 -51
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.nested.html +0 -68
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.textarea.html +0 -46
- data/assets/themes/j1/extensions/iframe_resizer/examples/frame.tolerance.html +0 -79
- data/assets/themes/j1/extensions/iframe_resizer/examples/index.html +0 -70
- data/assets/themes/j1/extensions/iframe_resizer/examples/two.html +0 -71
- data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.js +0 -1104
- data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.map +0 -1
- data/assets/themes/j1/extensions/iframe_resizer/js/client/iframeResizer.contentWindow.min.js +0 -10
- data/assets/themes/j1/extensions/log4javascript/log4javascript.js +0 -5826
- data/lib/starter_web/_data/modules/cookie_consent.yml +0 -128
- data/lib/starter_web/assets/videos/headers/still/underground-broadway.png +0 -0
- data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.png +0 -0
- data/lib/starter_web/pages/public/clear_button.adoc +0 -121
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js
|
4
|
+
# Provides Javascript functions for Bootstrap ThemeSwitcher
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
# https://github.com/jguadagno/bootstrapThemeSwitcher
|
9
|
+
#
|
10
|
+
# Copyright (C) 2020 Juergen Adams
|
11
|
+
# Copyright (C) 2014 Joseph Guadagno
|
12
|
+
#
|
13
|
+
# J1 Template is licensed under the MIT License.
|
14
|
+
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
15
|
+
# Bootstrap Theme Switcher is licensed under the MIT License.
|
16
|
+
# See: https://github.com/jguadagno/bootstrapThemeSwitcher
|
17
|
+
#
|
18
|
+
# -----------------------------------------------------------------------------
|
19
|
+
*/
|
20
|
+
(function(h,i,j,e){var d=h.fn.bootstrapThemeSwitcher;var f=j1.getCookieNames();const n=f.user_state;var m=log4javascript.getLogger("j1.core.switcher");var a;var g;var b={};var k;var c;var l=function(p,o){this.$element=h(p);this.settings=h.extend({},h.fn.bootstrapThemeSwitcher.defaults,o);this.themesList=[];this.getThemes();return this};l.prototype={clear:function(){m.debug("bootstrapThemeSwitcher.clear");return this.$element.each(function(){this.$element.empty()})},update:function(){m.debug("bootstrapThemeSwitcher.update");this.getThemes()},checkStyleSheetByName:function(o){var r=false;var s="/"+o+"/";var q=new RegExp(s,"i");for(var p=0;p<j.styleSheets.length;p++){if(q.test(j.styleSheets[p].href)){r=true;break}}return r},switchTheme:function(p,u){var v=h(this);var r=h.extend({},h.fn.bootstrapThemeSwitcher.defaults,v.data("bootstrapThemeSwitcher"));var t;var x;var w;var q=r.cssThemeLink;var o=r.debug;var s=this.settings.includeBootswatch;g=j1.existsCookie("j1.user.state");if(g){m.debug("user state cookie found");b=j1.readCookie(n)}else{m.error("user state NOT cookie found")}t=b.theme_name;x=b.theme_css;w=b.theme_extension_css;if(u===e){u=this.settings.defaultCssFile}if(p===e){p=u}if(p===this.settings.skipIncludeBootswatch){s=""}if(r.saveToCookie){if(Cookies===e){if(o==="true"){m.error("saveToCookie is set to true but Cookies library is not present")}return false}b.theme_name=p;b.theme_css=u;if(p!="Uno"&&p!="Bootstrap"){b.theme_author="Bootswatch";b.theme_link="https://bootswatch.com/"}else{b.theme_author="J1 Team";b.theme_link="https://jekyll.one/"}j1.writeCookie({name:n,data:b});location.reload(true)}else{m.warn("write to cookie : disabled");m.warn("selected theme not activated: "+p)}},loadThemeFromCookie:function(o){if(Cookies===e){m.error("loadThemeFromCookie was called but Cookies library is not present");return false}var p=h.extend({},h.fn.bootstrapThemeSwitcher.defaults,o);g=j1.existsCookie("j1.user.state");if(g){m.info("User state cookie found");b=j1.readCookie(n)}else{m.error("User state NOT cookie found")}var r=b.theme_name;var q=b.theme_css;this.switchTheme(r,q)},addTheme:function(p,o,r,q){if(r===e){r=0}if(q===e){q=0}this.themesList.splice(r,q,{name:p,css:o});this.addThemesToControl()},addThemesToControl:function(){if(this.$element===e){m.error("bootstrapThemeSelector|addThemesToControl: Element is undefined");return false}if(this.themesList===e){m.error("bootstrapThemeSelector|addThemesToControl: Themes is undefined");return false}if(this.settings.excludeBootswatch){var v;if(this.settings.excludeBootswatch.indexOf(",")!==-1){v=this.settings.excludeBootswatch.split(",")}else{v=[];v.push(this.settings.excludeBootswatch)}var r=this.themesList;h.each(r,function(z,A){if(A&&A.name){if(jQuery.inArray(A.name,v)!==-1){r.splice(z,1)}}});this.themesList=r}var q=this;if(this.$element.is("ul")){var w=h(this);var s=h.extend({},h.fn.bootstrapThemeSwitcher.defaults,w.data("bootstrapThemeSwitcher"));var p=s.cssThemeLink;var t;var o=s.debug;g=j1.existsCookie("j1.user.state");if(g){m.debug("User state cookie found");b=j1.readCookie(n)}else{m.error("User state NOT cookie found")}t=b.theme_name;if(o==="true"){m.debug("bootstrapThemeSelector: UL element selected")}this.$element.empty();var y;var x="#9E9E9E";h.each(this.themesList,function(A,B){y="dropdown-item";if(B.name===t){y="dropdown-item active"}var z=h("<li />").attr("class",y).append('<a href="#"><i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: '+x+'"></i>'+B.name+"</a>").on("click",function(){if(s.loadFromBootswatch){q.switchTheme(B.name,B.css)}else{q.switchTheme(B.name,B.cssCdn)}h(this).parent().find("li").removeClass("active");h(this).addClass("active")});q.$element.append(z)})}else{if(this.$element.is("select")){m.debug("bootstrapThemeSelector: SELECT element selected");this.$element.empty();var u;h.each(this.themesList,function(z,A){u=null;if(A.name===t){u="selected"}if(s.loadFromBootswatch){q.$element.append("<option "+u+" value='"+A.css+"'>"+A.name+"</option>")}else{q.$element.append("<option "+u+" value='"+A.cssCdn+"'>"+A.name+"</option>")}});this.$element.on("change",function(){var z=h("option:selected",this);q.switchTheme(z.text(),z.val())})}else{}}},getThemes:function(){var o=this;if(this.settings.localFeed!==null&&this.settings.localFeed!==""){h.ajax({url:this.settings.localFeed,dataType:"json",success:function(p){o.themesList=p.themes;o.addThemesToControl()},error:function(p,r,q){m.error("Failed to retrieve the local feed from: '"+o.settings.localFeed+"'")}});return true}h.ajax({url:this.settings.bootswatchApiUrl+"/"+this.settings.bootswatchApiVersion+".json",dataType:"json",success:function(p){if(p.themes===e){return null}o.themesList=p.themes;o.themesList.splice(0,0,{name:"default",css:o.settings.defaultCssFile});o.addThemesToControl()}})},themes:function(o){if(o===e){return this.themesList}else{this.themesList=o}}};h.fn.bootstrapThemeSwitcher=function(q){var s;var p=Array.prototype.slice.call(arguments,1);var t=h(this);var r=t.data("bootstrapThemeSwitcher");var o=typeof q==="object"&&q;if(!r){t.data("bootstrapThemeSwitcher",(r=new l(this,o)))}if(typeof q==="string"){s=r[q].apply(r,p)}return(s===e)?t:s};h.fn.bootstrapThemeSwitcher.defaults={debug:false,saveToCookie:true,cssThemeLink:"bootstrapTheme",cookieThemeName:"bootstrapTheme.name",cookieThemeCss:"boostrapTheme.css",cookieExpiration:7,cookiePath:"/",defaultCssFile:"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css",bootswatchApiUrl:"https://bootswatch.com/api/",bootswatchApiVersion:"3",loadFromBootswatch:true,localFeed:"",excludeBootswatch:""};h.fn.bootstrapThemeSwitcher.Constructor=l;h.fn.bootstrapThemeSwitcher.noConflict=function(){h.fn.BootstrapThemeSwitcher=d;return this}})(jQuery,window,document);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/
|
3
|
+
# ~/assets/themes/j1/modules/carousel/css/carousel.min.css
|
4
4
|
# J1 Carousel Styles (Owl Carousel)
|
5
5
|
#
|
6
6
|
# Product/Info:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/
|
3
|
+
# ~/assets/themes/j1/modules/carousel/css/carousel_transitions.css
|
4
4
|
# J1 Carousel CSS3 Transitions (Owl Carousel)
|
5
5
|
#
|
6
6
|
# Product/Info:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/
|
3
|
+
# ~/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css
|
4
4
|
# J1 Carousel CSS3 Transitions (Owl Carousel)
|
5
5
|
#
|
6
6
|
# Product/Info:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright © 2020 Zeno Rocha <hi@zenorocha.com>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,52 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/clipboard/css/theme/uno.css
|
4
|
+
# Provides Clipboard styles for J1 Theme Uno (v2.0.6)
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2020 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
/* Clipboard
|
17
|
+
------------------------------------------------------------------------------- */
|
18
|
+
|
19
|
+
.j1-clipboard {
|
20
|
+
position: relative;
|
21
|
+
display: block;
|
22
|
+
float: right;
|
23
|
+
}
|
24
|
+
|
25
|
+
.btn-clipboard {
|
26
|
+
position: absolute;
|
27
|
+
top: .6rem;
|
28
|
+
right: .5rem;
|
29
|
+
z-index: 3;
|
30
|
+
display: block;
|
31
|
+
padding: .25rem .5rem;
|
32
|
+
font-size: .75rem;
|
33
|
+
color: #9e9e9e;
|
34
|
+
cursor: pointer;
|
35
|
+
text-transform: uppercase;
|
36
|
+
background-color: transparent;
|
37
|
+
border-radius: .25rem;
|
38
|
+
}
|
39
|
+
|
40
|
+
.btn-clipboard:hover {
|
41
|
+
color: #fff;
|
42
|
+
background-color: #9E9E9E;
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
/* NOT used on mobile
|
47
|
+
------------------------------------------------------------------------------- */
|
48
|
+
@media (min-width: 320px) and (max-width: 767px) {
|
49
|
+
.j1-clipboard {
|
50
|
+
display: none;
|
51
|
+
}
|
52
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/clipboard/css/theme/uno.css
|
4
|
+
# Provides Clipboard styles for J1 Theme Uno (v2.0.6)
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2020 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
/* Clipboard
|
17
|
+
------------------------------------------------------------------------------- */
|
18
|
+
|
19
|
+
.j1-clipboard {
|
20
|
+
position: relative;
|
21
|
+
display: block;
|
22
|
+
float: right;
|
23
|
+
}
|
24
|
+
|
25
|
+
.btn-clipboard {
|
26
|
+
position: absolute;
|
27
|
+
top: .6rem;
|
28
|
+
right: .5rem;
|
29
|
+
z-index: 3;
|
30
|
+
display: block;
|
31
|
+
padding: .25rem .5rem;
|
32
|
+
font-size: .75rem;
|
33
|
+
color: #9e9e9e;
|
34
|
+
cursor: pointer;
|
35
|
+
text-transform: uppercase;
|
36
|
+
background-color: transparent;
|
37
|
+
border-radius: .25rem;
|
38
|
+
}
|
39
|
+
|
40
|
+
.btn-clipboard:hover {
|
41
|
+
color: #fff;
|
42
|
+
background-color: #9E9E9E;
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
/* NOT used on mobile
|
47
|
+
------------------------------------------------------------------------------- */
|
48
|
+
@media (min-width: 320px) and (max-width: 767px) {
|
49
|
+
.j1-clipboard {
|
50
|
+
display: none;
|
51
|
+
}
|
52
|
+
}
|
@@ -0,0 +1,975 @@
|
|
1
|
+
/*!
|
2
|
+
* clipboard.js v2.0.6
|
3
|
+
* https://clipboardjs.com/
|
4
|
+
*
|
5
|
+
* Licensed MIT © Zeno Rocha
|
6
|
+
* https://github.com/zenorocha/clipboard.js/blob/master/LICENSE
|
7
|
+
*/
|
8
|
+
|
9
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
10
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
11
|
+
module.exports = factory();
|
12
|
+
else if(typeof define === 'function' && define.amd)
|
13
|
+
define([], factory);
|
14
|
+
else if(typeof exports === 'object')
|
15
|
+
exports["ClipboardJS"] = factory();
|
16
|
+
else
|
17
|
+
root["ClipboardJS"] = factory();
|
18
|
+
})(this, function() {
|
19
|
+
return /******/ (function(modules) { // webpackBootstrap
|
20
|
+
/******/ // The module cache
|
21
|
+
/******/ var installedModules = {};
|
22
|
+
/******/
|
23
|
+
/******/ // The require function
|
24
|
+
/******/ function __webpack_require__(moduleId) {
|
25
|
+
/******/
|
26
|
+
/******/ // Check if module is in cache
|
27
|
+
/******/ if(installedModules[moduleId]) {
|
28
|
+
/******/ return installedModules[moduleId].exports;
|
29
|
+
/******/ }
|
30
|
+
/******/ // Create a new module (and put it into the cache)
|
31
|
+
/******/ var module = installedModules[moduleId] = {
|
32
|
+
/******/ i: moduleId,
|
33
|
+
/******/ l: false,
|
34
|
+
/******/ exports: {}
|
35
|
+
/******/ };
|
36
|
+
/******/
|
37
|
+
/******/ // Execute the module function
|
38
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
39
|
+
/******/
|
40
|
+
/******/ // Flag the module as loaded
|
41
|
+
/******/ module.l = true;
|
42
|
+
/******/
|
43
|
+
/******/ // Return the exports of the module
|
44
|
+
/******/ return module.exports;
|
45
|
+
/******/ }
|
46
|
+
/******/
|
47
|
+
/******/
|
48
|
+
/******/ // expose the modules object (__webpack_modules__)
|
49
|
+
/******/ __webpack_require__.m = modules;
|
50
|
+
/******/
|
51
|
+
/******/ // expose the module cache
|
52
|
+
/******/ __webpack_require__.c = installedModules;
|
53
|
+
/******/
|
54
|
+
/******/ // define getter function for harmony exports
|
55
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
56
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
57
|
+
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
58
|
+
/******/ }
|
59
|
+
/******/ };
|
60
|
+
/******/
|
61
|
+
/******/ // define __esModule on exports
|
62
|
+
/******/ __webpack_require__.r = function(exports) {
|
63
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
64
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
65
|
+
/******/ }
|
66
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
67
|
+
/******/ };
|
68
|
+
/******/
|
69
|
+
/******/ // create a fake namespace object
|
70
|
+
/******/ // mode & 1: value is a module id, require it
|
71
|
+
/******/ // mode & 2: merge all properties of value into the ns
|
72
|
+
/******/ // mode & 4: return value when already ns object
|
73
|
+
/******/ // mode & 8|1: behave like require
|
74
|
+
/******/ __webpack_require__.t = function(value, mode) {
|
75
|
+
/******/ if(mode & 1) value = __webpack_require__(value);
|
76
|
+
/******/ if(mode & 8) return value;
|
77
|
+
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
78
|
+
/******/ var ns = Object.create(null);
|
79
|
+
/******/ __webpack_require__.r(ns);
|
80
|
+
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
81
|
+
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
82
|
+
/******/ return ns;
|
83
|
+
/******/ };
|
84
|
+
/******/
|
85
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
86
|
+
/******/ __webpack_require__.n = function(module) {
|
87
|
+
/******/ var getter = module && module.__esModule ?
|
88
|
+
/******/ function getDefault() { return module['default']; } :
|
89
|
+
/******/ function getModuleExports() { return module; };
|
90
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
91
|
+
/******/ return getter;
|
92
|
+
/******/ };
|
93
|
+
/******/
|
94
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
95
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
96
|
+
/******/
|
97
|
+
/******/ // __webpack_public_path__
|
98
|
+
/******/ __webpack_require__.p = "";
|
99
|
+
/******/
|
100
|
+
/******/
|
101
|
+
/******/ // Load entry module and return exports
|
102
|
+
/******/ return __webpack_require__(__webpack_require__.s = 6);
|
103
|
+
/******/ })
|
104
|
+
/************************************************************************/
|
105
|
+
/******/ ([
|
106
|
+
/* 0 */
|
107
|
+
/***/ (function(module, exports) {
|
108
|
+
|
109
|
+
function select(element) {
|
110
|
+
var selectedText;
|
111
|
+
|
112
|
+
if (element.nodeName === 'SELECT') {
|
113
|
+
element.focus();
|
114
|
+
|
115
|
+
selectedText = element.value;
|
116
|
+
}
|
117
|
+
else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
|
118
|
+
var isReadOnly = element.hasAttribute('readonly');
|
119
|
+
|
120
|
+
if (!isReadOnly) {
|
121
|
+
element.setAttribute('readonly', '');
|
122
|
+
}
|
123
|
+
|
124
|
+
element.select();
|
125
|
+
element.setSelectionRange(0, element.value.length);
|
126
|
+
|
127
|
+
if (!isReadOnly) {
|
128
|
+
element.removeAttribute('readonly');
|
129
|
+
}
|
130
|
+
|
131
|
+
selectedText = element.value;
|
132
|
+
}
|
133
|
+
else {
|
134
|
+
if (element.hasAttribute('contenteditable')) {
|
135
|
+
element.focus();
|
136
|
+
}
|
137
|
+
|
138
|
+
var selection = window.getSelection();
|
139
|
+
var range = document.createRange();
|
140
|
+
|
141
|
+
range.selectNodeContents(element);
|
142
|
+
selection.removeAllRanges();
|
143
|
+
selection.addRange(range);
|
144
|
+
|
145
|
+
selectedText = selection.toString();
|
146
|
+
}
|
147
|
+
|
148
|
+
return selectedText;
|
149
|
+
}
|
150
|
+
|
151
|
+
module.exports = select;
|
152
|
+
|
153
|
+
|
154
|
+
/***/ }),
|
155
|
+
/* 1 */
|
156
|
+
/***/ (function(module, exports) {
|
157
|
+
|
158
|
+
function E () {
|
159
|
+
// Keep this empty so it's easier to inherit from
|
160
|
+
// (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
|
161
|
+
}
|
162
|
+
|
163
|
+
E.prototype = {
|
164
|
+
on: function (name, callback, ctx) {
|
165
|
+
var e = this.e || (this.e = {});
|
166
|
+
|
167
|
+
(e[name] || (e[name] = [])).push({
|
168
|
+
fn: callback,
|
169
|
+
ctx: ctx
|
170
|
+
});
|
171
|
+
|
172
|
+
return this;
|
173
|
+
},
|
174
|
+
|
175
|
+
once: function (name, callback, ctx) {
|
176
|
+
var self = this;
|
177
|
+
function listener () {
|
178
|
+
self.off(name, listener);
|
179
|
+
callback.apply(ctx, arguments);
|
180
|
+
};
|
181
|
+
|
182
|
+
listener._ = callback
|
183
|
+
return this.on(name, listener, ctx);
|
184
|
+
},
|
185
|
+
|
186
|
+
emit: function (name) {
|
187
|
+
var data = [].slice.call(arguments, 1);
|
188
|
+
var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
|
189
|
+
var i = 0;
|
190
|
+
var len = evtArr.length;
|
191
|
+
|
192
|
+
for (i; i < len; i++) {
|
193
|
+
evtArr[i].fn.apply(evtArr[i].ctx, data);
|
194
|
+
}
|
195
|
+
|
196
|
+
return this;
|
197
|
+
},
|
198
|
+
|
199
|
+
off: function (name, callback) {
|
200
|
+
var e = this.e || (this.e = {});
|
201
|
+
var evts = e[name];
|
202
|
+
var liveEvents = [];
|
203
|
+
|
204
|
+
if (evts && callback) {
|
205
|
+
for (var i = 0, len = evts.length; i < len; i++) {
|
206
|
+
if (evts[i].fn !== callback && evts[i].fn._ !== callback)
|
207
|
+
liveEvents.push(evts[i]);
|
208
|
+
}
|
209
|
+
}
|
210
|
+
|
211
|
+
// Remove event from queue to prevent memory leak
|
212
|
+
// Suggested by https://github.com/lazd
|
213
|
+
// Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
|
214
|
+
|
215
|
+
(liveEvents.length)
|
216
|
+
? e[name] = liveEvents
|
217
|
+
: delete e[name];
|
218
|
+
|
219
|
+
return this;
|
220
|
+
}
|
221
|
+
};
|
222
|
+
|
223
|
+
module.exports = E;
|
224
|
+
module.exports.TinyEmitter = E;
|
225
|
+
|
226
|
+
|
227
|
+
/***/ }),
|
228
|
+
/* 2 */
|
229
|
+
/***/ (function(module, exports, __webpack_require__) {
|
230
|
+
|
231
|
+
var is = __webpack_require__(3);
|
232
|
+
var delegate = __webpack_require__(4);
|
233
|
+
|
234
|
+
/**
|
235
|
+
* Validates all params and calls the right
|
236
|
+
* listener function based on its target type.
|
237
|
+
*
|
238
|
+
* @param {String|HTMLElement|HTMLCollection|NodeList} target
|
239
|
+
* @param {String} type
|
240
|
+
* @param {Function} callback
|
241
|
+
* @return {Object}
|
242
|
+
*/
|
243
|
+
function listen(target, type, callback) {
|
244
|
+
if (!target && !type && !callback) {
|
245
|
+
throw new Error('Missing required arguments');
|
246
|
+
}
|
247
|
+
|
248
|
+
if (!is.string(type)) {
|
249
|
+
throw new TypeError('Second argument must be a String');
|
250
|
+
}
|
251
|
+
|
252
|
+
if (!is.fn(callback)) {
|
253
|
+
throw new TypeError('Third argument must be a Function');
|
254
|
+
}
|
255
|
+
|
256
|
+
if (is.node(target)) {
|
257
|
+
return listenNode(target, type, callback);
|
258
|
+
}
|
259
|
+
else if (is.nodeList(target)) {
|
260
|
+
return listenNodeList(target, type, callback);
|
261
|
+
}
|
262
|
+
else if (is.string(target)) {
|
263
|
+
return listenSelector(target, type, callback);
|
264
|
+
}
|
265
|
+
else {
|
266
|
+
throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
|
267
|
+
}
|
268
|
+
}
|
269
|
+
|
270
|
+
/**
|
271
|
+
* Adds an event listener to a HTML element
|
272
|
+
* and returns a remove listener function.
|
273
|
+
*
|
274
|
+
* @param {HTMLElement} node
|
275
|
+
* @param {String} type
|
276
|
+
* @param {Function} callback
|
277
|
+
* @return {Object}
|
278
|
+
*/
|
279
|
+
function listenNode(node, type, callback) {
|
280
|
+
node.addEventListener(type, callback);
|
281
|
+
|
282
|
+
return {
|
283
|
+
destroy: function() {
|
284
|
+
node.removeEventListener(type, callback);
|
285
|
+
}
|
286
|
+
}
|
287
|
+
}
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Add an event listener to a list of HTML elements
|
291
|
+
* and returns a remove listener function.
|
292
|
+
*
|
293
|
+
* @param {NodeList|HTMLCollection} nodeList
|
294
|
+
* @param {String} type
|
295
|
+
* @param {Function} callback
|
296
|
+
* @return {Object}
|
297
|
+
*/
|
298
|
+
function listenNodeList(nodeList, type, callback) {
|
299
|
+
Array.prototype.forEach.call(nodeList, function(node) {
|
300
|
+
node.addEventListener(type, callback);
|
301
|
+
});
|
302
|
+
|
303
|
+
return {
|
304
|
+
destroy: function() {
|
305
|
+
Array.prototype.forEach.call(nodeList, function(node) {
|
306
|
+
node.removeEventListener(type, callback);
|
307
|
+
});
|
308
|
+
}
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
312
|
+
/**
|
313
|
+
* Add an event listener to a selector
|
314
|
+
* and returns a remove listener function.
|
315
|
+
*
|
316
|
+
* @param {String} selector
|
317
|
+
* @param {String} type
|
318
|
+
* @param {Function} callback
|
319
|
+
* @return {Object}
|
320
|
+
*/
|
321
|
+
function listenSelector(selector, type, callback) {
|
322
|
+
return delegate(document.body, selector, type, callback);
|
323
|
+
}
|
324
|
+
|
325
|
+
module.exports = listen;
|
326
|
+
|
327
|
+
|
328
|
+
/***/ }),
|
329
|
+
/* 3 */
|
330
|
+
/***/ (function(module, exports) {
|
331
|
+
|
332
|
+
/**
|
333
|
+
* Check if argument is a HTML element.
|
334
|
+
*
|
335
|
+
* @param {Object} value
|
336
|
+
* @return {Boolean}
|
337
|
+
*/
|
338
|
+
exports.node = function(value) {
|
339
|
+
return value !== undefined
|
340
|
+
&& value instanceof HTMLElement
|
341
|
+
&& value.nodeType === 1;
|
342
|
+
};
|
343
|
+
|
344
|
+
/**
|
345
|
+
* Check if argument is a list of HTML elements.
|
346
|
+
*
|
347
|
+
* @param {Object} value
|
348
|
+
* @return {Boolean}
|
349
|
+
*/
|
350
|
+
exports.nodeList = function(value) {
|
351
|
+
var type = Object.prototype.toString.call(value);
|
352
|
+
|
353
|
+
return value !== undefined
|
354
|
+
&& (type === '[object NodeList]' || type === '[object HTMLCollection]')
|
355
|
+
&& ('length' in value)
|
356
|
+
&& (value.length === 0 || exports.node(value[0]));
|
357
|
+
};
|
358
|
+
|
359
|
+
/**
|
360
|
+
* Check if argument is a string.
|
361
|
+
*
|
362
|
+
* @param {Object} value
|
363
|
+
* @return {Boolean}
|
364
|
+
*/
|
365
|
+
exports.string = function(value) {
|
366
|
+
return typeof value === 'string'
|
367
|
+
|| value instanceof String;
|
368
|
+
};
|
369
|
+
|
370
|
+
/**
|
371
|
+
* Check if argument is a function.
|
372
|
+
*
|
373
|
+
* @param {Object} value
|
374
|
+
* @return {Boolean}
|
375
|
+
*/
|
376
|
+
exports.fn = function(value) {
|
377
|
+
var type = Object.prototype.toString.call(value);
|
378
|
+
|
379
|
+
return type === '[object Function]';
|
380
|
+
};
|
381
|
+
|
382
|
+
|
383
|
+
/***/ }),
|
384
|
+
/* 4 */
|
385
|
+
/***/ (function(module, exports, __webpack_require__) {
|
386
|
+
|
387
|
+
var closest = __webpack_require__(5);
|
388
|
+
|
389
|
+
/**
|
390
|
+
* Delegates event to a selector.
|
391
|
+
*
|
392
|
+
* @param {Element} element
|
393
|
+
* @param {String} selector
|
394
|
+
* @param {String} type
|
395
|
+
* @param {Function} callback
|
396
|
+
* @param {Boolean} useCapture
|
397
|
+
* @return {Object}
|
398
|
+
*/
|
399
|
+
function _delegate(element, selector, type, callback, useCapture) {
|
400
|
+
var listenerFn = listener.apply(this, arguments);
|
401
|
+
|
402
|
+
element.addEventListener(type, listenerFn, useCapture);
|
403
|
+
|
404
|
+
return {
|
405
|
+
destroy: function() {
|
406
|
+
element.removeEventListener(type, listenerFn, useCapture);
|
407
|
+
}
|
408
|
+
}
|
409
|
+
}
|
410
|
+
|
411
|
+
/**
|
412
|
+
* Delegates event to a selector.
|
413
|
+
*
|
414
|
+
* @param {Element|String|Array} [elements]
|
415
|
+
* @param {String} selector
|
416
|
+
* @param {String} type
|
417
|
+
* @param {Function} callback
|
418
|
+
* @param {Boolean} useCapture
|
419
|
+
* @return {Object}
|
420
|
+
*/
|
421
|
+
function delegate(elements, selector, type, callback, useCapture) {
|
422
|
+
// Handle the regular Element usage
|
423
|
+
if (typeof elements.addEventListener === 'function') {
|
424
|
+
return _delegate.apply(null, arguments);
|
425
|
+
}
|
426
|
+
|
427
|
+
// Handle Element-less usage, it defaults to global delegation
|
428
|
+
if (typeof type === 'function') {
|
429
|
+
// Use `document` as the first parameter, then apply arguments
|
430
|
+
// This is a short way to .unshift `arguments` without running into deoptimizations
|
431
|
+
return _delegate.bind(null, document).apply(null, arguments);
|
432
|
+
}
|
433
|
+
|
434
|
+
// Handle Selector-based usage
|
435
|
+
if (typeof elements === 'string') {
|
436
|
+
elements = document.querySelectorAll(elements);
|
437
|
+
}
|
438
|
+
|
439
|
+
// Handle Array-like based usage
|
440
|
+
return Array.prototype.map.call(elements, function (element) {
|
441
|
+
return _delegate(element, selector, type, callback, useCapture);
|
442
|
+
});
|
443
|
+
}
|
444
|
+
|
445
|
+
/**
|
446
|
+
* Finds closest match and invokes callback.
|
447
|
+
*
|
448
|
+
* @param {Element} element
|
449
|
+
* @param {String} selector
|
450
|
+
* @param {String} type
|
451
|
+
* @param {Function} callback
|
452
|
+
* @return {Function}
|
453
|
+
*/
|
454
|
+
function listener(element, selector, type, callback) {
|
455
|
+
return function(e) {
|
456
|
+
e.delegateTarget = closest(e.target, selector);
|
457
|
+
|
458
|
+
if (e.delegateTarget) {
|
459
|
+
callback.call(element, e);
|
460
|
+
}
|
461
|
+
}
|
462
|
+
}
|
463
|
+
|
464
|
+
module.exports = delegate;
|
465
|
+
|
466
|
+
|
467
|
+
/***/ }),
|
468
|
+
/* 5 */
|
469
|
+
/***/ (function(module, exports) {
|
470
|
+
|
471
|
+
var DOCUMENT_NODE_TYPE = 9;
|
472
|
+
|
473
|
+
/**
|
474
|
+
* A polyfill for Element.matches()
|
475
|
+
*/
|
476
|
+
if (typeof Element !== 'undefined' && !Element.prototype.matches) {
|
477
|
+
var proto = Element.prototype;
|
478
|
+
|
479
|
+
proto.matches = proto.matchesSelector ||
|
480
|
+
proto.mozMatchesSelector ||
|
481
|
+
proto.msMatchesSelector ||
|
482
|
+
proto.oMatchesSelector ||
|
483
|
+
proto.webkitMatchesSelector;
|
484
|
+
}
|
485
|
+
|
486
|
+
/**
|
487
|
+
* Finds the closest parent that matches a selector.
|
488
|
+
*
|
489
|
+
* @param {Element} element
|
490
|
+
* @param {String} selector
|
491
|
+
* @return {Function}
|
492
|
+
*/
|
493
|
+
function closest (element, selector) {
|
494
|
+
while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
|
495
|
+
if (typeof element.matches === 'function' &&
|
496
|
+
element.matches(selector)) {
|
497
|
+
return element;
|
498
|
+
}
|
499
|
+
element = element.parentNode;
|
500
|
+
}
|
501
|
+
}
|
502
|
+
|
503
|
+
module.exports = closest;
|
504
|
+
|
505
|
+
|
506
|
+
/***/ }),
|
507
|
+
/* 6 */
|
508
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
509
|
+
|
510
|
+
"use strict";
|
511
|
+
__webpack_require__.r(__webpack_exports__);
|
512
|
+
|
513
|
+
// EXTERNAL MODULE: ./node_modules/select/src/select.js
|
514
|
+
var src_select = __webpack_require__(0);
|
515
|
+
var select_default = /*#__PURE__*/__webpack_require__.n(src_select);
|
516
|
+
|
517
|
+
// CONCATENATED MODULE: ./src/clipboard-action.js
|
518
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
519
|
+
|
520
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
521
|
+
|
522
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
/**
|
527
|
+
* Inner class which performs selection from either `text` or `target`
|
528
|
+
* properties and then executes copy or cut operations.
|
529
|
+
*/
|
530
|
+
|
531
|
+
var clipboard_action_ClipboardAction = function () {
|
532
|
+
/**
|
533
|
+
* @param {Object} options
|
534
|
+
*/
|
535
|
+
function ClipboardAction(options) {
|
536
|
+
_classCallCheck(this, ClipboardAction);
|
537
|
+
|
538
|
+
this.resolveOptions(options);
|
539
|
+
this.initSelection();
|
540
|
+
}
|
541
|
+
|
542
|
+
/**
|
543
|
+
* Defines base properties passed from constructor.
|
544
|
+
* @param {Object} options
|
545
|
+
*/
|
546
|
+
|
547
|
+
|
548
|
+
_createClass(ClipboardAction, [{
|
549
|
+
key: 'resolveOptions',
|
550
|
+
value: function resolveOptions() {
|
551
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
552
|
+
|
553
|
+
this.action = options.action;
|
554
|
+
this.container = options.container;
|
555
|
+
this.emitter = options.emitter;
|
556
|
+
this.target = options.target;
|
557
|
+
this.text = options.text;
|
558
|
+
this.trigger = options.trigger;
|
559
|
+
|
560
|
+
this.selectedText = '';
|
561
|
+
}
|
562
|
+
|
563
|
+
/**
|
564
|
+
* Decides which selection strategy is going to be applied based
|
565
|
+
* on the existence of `text` and `target` properties.
|
566
|
+
*/
|
567
|
+
|
568
|
+
}, {
|
569
|
+
key: 'initSelection',
|
570
|
+
value: function initSelection() {
|
571
|
+
if (this.text) {
|
572
|
+
this.selectFake();
|
573
|
+
} else if (this.target) {
|
574
|
+
this.selectTarget();
|
575
|
+
}
|
576
|
+
}
|
577
|
+
|
578
|
+
/**
|
579
|
+
* Creates a fake textarea element, sets its value from `text` property,
|
580
|
+
* and makes a selection on it.
|
581
|
+
*/
|
582
|
+
|
583
|
+
}, {
|
584
|
+
key: 'selectFake',
|
585
|
+
value: function selectFake() {
|
586
|
+
var _this = this;
|
587
|
+
|
588
|
+
var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
|
589
|
+
|
590
|
+
this.removeFake();
|
591
|
+
|
592
|
+
this.fakeHandlerCallback = function () {
|
593
|
+
return _this.removeFake();
|
594
|
+
};
|
595
|
+
this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
|
596
|
+
|
597
|
+
this.fakeElem = document.createElement('textarea');
|
598
|
+
// Prevent zooming on iOS
|
599
|
+
this.fakeElem.style.fontSize = '12pt';
|
600
|
+
// Reset box model
|
601
|
+
this.fakeElem.style.border = '0';
|
602
|
+
this.fakeElem.style.padding = '0';
|
603
|
+
this.fakeElem.style.margin = '0';
|
604
|
+
// Move element out of screen horizontally
|
605
|
+
this.fakeElem.style.position = 'absolute';
|
606
|
+
this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
|
607
|
+
// Move element to the same position vertically
|
608
|
+
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
609
|
+
this.fakeElem.style.top = yPosition + 'px';
|
610
|
+
|
611
|
+
this.fakeElem.setAttribute('readonly', '');
|
612
|
+
this.fakeElem.value = this.text;
|
613
|
+
|
614
|
+
this.container.appendChild(this.fakeElem);
|
615
|
+
|
616
|
+
this.selectedText = select_default()(this.fakeElem);
|
617
|
+
this.copyText();
|
618
|
+
}
|
619
|
+
|
620
|
+
/**
|
621
|
+
* Only removes the fake element after another click event, that way
|
622
|
+
* a user can hit `Ctrl+C` to copy because selection still exists.
|
623
|
+
*/
|
624
|
+
|
625
|
+
}, {
|
626
|
+
key: 'removeFake',
|
627
|
+
value: function removeFake() {
|
628
|
+
if (this.fakeHandler) {
|
629
|
+
this.container.removeEventListener('click', this.fakeHandlerCallback);
|
630
|
+
this.fakeHandler = null;
|
631
|
+
this.fakeHandlerCallback = null;
|
632
|
+
}
|
633
|
+
|
634
|
+
if (this.fakeElem) {
|
635
|
+
this.container.removeChild(this.fakeElem);
|
636
|
+
this.fakeElem = null;
|
637
|
+
}
|
638
|
+
}
|
639
|
+
|
640
|
+
/**
|
641
|
+
* Selects the content from element passed on `target` property.
|
642
|
+
*/
|
643
|
+
|
644
|
+
}, {
|
645
|
+
key: 'selectTarget',
|
646
|
+
value: function selectTarget() {
|
647
|
+
this.selectedText = select_default()(this.target);
|
648
|
+
this.copyText();
|
649
|
+
}
|
650
|
+
|
651
|
+
/**
|
652
|
+
* Executes the copy operation based on the current selection.
|
653
|
+
*/
|
654
|
+
|
655
|
+
}, {
|
656
|
+
key: 'copyText',
|
657
|
+
value: function copyText() {
|
658
|
+
var succeeded = void 0;
|
659
|
+
|
660
|
+
try {
|
661
|
+
succeeded = document.execCommand(this.action);
|
662
|
+
} catch (err) {
|
663
|
+
succeeded = false;
|
664
|
+
}
|
665
|
+
|
666
|
+
this.handleResult(succeeded);
|
667
|
+
}
|
668
|
+
|
669
|
+
/**
|
670
|
+
* Fires an event based on the copy operation result.
|
671
|
+
* @param {Boolean} succeeded
|
672
|
+
*/
|
673
|
+
|
674
|
+
}, {
|
675
|
+
key: 'handleResult',
|
676
|
+
value: function handleResult(succeeded) {
|
677
|
+
this.emitter.emit(succeeded ? 'success' : 'error', {
|
678
|
+
action: this.action,
|
679
|
+
text: this.selectedText,
|
680
|
+
trigger: this.trigger,
|
681
|
+
clearSelection: this.clearSelection.bind(this)
|
682
|
+
});
|
683
|
+
}
|
684
|
+
|
685
|
+
/**
|
686
|
+
* Moves focus away from `target` and back to the trigger, removes current selection.
|
687
|
+
*/
|
688
|
+
|
689
|
+
}, {
|
690
|
+
key: 'clearSelection',
|
691
|
+
value: function clearSelection() {
|
692
|
+
if (this.trigger) {
|
693
|
+
this.trigger.focus();
|
694
|
+
}
|
695
|
+
document.activeElement.blur();
|
696
|
+
window.getSelection().removeAllRanges();
|
697
|
+
}
|
698
|
+
|
699
|
+
/**
|
700
|
+
* Sets the `action` to be performed which can be either 'copy' or 'cut'.
|
701
|
+
* @param {String} action
|
702
|
+
*/
|
703
|
+
|
704
|
+
}, {
|
705
|
+
key: 'destroy',
|
706
|
+
|
707
|
+
|
708
|
+
/**
|
709
|
+
* Destroy lifecycle.
|
710
|
+
*/
|
711
|
+
value: function destroy() {
|
712
|
+
this.removeFake();
|
713
|
+
}
|
714
|
+
}, {
|
715
|
+
key: 'action',
|
716
|
+
set: function set() {
|
717
|
+
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
|
718
|
+
|
719
|
+
this._action = action;
|
720
|
+
|
721
|
+
if (this._action !== 'copy' && this._action !== 'cut') {
|
722
|
+
throw new Error('Invalid "action" value, use either "copy" or "cut"');
|
723
|
+
}
|
724
|
+
}
|
725
|
+
|
726
|
+
/**
|
727
|
+
* Gets the `action` property.
|
728
|
+
* @return {String}
|
729
|
+
*/
|
730
|
+
,
|
731
|
+
get: function get() {
|
732
|
+
return this._action;
|
733
|
+
}
|
734
|
+
|
735
|
+
/**
|
736
|
+
* Sets the `target` property using an element
|
737
|
+
* that will be have its content copied.
|
738
|
+
* @param {Element} target
|
739
|
+
*/
|
740
|
+
|
741
|
+
}, {
|
742
|
+
key: 'target',
|
743
|
+
set: function set(target) {
|
744
|
+
if (target !== undefined) {
|
745
|
+
if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
|
746
|
+
if (this.action === 'copy' && target.hasAttribute('disabled')) {
|
747
|
+
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
|
748
|
+
}
|
749
|
+
|
750
|
+
if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
|
751
|
+
throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
|
752
|
+
}
|
753
|
+
|
754
|
+
this._target = target;
|
755
|
+
} else {
|
756
|
+
throw new Error('Invalid "target" value, use a valid Element');
|
757
|
+
}
|
758
|
+
}
|
759
|
+
}
|
760
|
+
|
761
|
+
/**
|
762
|
+
* Gets the `target` property.
|
763
|
+
* @return {String|HTMLElement}
|
764
|
+
*/
|
765
|
+
,
|
766
|
+
get: function get() {
|
767
|
+
return this._target;
|
768
|
+
}
|
769
|
+
}]);
|
770
|
+
|
771
|
+
return ClipboardAction;
|
772
|
+
}();
|
773
|
+
|
774
|
+
/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);
|
775
|
+
// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js
|
776
|
+
var tiny_emitter = __webpack_require__(1);
|
777
|
+
var tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);
|
778
|
+
|
779
|
+
// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js
|
780
|
+
var listen = __webpack_require__(2);
|
781
|
+
var listen_default = /*#__PURE__*/__webpack_require__.n(listen);
|
782
|
+
|
783
|
+
// CONCATENATED MODULE: ./src/clipboard.js
|
784
|
+
var clipboard_typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
785
|
+
|
786
|
+
var clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
787
|
+
|
788
|
+
function clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
789
|
+
|
790
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
791
|
+
|
792
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
793
|
+
|
794
|
+
|
795
|
+
|
796
|
+
|
797
|
+
|
798
|
+
/**
|
799
|
+
* Base class which takes one or more elements, adds event listeners to them,
|
800
|
+
* and instantiates a new `ClipboardAction` on each click.
|
801
|
+
*/
|
802
|
+
|
803
|
+
var clipboard_Clipboard = function (_Emitter) {
|
804
|
+
_inherits(Clipboard, _Emitter);
|
805
|
+
|
806
|
+
/**
|
807
|
+
* @param {String|HTMLElement|HTMLCollection|NodeList} trigger
|
808
|
+
* @param {Object} options
|
809
|
+
*/
|
810
|
+
function Clipboard(trigger, options) {
|
811
|
+
clipboard_classCallCheck(this, Clipboard);
|
812
|
+
|
813
|
+
var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
|
814
|
+
|
815
|
+
_this.resolveOptions(options);
|
816
|
+
_this.listenClick(trigger);
|
817
|
+
return _this;
|
818
|
+
}
|
819
|
+
|
820
|
+
/**
|
821
|
+
* Defines if attributes would be resolved using internal setter functions
|
822
|
+
* or custom functions that were passed in the constructor.
|
823
|
+
* @param {Object} options
|
824
|
+
*/
|
825
|
+
|
826
|
+
|
827
|
+
clipboard_createClass(Clipboard, [{
|
828
|
+
key: 'resolveOptions',
|
829
|
+
value: function resolveOptions() {
|
830
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
831
|
+
|
832
|
+
this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
|
833
|
+
this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
|
834
|
+
this.text = typeof options.text === 'function' ? options.text : this.defaultText;
|
835
|
+
this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;
|
836
|
+
}
|
837
|
+
|
838
|
+
/**
|
839
|
+
* Adds a click event listener to the passed trigger.
|
840
|
+
* @param {String|HTMLElement|HTMLCollection|NodeList} trigger
|
841
|
+
*/
|
842
|
+
|
843
|
+
}, {
|
844
|
+
key: 'listenClick',
|
845
|
+
value: function listenClick(trigger) {
|
846
|
+
var _this2 = this;
|
847
|
+
|
848
|
+
this.listener = listen_default()(trigger, 'click', function (e) {
|
849
|
+
return _this2.onClick(e);
|
850
|
+
});
|
851
|
+
}
|
852
|
+
|
853
|
+
/**
|
854
|
+
* Defines a new `ClipboardAction` on each click event.
|
855
|
+
* @param {Event} e
|
856
|
+
*/
|
857
|
+
|
858
|
+
}, {
|
859
|
+
key: 'onClick',
|
860
|
+
value: function onClick(e) {
|
861
|
+
var trigger = e.delegateTarget || e.currentTarget;
|
862
|
+
|
863
|
+
if (this.clipboardAction) {
|
864
|
+
this.clipboardAction = null;
|
865
|
+
}
|
866
|
+
|
867
|
+
this.clipboardAction = new clipboard_action({
|
868
|
+
action: this.action(trigger),
|
869
|
+
target: this.target(trigger),
|
870
|
+
text: this.text(trigger),
|
871
|
+
container: this.container,
|
872
|
+
trigger: trigger,
|
873
|
+
emitter: this
|
874
|
+
});
|
875
|
+
}
|
876
|
+
|
877
|
+
/**
|
878
|
+
* Default `action` lookup function.
|
879
|
+
* @param {Element} trigger
|
880
|
+
*/
|
881
|
+
|
882
|
+
}, {
|
883
|
+
key: 'defaultAction',
|
884
|
+
value: function defaultAction(trigger) {
|
885
|
+
return getAttributeValue('action', trigger);
|
886
|
+
}
|
887
|
+
|
888
|
+
/**
|
889
|
+
* Default `target` lookup function.
|
890
|
+
* @param {Element} trigger
|
891
|
+
*/
|
892
|
+
|
893
|
+
}, {
|
894
|
+
key: 'defaultTarget',
|
895
|
+
value: function defaultTarget(trigger) {
|
896
|
+
var selector = getAttributeValue('target', trigger);
|
897
|
+
|
898
|
+
if (selector) {
|
899
|
+
return document.querySelector(selector);
|
900
|
+
}
|
901
|
+
}
|
902
|
+
|
903
|
+
/**
|
904
|
+
* Returns the support of the given action, or all actions if no action is
|
905
|
+
* given.
|
906
|
+
* @param {String} [action]
|
907
|
+
*/
|
908
|
+
|
909
|
+
}, {
|
910
|
+
key: 'defaultText',
|
911
|
+
|
912
|
+
|
913
|
+
/**
|
914
|
+
* Default `text` lookup function.
|
915
|
+
* @param {Element} trigger
|
916
|
+
*/
|
917
|
+
value: function defaultText(trigger) {
|
918
|
+
return getAttributeValue('text', trigger);
|
919
|
+
}
|
920
|
+
|
921
|
+
/**
|
922
|
+
* Destroy lifecycle.
|
923
|
+
*/
|
924
|
+
|
925
|
+
}, {
|
926
|
+
key: 'destroy',
|
927
|
+
value: function destroy() {
|
928
|
+
this.listener.destroy();
|
929
|
+
|
930
|
+
if (this.clipboardAction) {
|
931
|
+
this.clipboardAction.destroy();
|
932
|
+
this.clipboardAction = null;
|
933
|
+
}
|
934
|
+
}
|
935
|
+
}], [{
|
936
|
+
key: 'isSupported',
|
937
|
+
value: function isSupported() {
|
938
|
+
var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
|
939
|
+
|
940
|
+
var actions = typeof action === 'string' ? [action] : action;
|
941
|
+
var support = !!document.queryCommandSupported;
|
942
|
+
|
943
|
+
actions.forEach(function (action) {
|
944
|
+
support = support && !!document.queryCommandSupported(action);
|
945
|
+
});
|
946
|
+
|
947
|
+
return support;
|
948
|
+
}
|
949
|
+
}]);
|
950
|
+
|
951
|
+
return Clipboard;
|
952
|
+
}(tiny_emitter_default.a);
|
953
|
+
|
954
|
+
/**
|
955
|
+
* Helper function to retrieve attribute value.
|
956
|
+
* @param {String} suffix
|
957
|
+
* @param {Element} element
|
958
|
+
*/
|
959
|
+
|
960
|
+
|
961
|
+
function getAttributeValue(suffix, element) {
|
962
|
+
var attribute = 'data-clipboard-' + suffix;
|
963
|
+
|
964
|
+
if (!element.hasAttribute(attribute)) {
|
965
|
+
return;
|
966
|
+
}
|
967
|
+
|
968
|
+
return element.getAttribute(attribute);
|
969
|
+
}
|
970
|
+
|
971
|
+
/* harmony default export */ var clipboard = __webpack_exports__["default"] = (clipboard_Clipboard);
|
972
|
+
|
973
|
+
/***/ })
|
974
|
+
/******/ ])["default"];
|
975
|
+
});
|