@thegetty/quire-cli 0.20.3 → 0.20.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/bin/.DS_Store +0 -0
- package/bin/go-iiif/.DS_Store +0 -0
- package/bin/index.js +2 -0
- package/bin/starters/.DS_Store +0 -0
- package/bin/starters/README.md +0 -0
- package/bin/starters/default/.circleci/config.yml +98 -0
- package/bin/starters/default/.gitignore +14 -0
- package/bin/starters/default/.nojekyll +0 -0
- package/bin/starters/default/CHANGELOG.md +38 -0
- package/bin/starters/default/README.md +25 -0
- package/bin/starters/default/bin/deploy.sh +25 -0
- package/bin/starters/default/config/_default/config.yml +53 -0
- package/bin/starters/default/config/development/config.yml +14 -0
- package/bin/starters/default/config/environments/dev.yml +14 -0
- package/bin/starters/default/config/environments/github.yml +15 -0
- package/bin/starters/default/config/environments/netlify.yml +18 -0
- package/bin/starters/default/config/epub.yml +15 -0
- package/bin/starters/default/config/pdf.yml +16 -0
- package/bin/starters/default/config/site.yml +13 -0
- package/bin/starters/default/config.yml +53 -0
- package/bin/starters/default/content/about.md +20 -0
- package/bin/starters/default/content/bibliography.md +7 -0
- package/bin/starters/default/content/catalogue/1.md +28 -0
- package/bin/starters/default/content/catalogue/2.md +29 -0
- package/bin/starters/default/content/catalogue/3.md +20 -0
- package/bin/starters/default/content/catalogue/4.md +22 -0
- package/bin/starters/default/content/catalogue/catalogue-index.md +8 -0
- package/bin/starters/default/content/contents.md +7 -0
- package/bin/starters/default/content/contributors.md +7 -0
- package/bin/starters/default/content/cover.md +11 -0
- package/bin/starters/default/content/essay.md +80 -0
- package/bin/starters/default/content/intro.md +21 -0
- package/bin/starters/default/content/search-index.md +8 -0
- package/bin/starters/default/data/figures.yml +90 -0
- package/bin/starters/default/data/objects.yml +49 -0
- package/bin/starters/default/data/publication.yml +149 -0
- package/bin/starters/default/data/references.yml +11 -0
- package/bin/starters/default/static/css/custom.css +0 -0
- package/bin/starters/default/static/data/sample-geojson.json +16 -0
- package/bin/starters/default/static/downloads/.gitkeep +0 -0
- package/bin/starters/default/static/downloads/output.epub +0 -0
- package/bin/starters/default/static/downloads/output.mobi +0 -0
- package/bin/starters/default/static/downloads/output.pdf +0 -0
- package/bin/starters/default/static/img/contributors/judith-keller.jpg +0 -0
- package/bin/starters/default/static/img/cover.png +0 -0
- package/bin/starters/default/static/img/figures/duo.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-burroughs.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-child.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-graveyard.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-hymns.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-legionnaire.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-refugee.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-sons.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-video-still.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans-washroom.jpg +0 -0
- package/bin/starters/default/static/img/figures/evans.jpg +0 -0
- package/bin/starters/default/static/img/figures/family.jpg +0 -0
- package/bin/starters/default/static/img/figures/lange-house.jpg +0 -0
- package/bin/starters/default/static/img/figures/lange.jpg +0 -0
- package/bin/starters/default/static/img/figures/mother-b.jpg +0 -0
- package/bin/starters/default/static/img/figures/mother-c.jpg +0 -0
- package/bin/starters/default/static/img/figures/mother.jpg +0 -0
- package/bin/starters/default/static/img/figures/pickers.jpg +0 -0
- package/bin/starters/default/static/img/logo-getty.png +0 -0
- package/bin/starters/default/static/img/pattern-spiral-overlay.png +0 -0
- package/bin/starters/default/static/js/custom.js +4 -0
- package/bin/themes/README.md +0 -0
- package/bin/themes/default/.circleci/config.yml +62 -0
- package/bin/themes/default/.eslintrc.js +16 -0
- package/bin/themes/default/.gitignore +13 -0
- package/bin/themes/default/.scss-lint.yml +239 -0
- package/bin/themes/default/CHANGELOG.md +73 -0
- package/bin/themes/default/LICENSE.md +20 -0
- package/bin/themes/default/README.md +112 -0
- package/bin/themes/default/archetypes/default.md +2 -0
- package/bin/themes/default/cypress.json +7 -0
- package/bin/themes/default/layouts/404.html +0 -0
- package/bin/themes/default/layouts/_default/baseof.html +43 -0
- package/bin/themes/default/layouts/_default/single.html +26 -0
- package/bin/themes/default/layouts/contents/single.html +37 -0
- package/bin/themes/default/layouts/cover/single.html +128 -0
- package/bin/themes/default/layouts/data/search-index.html +65 -0
- package/bin/themes/default/layouts/entry/single.html +372 -0
- package/bin/themes/default/layouts/essay/single.html +24 -0
- package/bin/themes/default/layouts/partials/analytics.html +29 -0
- package/bin/themes/default/layouts/partials/cite-this.html +348 -0
- package/bin/themes/default/layouts/partials/contents-list/card-image.html +13 -0
- package/bin/themes/default/layouts/partials/contents-list/closing-tags.html +59 -0
- package/bin/themes/default/layouts/partials/contents-list/contents-list.html +179 -0
- package/bin/themes/default/layouts/partials/contents-list/file-dir.html +7 -0
- package/bin/themes/default/layouts/partials/contents-list/file-path.html +10 -0
- package/bin/themes/default/layouts/partials/contents-list/list-item-type.html +9 -0
- package/bin/themes/default/layouts/partials/contents-list/list-item-types/abstract.html +17 -0
- package/bin/themes/default/layouts/partials/contents-list/list-item-types/brief.html +7 -0
- package/bin/themes/default/layouts/partials/contents-list/list-item-types/default.html +9 -0
- package/bin/themes/default/layouts/partials/contents-list/list-item-types/grid.html +30 -0
- package/bin/themes/default/layouts/partials/contents-list/section-heading.html +5 -0
- package/bin/themes/default/layouts/partials/contents-list.html +207 -0
- package/bin/themes/default/layouts/partials/contributor-info.html +78 -0
- package/bin/themes/default/layouts/partials/contributor-list.html +102 -0
- package/bin/themes/default/layouts/partials/copyright.html +155 -0
- package/bin/themes/default/layouts/partials/debug-contents.html +8 -0
- package/bin/themes/default/layouts/partials/dublin-core.html +21 -0
- package/bin/themes/default/layouts/partials/error-message.html +19 -0
- package/bin/themes/default/layouts/partials/figure-caption.html +1 -0
- package/bin/themes/default/layouts/partials/figure-fallback.html +31 -0
- package/bin/themes/default/layouts/partials/figure-image.html +44 -0
- package/bin/themes/default/layouts/partials/figure-label.html +15 -0
- package/bin/themes/default/layouts/partials/figure-soundcloud.html +25 -0
- package/bin/themes/default/layouts/partials/figure-table.html +44 -0
- package/bin/themes/default/layouts/partials/figure-vimeo.html +24 -0
- package/bin/themes/default/layouts/partials/figure-website.html +21 -0
- package/bin/themes/default/layouts/partials/figure-youtube.html +23 -0
- package/bin/themes/default/layouts/partials/figures/caption.html +44 -0
- package/bin/themes/default/layouts/partials/figures/label.html +35 -0
- package/bin/themes/default/layouts/partials/figures/media-types/fallback.html +32 -0
- package/bin/themes/default/layouts/partials/figures/media-types/image.html +54 -0
- package/bin/themes/default/layouts/partials/figures/media-types/soundcloud.html +35 -0
- package/bin/themes/default/layouts/partials/figures/media-types/table.html +53 -0
- package/bin/themes/default/layouts/partials/figures/media-types/vimeo.html +34 -0
- package/bin/themes/default/layouts/partials/figures/media-types/website.html +24 -0
- package/bin/themes/default/layouts/partials/figures/media-types/youtube.html +29 -0
- package/bin/themes/default/layouts/partials/footer-buttons.html +29 -0
- package/bin/themes/default/layouts/partials/head.html +46 -0
- package/bin/themes/default/layouts/partials/icon.html +20 -0
- package/bin/themes/default/layouts/partials/icons-cc.html +86 -0
- package/bin/themes/default/layouts/partials/icons.html +54 -0
- package/bin/themes/default/layouts/partials/json-ld.html +117 -0
- package/bin/themes/default/layouts/partials/link-list-arrow.html +16 -0
- package/bin/themes/default/layouts/partials/link-list.html +11 -0
- package/bin/themes/default/layouts/partials/menu-header.html +25 -0
- package/bin/themes/default/layouts/partials/menu.html +69 -0
- package/bin/themes/default/layouts/partials/metadata.html +27 -0
- package/bin/themes/default/layouts/partials/navbar.html +173 -0
- package/bin/themes/default/layouts/partials/open-graph.html +43 -0
- package/bin/themes/default/layouts/partials/page-abstract.html +7 -0
- package/bin/themes/default/layouts/partials/page-bibliography.html +59 -0
- package/bin/themes/default/layouts/partials/page-class.html +9 -0
- package/bin/themes/default/layouts/partials/page-contributor.html +48 -0
- package/bin/themes/default/layouts/partials/page-header.html +22 -0
- package/bin/themes/default/layouts/partials/page-title.html +9 -0
- package/bin/themes/default/layouts/partials/page-tombstone.html +36 -0
- package/bin/themes/default/layouts/partials/pdf-info.html +20 -0
- package/bin/themes/default/layouts/partials/pdf-title-pages.html +39 -0
- package/bin/themes/default/layouts/partials/scripts.html +5 -0
- package/bin/themes/default/layouts/partials/search.html +52 -0
- package/bin/themes/default/layouts/partials/site-title.html +9 -0
- package/bin/themes/default/layouts/partials/tests/check-node-modules.html +9 -0
- package/bin/themes/default/layouts/partials/tests/check-page-one-class.html +21 -0
- package/bin/themes/default/layouts/partials/tests/check-page-weights.html +49 -0
- package/bin/themes/default/layouts/partials/tests/run.html +13 -0
- package/bin/themes/default/layouts/partials/twitter-card.html +23 -0
- package/bin/themes/default/layouts/shortcodes/q-bibliography.html +61 -0
- package/bin/themes/default/layouts/shortcodes/q-cite.html +79 -0
- package/bin/themes/default/layouts/shortcodes/q-class.html +3 -0
- package/bin/themes/default/layouts/shortcodes/q-contributor.html +327 -0
- package/bin/themes/default/layouts/shortcodes/q-contributors.html +11 -0
- package/bin/themes/default/layouts/shortcodes/q-figure-group.html +457 -0
- package/bin/themes/default/layouts/shortcodes/q-figure-new.html +70 -0
- package/bin/themes/default/layouts/shortcodes/q-figure-zoom.html +408 -0
- package/bin/themes/default/layouts/shortcodes/q-figure.html +86 -0
- package/bin/themes/default/layouts/sitemap.xml +24 -0
- package/bin/themes/default/layouts/splash/single.html +67 -0
- package/bin/themes/default/package-lock.json +13198 -0
- package/bin/themes/default/package.json +96 -0
- package/bin/themes/default/source/css/application.scss +30 -0
- package/bin/themes/default/source/css/bulma-components.scss +21 -0
- package/bin/themes/default/source/css/colors.scss +16 -0
- package/bin/themes/default/source/css/components/_all.scss +15 -0
- package/bin/themes/default/source/css/components/container.sass +35 -0
- package/bin/themes/default/source/css/components/quire-buttons.scss +95 -0
- package/bin/themes/default/source/css/components/quire-citation.scss +77 -0
- package/bin/themes/default/source/css/components/quire-contents-list.scss +329 -0
- package/bin/themes/default/source/css/components/quire-contributors.scss +131 -0
- package/bin/themes/default/source/css/components/quire-copyright.scss +28 -0
- package/bin/themes/default/source/css/components/quire-cover.scss +216 -0
- package/bin/themes/default/source/css/components/quire-deepzoom.scss +181 -0
- package/bin/themes/default/source/css/components/quire-entry.scss +651 -0
- package/bin/themes/default/source/css/components/quire-figure.scss +589 -0
- package/bin/themes/default/source/css/components/quire-map.scss +17 -0
- package/bin/themes/default/source/css/components/quire-menu.scss +209 -0
- package/bin/themes/default/source/css/components/quire-navbar.scss +366 -0
- package/bin/themes/default/source/css/components/quire-page.scss +920 -0
- package/bin/themes/default/source/css/components/quire-popup.scss +233 -0
- package/bin/themes/default/source/css/components/quire-search.scss +121 -0
- package/bin/themes/default/source/css/epub.scss +549 -0
- package/bin/themes/default/source/css/fonts.scss +159 -0
- package/bin/themes/default/source/css/layout.scss +186 -0
- package/bin/themes/default/source/css/print.scss +613 -0
- package/bin/themes/default/source/css/utilities.scss +345 -0
- package/bin/themes/default/source/css/variables.scss +144 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.eot +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.woff +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.woff2 +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.eot +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.woff +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.woff2 +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.eot +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.woff +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.woff2 +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.eot +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.woff +0 -0
- package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bold.eot +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bold.woff +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bold.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.eot +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.woff +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-italic.eot +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-italic.woff +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-italic.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-regular.eot +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-regular.woff +0 -0
- package/bin/themes/default/source/fonts/noto-sans/notosans-regular.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.eot +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.woff +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.eot +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.woff +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.eot +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.woff +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.woff2 +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.eot +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.woff +0 -0
- package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.woff2 +0 -0
- package/bin/themes/default/source/img/cover.png +0 -0
- package/bin/themes/default/source/img/fullscreen.png +0 -0
- package/bin/themes/default/source/img/icons/arrow_forward.png +0 -0
- package/bin/themes/default/source/img/icons/baseline-headset-24px.png +0 -0
- package/bin/themes/default/source/img/icons/baseline-videocam-24px.png +0 -0
- package/bin/themes/default/source/img/icons/baseline-website-24px.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by-nc-nd.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by-nc-sa.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by-nc.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by-nd.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by-sa.png +0 -0
- package/bin/themes/default/source/img/icons/cc-by.png +0 -0
- package/bin/themes/default/source/img/icons/cc-zero.png +0 -0
- package/bin/themes/default/source/img/icons/close.png +0 -0
- package/bin/themes/default/source/img/icons/down-arrow.png +0 -0
- package/bin/themes/default/source/img/icons/download.png +0 -0
- package/bin/themes/default/source/img/icons/favicon.ico +0 -0
- package/bin/themes/default/source/img/icons/home.png +0 -0
- package/bin/themes/default/source/img/icons/left-arrow.png +0 -0
- package/bin/themes/default/source/img/icons/link.png +0 -0
- package/bin/themes/default/source/img/icons/nav.png +0 -0
- package/bin/themes/default/source/img/icons/right-arrow.png +0 -0
- package/bin/themes/default/source/img/icons/search.png +0 -0
- package/bin/themes/default/source/img/icons/start.png +0 -0
- package/bin/themes/default/source/img/layers-2x.png +0 -0
- package/bin/themes/default/source/img/layers.png +0 -0
- package/bin/themes/default/source/img/marker-icon.png +0 -0
- package/bin/themes/default/source/img/pattern-spiral-overlay.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/classic-catalogue.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/classic-entry.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/classic-essay.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/modern-contents.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/modern-cover.png +0 -0
- package/bin/themes/default/source/img/promo-screenshots/modern-essay.png +0 -0
- package/bin/themes/default/source/js/application.js +604 -0
- package/bin/themes/default/source/js/deepzoom.js +186 -0
- package/bin/themes/default/source/js/epub.js +9 -0
- package/bin/themes/default/source/js/fullscreen.js +190 -0
- package/bin/themes/default/source/js/helper.js +197 -0
- package/bin/themes/default/source/js/map.js +94 -0
- package/bin/themes/default/source/js/navigation.js +59 -0
- package/bin/themes/default/source/js/popup.js +311 -0
- package/bin/themes/default/source/js/search.js +35 -0
- package/bin/themes/default/source/js/soundcloud-api.js +1 -0
- package/bin/themes/default/static/css/epub.css +401 -0
- package/bin/themes/default/static/fonts/MaterialIcons-Regular.eot +0 -0
- package/bin/themes/default/static/fonts/MaterialIcons-Regular.woff +0 -0
- package/bin/themes/default/static/fonts/MaterialIcons-Regular.woff2 +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.eot +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.woff +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.woff2 +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.eot +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.woff +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.woff2 +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.eot +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.woff +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.woff2 +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.eot +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.woff +0 -0
- package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.woff2 +0 -0
- package/bin/themes/default/static/fonts/notosans-bold.eot +0 -0
- package/bin/themes/default/static/fonts/notosans-bold.woff +0 -0
- package/bin/themes/default/static/fonts/notosans-bold.woff2 +0 -0
- package/bin/themes/default/static/fonts/notosans-bolditalic.eot +0 -0
- package/bin/themes/default/static/fonts/notosans-bolditalic.woff +0 -0
- package/bin/themes/default/static/fonts/notosans-bolditalic.woff2 +0 -0
- package/bin/themes/default/static/fonts/notosans-italic.eot +0 -0
- package/bin/themes/default/static/fonts/notosans-italic.woff +0 -0
- package/bin/themes/default/static/fonts/notosans-italic.woff2 +0 -0
- package/bin/themes/default/static/fonts/notosans-regular.eot +0 -0
- package/bin/themes/default/static/fonts/notosans-regular.woff +0 -0
- package/bin/themes/default/static/fonts/notosans-regular.woff2 +0 -0
- package/bin/themes/default/static/fonts/notoserif-bold.eot +0 -0
- package/bin/themes/default/static/fonts/notoserif-bold.woff +0 -0
- package/bin/themes/default/static/fonts/notoserif-bold.woff2 +0 -0
- package/bin/themes/default/static/fonts/notoserif-bolditalic.eot +0 -0
- package/bin/themes/default/static/fonts/notoserif-bolditalic.woff +0 -0
- package/bin/themes/default/static/fonts/notoserif-bolditalic.woff2 +0 -0
- package/bin/themes/default/static/fonts/notoserif-italic.eot +0 -0
- package/bin/themes/default/static/fonts/notoserif-italic.woff +0 -0
- package/bin/themes/default/static/fonts/notoserif-italic.woff2 +0 -0
- package/bin/themes/default/static/fonts/notoserif-regular.eot +0 -0
- package/bin/themes/default/static/fonts/notoserif-regular.woff +0 -0
- package/bin/themes/default/static/fonts/notoserif-regular.woff2 +0 -0
- package/bin/themes/default/static/img/baseline-website-24px.png +0 -0
- package/bin/themes/default/static/img/cover.png +0 -0
- package/bin/themes/default/static/img/fullscreen.png +0 -0
- package/bin/themes/default/static/img/fullscreen@2x.png +0 -0
- package/bin/themes/default/static/img/icons/arrow_forward.png +0 -0
- package/bin/themes/default/static/img/icons/baseline-headset-24px.png +0 -0
- package/bin/themes/default/static/img/icons/baseline-videocam-24px.png +0 -0
- package/bin/themes/default/static/img/icons/baseline-website-24px.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by-nc-nd.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by-nc-sa.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by-nc.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by-nd.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by-sa.png +0 -0
- package/bin/themes/default/static/img/icons/cc-by.png +0 -0
- package/bin/themes/default/static/img/icons/cc-zero.png +0 -0
- package/bin/themes/default/static/img/icons/close.png +0 -0
- package/bin/themes/default/static/img/icons/down-arrow.png +0 -0
- package/bin/themes/default/static/img/icons/download.png +0 -0
- package/bin/themes/default/static/img/icons/favicon.ico +0 -0
- package/bin/themes/default/static/img/icons/home.png +0 -0
- package/bin/themes/default/static/img/icons/left-arrow.png +0 -0
- package/bin/themes/default/static/img/icons/link.png +0 -0
- package/bin/themes/default/static/img/icons/nav.png +0 -0
- package/bin/themes/default/static/img/icons/right-arrow.png +0 -0
- package/bin/themes/default/static/img/icons/search.png +0 -0
- package/bin/themes/default/static/img/icons/soundcloud.png +0 -0
- package/bin/themes/default/static/img/icons/start.png +0 -0
- package/bin/themes/default/static/img/icons/vimeo.png +0 -0
- package/bin/themes/default/static/img/icons/website.png +0 -0
- package/bin/themes/default/static/img/icons/youtube.png +0 -0
- package/bin/themes/default/static/img/layers-2x.png +0 -0
- package/bin/themes/default/static/img/layers.png +0 -0
- package/bin/themes/default/static/img/marker-icon.png +0 -0
- package/bin/themes/default/static/img/pattern-spiral-overlay.png +0 -0
- package/bin/themes/default/tests/.gitkeep +0 -0
- package/bin/themes/default/tests/e2e/.eslintrc.js +9 -0
- package/bin/themes/default/tests/e2e/fixtures/blns.json +483 -0
- package/bin/themes/default/tests/e2e/plugins/index.js +22 -0
- package/bin/themes/default/tests/e2e/specs/quire-contents.spec.js +52 -0
- package/bin/themes/default/tests/e2e/specs/quire-contributors.spec.js +66 -0
- package/bin/themes/default/tests/e2e/specs/quire-entry.spec.js +104 -0
- package/bin/themes/default/tests/e2e/specs/quire-essay.spec.js +105 -0
- package/bin/themes/default/tests/e2e/specs/quire-menu.spec.js +38 -0
- package/bin/themes/default/tests/e2e/specs/quire-modal.spec.js +69 -0
- package/bin/themes/default/tests/e2e/specs/quire-next-back-buttons.spec.js +27 -0
- package/bin/themes/default/tests/e2e/specs/quire-page.spec.js +28 -0
- package/bin/themes/default/tests/e2e/specs/quire-search.spec.js +48 -0
- package/bin/themes/default/tests/e2e/specs/quire-splash.spec.js +38 -0
- package/bin/themes/default/tests/e2e/support/commands.js +25 -0
- package/bin/themes/default/tests/e2e/support/index.js +20 -0
- package/bin/themes/default/theme.toml +22 -0
- package/bin/themes/default/tsconfig.json +5 -0
- package/bin/themes/default/webpack/webpack.config.dev.js +128 -0
- package/bin/themes/default/webpack/webpack.config.epub.js +140 -0
- package/bin/themes/default/webpack/webpack.config.pdf.js +135 -0
- package/bin/themes/default/webpack/webpack.config.prod.js +133 -0
- package/package.json +1 -1
- package/index.js +0 -20
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import Hammer from 'hammerjs';
|
|
2
|
+
|
|
3
|
+
class Navigation {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.boundKeyboardListener = this.keyboardListener.bind(this)
|
|
6
|
+
// this.boundSwipeListener = this.swipeListener.bind(this)
|
|
7
|
+
this.addListeners()
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
prev() {
|
|
11
|
+
let prevLink = document.getElementById('js-prev')
|
|
12
|
+
prevLink && prevLink.click()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
next() {
|
|
16
|
+
let nextLink = document.getElementById('js-next')
|
|
17
|
+
nextLink && nextLink.click()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
keyboardListener(event) {
|
|
21
|
+
// 37 = left arrow key
|
|
22
|
+
if (event.which == 37) {
|
|
23
|
+
this.prev()
|
|
24
|
+
event.preventDefault()
|
|
25
|
+
}
|
|
26
|
+
// 39 = right arrow key
|
|
27
|
+
if (event.which == 39) {
|
|
28
|
+
this.next()
|
|
29
|
+
event.preventDefault()
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
swipeListener(event) {
|
|
34
|
+
if (event.deltaX < 0) {
|
|
35
|
+
this.next()
|
|
36
|
+
} else {
|
|
37
|
+
this.prev()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
addListeners() {
|
|
42
|
+
document.addEventListener('keyup', this.boundKeyboardListener, false)
|
|
43
|
+
|
|
44
|
+
let main = document.getElementById('main')
|
|
45
|
+
this.hammer = new Hammer(main)
|
|
46
|
+
this.hammer.on('swipe', this.boundSwipeListener)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
removeListeners() {
|
|
50
|
+
document.removeEventListener('keyup', this.boundKeyboardListener, false)
|
|
51
|
+
this.hammer.destroy()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
teardown() {
|
|
55
|
+
this.removeListeners()
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default Navigation
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import $ from "jquery";
|
|
4
|
+
import DeepZoom from "./deepzoom.js";
|
|
5
|
+
import Map from "./map.js";
|
|
6
|
+
import { toggleFullscreen } from "./helper";
|
|
7
|
+
import "magnific-popup/dist/magnific-popup.css";
|
|
8
|
+
// eslint-disable-next-line no-undef
|
|
9
|
+
require("magnific-popup");
|
|
10
|
+
|
|
11
|
+
export default function(gallerySelector, mapArr) {
|
|
12
|
+
/** set var */
|
|
13
|
+
const fullscreenButton = `
|
|
14
|
+
<div
|
|
15
|
+
class="leaflet-control-fullscreen leaflet-bar leaflet-control remove-from-epub"
|
|
16
|
+
>
|
|
17
|
+
<a
|
|
18
|
+
id="toggleFullscreen"
|
|
19
|
+
class="leaflet-control-fullscreen-button leaflet-bar-part"
|
|
20
|
+
href="#"
|
|
21
|
+
title="View Fullscreen"
|
|
22
|
+
style="outline: none;">
|
|
23
|
+
</a>
|
|
24
|
+
</div>
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Popup Leaflet instances
|
|
29
|
+
*/
|
|
30
|
+
let deepzoom;
|
|
31
|
+
let map;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @description Find all instances of soundcloud players
|
|
35
|
+
* and stop them
|
|
36
|
+
*/
|
|
37
|
+
const findSoundCloudWidgetsAndStopThem = () => {
|
|
38
|
+
const items = [...document.querySelectorAll(`.quire-figure`)];
|
|
39
|
+
items
|
|
40
|
+
.filter(item => {
|
|
41
|
+
return [...item.children][0].src !== undefined &&
|
|
42
|
+
[...item.children][0].src.indexOf(`soundcloud`)
|
|
43
|
+
? [...item.children][0]
|
|
44
|
+
: ``;
|
|
45
|
+
})
|
|
46
|
+
.map(item => {
|
|
47
|
+
let iframeElementID = [...item.children][0].id;
|
|
48
|
+
let widget = SC.Widget(iframeElementID);
|
|
49
|
+
return widget;
|
|
50
|
+
})
|
|
51
|
+
.forEach(item => {
|
|
52
|
+
return item.pause();
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @param {*} self
|
|
58
|
+
* @description update caption in modal viewer if
|
|
59
|
+
* needed and clear before update
|
|
60
|
+
*/
|
|
61
|
+
const captionUpdate = self => {
|
|
62
|
+
const setCaption = self => {
|
|
63
|
+
if (self) {
|
|
64
|
+
$(".mfp-title").hide();
|
|
65
|
+
const figureWrapper = $(self.currItem.el).closest('.q-figure__wrapper');
|
|
66
|
+
const captionParts = ['label-text', 'caption-content', 'credit'];
|
|
67
|
+
const captionWrapper =$(`<span class="caption"></span>`);
|
|
68
|
+
captionParts.forEach((item) => {
|
|
69
|
+
const content = $(figureWrapper).find(`.quire-figure__${item}`).prop('outerHTML');
|
|
70
|
+
content ? captionWrapper.append(content) : null;
|
|
71
|
+
})
|
|
72
|
+
if (captionWrapper.html()) {
|
|
73
|
+
self.captionCont = `
|
|
74
|
+
<div class="quire-caption-container">${captionWrapper.prop('outerHTML')}</div>`;
|
|
75
|
+
$(".mfp-wrap").prepend(self.captionCont);
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
if ($(".quire-caption-container")) {
|
|
79
|
+
$(".quire-caption-container").remove();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
setCaption();
|
|
84
|
+
switch (self.currItem.type) {
|
|
85
|
+
case "inline":
|
|
86
|
+
setCaption(self);
|
|
87
|
+
break;
|
|
88
|
+
case "iframe":
|
|
89
|
+
setCaption(self);
|
|
90
|
+
break;
|
|
91
|
+
case "image":
|
|
92
|
+
setCaption(self);
|
|
93
|
+
break;
|
|
94
|
+
default:
|
|
95
|
+
setCaption();
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* If map or deepzoom leaflet instances are defined, removes them.
|
|
102
|
+
* There should only be one defined at a time
|
|
103
|
+
* @todo The Map and Deepzoom classes should be refactored, at least to have the same signature
|
|
104
|
+
*/
|
|
105
|
+
const tearDownMap = () => {
|
|
106
|
+
if (deepzoom) {
|
|
107
|
+
deepzoom.map.remove();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (map) {
|
|
111
|
+
map.remove();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// add link to first slide when view as slides is present
|
|
117
|
+
const updateViewSlidesLink = () => {
|
|
118
|
+
let items = [...document.querySelectorAll(`.quire-figure--group`)];
|
|
119
|
+
items
|
|
120
|
+
.filter(item => {
|
|
121
|
+
return item;
|
|
122
|
+
})
|
|
123
|
+
.map(item => {
|
|
124
|
+
return [$(item).find(".viewSlides"), $(item).find(`a:first`)];
|
|
125
|
+
})
|
|
126
|
+
.forEach(item => {
|
|
127
|
+
$(item[0]).on("click", e => {
|
|
128
|
+
e.preventDefault();
|
|
129
|
+
$(item[1]).click();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
updateViewSlidesLink();
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
*
|
|
137
|
+
* @description e magnificPopup object
|
|
138
|
+
*
|
|
139
|
+
*/
|
|
140
|
+
$(gallerySelector).magnificPopup({
|
|
141
|
+
delegate: "a.popup",
|
|
142
|
+
type: "image",
|
|
143
|
+
closeBtnInside: false,
|
|
144
|
+
closeOnBgClick: false,
|
|
145
|
+
fixedContentPos: false,
|
|
146
|
+
fixedBgPos: "auto",
|
|
147
|
+
overflowY: "hidden",
|
|
148
|
+
image: {
|
|
149
|
+
titleSrc: function(item) {
|
|
150
|
+
return item.el.find(".figure-caption-container").html();
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
gallery: {
|
|
154
|
+
enabled: true,
|
|
155
|
+
preload: [0, 2], // read about this option in next Lazy-loading section
|
|
156
|
+
navigateByImgClick: true,
|
|
157
|
+
arrowMarkup:
|
|
158
|
+
'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"><span class="mfp-prevent-close arrow-img-%dir%"></span></button>', // markup of an arrow button
|
|
159
|
+
tPrev: "Previous (Left arrow key)", // title for left button
|
|
160
|
+
tNext: "Next (Right arrow key)", // title for right button
|
|
161
|
+
tCounter: "",
|
|
162
|
+
closeMarkup:
|
|
163
|
+
'<button title="Close (Esc)" type="button" class="mfp-close"></button>'
|
|
164
|
+
},
|
|
165
|
+
callbacks: {
|
|
166
|
+
beforeOpen: function() {
|
|
167
|
+
findSoundCloudWidgetsAndStopThem();
|
|
168
|
+
$("body").addClass("android-fixed");
|
|
169
|
+
this.current = this.index + 1;
|
|
170
|
+
this.total = this.items.length - 1;
|
|
171
|
+
this.counter = `<span class="counter">${this.current} of ${this.items.length}</span>`;
|
|
172
|
+
this.cont = `<div class="quire-counter-container">${this.counter}</div>`;
|
|
173
|
+
},
|
|
174
|
+
elementParse: function(item) {
|
|
175
|
+
if (item.el[0].getAttribute("data-type") === "video") {
|
|
176
|
+
// eslint-disable-next-line no-unused-expressions
|
|
177
|
+
(item.type = "iframe"),
|
|
178
|
+
(item.iframe = {
|
|
179
|
+
patterns: {
|
|
180
|
+
youtube: {
|
|
181
|
+
index: "youtube.com/", // String that detects type of video (in this case YouTube). Simply via url.indexOf(index).
|
|
182
|
+
id: "v=", // String that splits URL in a two parts, second part should be %id%
|
|
183
|
+
// Or null - full URL will be returned
|
|
184
|
+
// Or a function that should return %id%, for example:
|
|
185
|
+
// id: function(url) { return 'parsed id'; }
|
|
186
|
+
src: "//www.youtube.com/embed/%id%?autoplay=1" // URL that will be set as a source for iframe.
|
|
187
|
+
},
|
|
188
|
+
vimeo: {
|
|
189
|
+
index: "vimeo.com/",
|
|
190
|
+
id: "/",
|
|
191
|
+
src: "//player.vimeo.com/video/%id%?autoplay=1"
|
|
192
|
+
},
|
|
193
|
+
gmaps: {
|
|
194
|
+
index: "//maps.google.",
|
|
195
|
+
src: "%id%&output=embed"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
} else if (item.el[0].getAttribute("data-type") === "inline") {
|
|
200
|
+
item.type = "inline";
|
|
201
|
+
} else {
|
|
202
|
+
// eslint-disable-next-line no-unused-expressions
|
|
203
|
+
(item.type = "image"),
|
|
204
|
+
(item.tLoading = "Loading image #%curr%..."),
|
|
205
|
+
(item.mainClass = "mfp-img-mobile"),
|
|
206
|
+
(item.image = {
|
|
207
|
+
tError:
|
|
208
|
+
'<a href="%url%">The image #%curr%</a> could not be loaded.'
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
change: function() {
|
|
213
|
+
tearDownMap();
|
|
214
|
+
this.current = this.index + 1;
|
|
215
|
+
if (document.querySelector(".counter")) {
|
|
216
|
+
document.querySelector(
|
|
217
|
+
".counter"
|
|
218
|
+
).innerHTML = `${this.current} of ${this.items.length}`;
|
|
219
|
+
}
|
|
220
|
+
captionUpdate(this);
|
|
221
|
+
let id = this.content.children()[0].id;
|
|
222
|
+
let waitForDOMUpdate = 0;
|
|
223
|
+
if (id !== "" || id !== undefined) {
|
|
224
|
+
if (id.indexOf("map") !== -1) {
|
|
225
|
+
setTimeout(() => {
|
|
226
|
+
map = new Map(id);
|
|
227
|
+
}, waitForDOMUpdate);
|
|
228
|
+
}
|
|
229
|
+
if (id.indexOf("deepzoom") !== -1) {
|
|
230
|
+
setTimeout(() => {
|
|
231
|
+
let url = $(`#${id}`).attr("src");
|
|
232
|
+
if (url) {
|
|
233
|
+
let image = new Image();
|
|
234
|
+
image.src = url;
|
|
235
|
+
image.onload = function() {
|
|
236
|
+
deepzoom = new DeepZoom(id, mapArr);
|
|
237
|
+
};
|
|
238
|
+
} else {
|
|
239
|
+
deepzoom = null;
|
|
240
|
+
}
|
|
241
|
+
}, waitForDOMUpdate);
|
|
242
|
+
}
|
|
243
|
+
if (id.indexOf("iiif") !== -1) {
|
|
244
|
+
setTimeout(() => {
|
|
245
|
+
deepzoom = new DeepZoom(id, mapArr);
|
|
246
|
+
}, waitForDOMUpdate);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
$(".mfp-content").prepend(fullscreenButton);
|
|
250
|
+
},
|
|
251
|
+
resize: function() {
|
|
252
|
+
// console.log('Popup resized ' + $(window).innerHeight());
|
|
253
|
+
// resize event triggers only when height is changed or layout forced
|
|
254
|
+
},
|
|
255
|
+
open: function() {
|
|
256
|
+
// console.log('Popup open');
|
|
257
|
+
captionUpdate(this);
|
|
258
|
+
$(".mfp-wrap").prepend(this.cont);
|
|
259
|
+
$(".mfp-content").prepend(fullscreenButton);
|
|
260
|
+
toggleFullscreen(
|
|
261
|
+
mapArr,
|
|
262
|
+
document.getElementById("toggleFullscreen"),
|
|
263
|
+
document.querySelector(".mfp-wrap")
|
|
264
|
+
);
|
|
265
|
+
},
|
|
266
|
+
beforeClose: function() {
|
|
267
|
+
// Callback available since v0.9.0
|
|
268
|
+
// console.log('Popup close has been initiated');
|
|
269
|
+
$("body").removeClass("android-fixed");
|
|
270
|
+
$(".quire-counter-container, .quire-caption-container").remove();
|
|
271
|
+
},
|
|
272
|
+
close: function() {
|
|
273
|
+
// console.log('Popup removal initiated (after removalDelay timer finished)');
|
|
274
|
+
},
|
|
275
|
+
afterClose: function() {
|
|
276
|
+
// console.log('Popup is completely closed');
|
|
277
|
+
},
|
|
278
|
+
|
|
279
|
+
markupParse: function(template, values, item) {
|
|
280
|
+
// Triggers each time when content of popup changes
|
|
281
|
+
// console.log('Parsing:', template, values, item);
|
|
282
|
+
},
|
|
283
|
+
updateStatus: function(data) {
|
|
284
|
+
// console.log('Status changed', data);
|
|
285
|
+
// "data" is an object that has two properties:
|
|
286
|
+
// "data.status" - current status type, can be "loading", "error", "ready"
|
|
287
|
+
// "data.text" - text that will be displayed (e.g. "Loading...")
|
|
288
|
+
// you may modify this properties to change current status or its text dynamically
|
|
289
|
+
},
|
|
290
|
+
imageLoadComplete: function() {
|
|
291
|
+
// fires when image in current popup finished loading
|
|
292
|
+
// avaiable since v0.9.0
|
|
293
|
+
// console.log('Image loaded');
|
|
294
|
+
},
|
|
295
|
+
// Only for ajax popup type
|
|
296
|
+
parseAjax: function(mfpResponse) {
|
|
297
|
+
// mfpResponse.data is a "data" object from ajax "success" callback
|
|
298
|
+
// for simple HTML file, it will be just String
|
|
299
|
+
// You may modify it to change contents of the popup
|
|
300
|
+
// For example, to show just #some-element:
|
|
301
|
+
// mfpResponse.data = $(mfpResponse.data).find('#some-element');
|
|
302
|
+
// mfpResponse.data must be a String or a DOM (jQuery) element
|
|
303
|
+
// console.log('Ajax content loaded:', mfpResponse);
|
|
304
|
+
},
|
|
305
|
+
ajaxContentAdded: function() {
|
|
306
|
+
// Ajax content is loaded and prepended to DOM
|
|
307
|
+
// console.log(this.content);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import lunr from 'lunr';
|
|
2
|
+
|
|
3
|
+
class Search {
|
|
4
|
+
constructor(data) {
|
|
5
|
+
this.index = this.buildIndex(data);
|
|
6
|
+
this.contentList = data;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
buildIndex(data) {
|
|
10
|
+
return lunr(function () {
|
|
11
|
+
this.field('title', {
|
|
12
|
+
boost: 100
|
|
13
|
+
});
|
|
14
|
+
this.field('url', {
|
|
15
|
+
boost: 10
|
|
16
|
+
});
|
|
17
|
+
this.field('content');
|
|
18
|
+
this.ref('id');
|
|
19
|
+
data.forEach(item => {
|
|
20
|
+
this.add(item);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Return results in order of relevance
|
|
26
|
+
search(query) {
|
|
27
|
+
let results = this.index.search(query);
|
|
28
|
+
return results.map((result) => {
|
|
29
|
+
return this.contentList[result.ref];
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default Search
|
|
35
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var SC=SC||{};SC.Widget=function(n){function t(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return n[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var e={};return t.m=n,t.c=e,t.p="",t(0)}([function(n,t,e){function r(n){return!!(""===n||n&&n.charCodeAt&&n.substr)}function o(n){return!!(n&&n.constructor&&n.call&&n.apply)}function i(n){return!(!n||1!==n.nodeType||"IFRAME"!==n.nodeName.toUpperCase())}function a(n){var t,e=!1;for(t in b)if(b.hasOwnProperty(t)&&b[t]===n){e=!0;break}return e}function s(n){var t,e,r;for(t=0,e=I.length;t<e&&(r=n(I[t]),r!==!1);t++);}function u(n){var t,e,r,o="";for("//"===n.substr(0,2)&&(n=window.location.protocol+n),r=n.split("/"),t=0,e=r.length;t<e&&t<3;t++)o+=r[t],t<2&&(o+="/");return o}function c(n){return n.contentWindow?n.contentWindow:n.contentDocument&&"parentWindow"in n.contentDocument?n.contentDocument.parentWindow:null}function l(n){var t,e=[];for(t in n)n.hasOwnProperty(t)&&e.push(n[t]);return e}function d(n,t,e){e.callbacks[n]=e.callbacks[n]||[],e.callbacks[n].push(t)}function E(n,t){var e,r=!0;return t.callbacks[n]=[],s(function(t){if(e=t.callbacks[n]||[],e.length)return r=!1,!1}),r}function f(n,t,e){var r,o,i=c(e);return!!i.postMessage&&(r=e.getAttribute("src").split("?")[0],o=JSON.stringify({method:n,value:t}),"//"===r.substr(0,2)&&(r=window.location.protocol+r),r=r.replace(/http:\/\/(w|wt).soundcloud.com/,"https://$1.soundcloud.com"),void i.postMessage(o,r))}function p(n){var t;return s(function(e){if(e.instance===n)return t=e,!1}),t}function h(n){var t;return s(function(e){if(c(e.element)===n)return t=e,!1}),t}function v(n,t){return function(e){var r=o(e),i=p(this),a=!r&&t?e:null,s=r&&!t?e:null;return s&&d(n,s,i),f(n,a,i.element),this}}function S(n,t,e){var r,o,i;for(r=0,o=t.length;r<o;r++)i=t[r],n[i]=v(i,e)}function R(n,t,e){return n+"?url="+t+"&"+g(e)}function g(n){var t,e,r=[];for(t in n)n.hasOwnProperty(t)&&(e=n[t],r.push(t+"="+("start_track"===t?parseInt(e,10):e?"true":"false")));return r.join("&")}function m(n,t,e){var r,o,i=n.callbacks[t]||[];for(r=0,o=i.length;r<o;r++)i[r].apply(n.instance,e);(a(t)||t===L.READY)&&(n.callbacks[t]=[])}function w(n){var t,e,r,o,i;try{e=JSON.parse(n.data)}catch(a){return!1}return t=h(n.source),r=e.method,o=e.value,(!t||A(n.origin)===A(t.domain))&&(t?(r===L.READY&&(t.isReady=!0,m(t,C),E(C,t)),r!==L.PLAY||t.playEventFired||(t.playEventFired=!0),r!==L.PLAY_PROGRESS||t.playEventFired||(t.playEventFired=!0,m(t,L.PLAY,[o])),i=[],void 0!==o&&i.push(o),void m(t,r,i)):(r===L.READY&&T.push(n.source),!1))}function A(n){return n.replace(Y,"")}var _,y,O,D=e(1),b=e(2),P=e(3),L=D.api,N=D.bridge,T=[],I=[],C="__LATE_BINDING__",k="http://wt.soundcloud.test:9200/",Y=/^http(?:s?)/;window.addEventListener?window.addEventListener("message",w,!1):window.attachEvent("onmessage",w),n.exports=O=function(n,t,e){if(r(n)&&(n=document.getElementById(n)),!i(n))throw new Error("SC.Widget function should be given either iframe element or a string specifying id attribute of iframe element.");t&&(e=e||{},n.src=R(k,t,e));var o,a,s=h(c(n));return s&&s.instance?s.instance:(o=T.indexOf(c(n))>-1,a=new _(n),I.push(new y(a,n,o)),a)},O.Events=L,window.SC=window.SC||{},window.SC.Widget=O,y=function(n,t,e){this.instance=n,this.element=t,this.domain=u(t.getAttribute("src")),this.isReady=!!e,this.callbacks={}},_=function(){},_.prototype={constructor:_,load:function(n,t){if(n){t=t||{};var e=this,r=p(this),o=r.element,i=o.src,a=i.substr(0,i.indexOf("?"));r.isReady=!1,r.playEventFired=!1,o.onload=function(){e.bind(L.READY,function(){var n,e=r.callbacks;for(n in e)e.hasOwnProperty(n)&&n!==L.READY&&f(N.ADD_LISTENER,n,r.element);t.callback&&t.callback()})},o.src=R(a,n,t)}},bind:function(n,t){var e=this,r=p(this);return r&&r.element&&(n===L.READY&&r.isReady?setTimeout(t,1):r.isReady?(d(n,t,r),f(N.ADD_LISTENER,n,r.element)):d(C,function(){e.bind(n,t)},r)),this},unbind:function(n){var t,e=p(this);e&&e.element&&(t=E(n,e),n!==L.READY&&t&&f(N.REMOVE_LISTENER,n,e.element))}},S(_.prototype,l(b)),S(_.prototype,l(P),!0)},function(n,t){t.api={LOAD_PROGRESS:"loadProgress",PLAY_PROGRESS:"playProgress",PLAY:"play",PAUSE:"pause",FINISH:"finish",SEEK:"seek",READY:"ready",OPEN_SHARE_PANEL:"sharePanelOpened",CLICK_DOWNLOAD:"downloadClicked",CLICK_BUY:"buyClicked",ERROR:"error"},t.bridge={REMOVE_LISTENER:"removeEventListener",ADD_LISTENER:"addEventListener"}},function(n,t){n.exports={GET_VOLUME:"getVolume",GET_DURATION:"getDuration",GET_POSITION:"getPosition",GET_SOUNDS:"getSounds",GET_CURRENT_SOUND:"getCurrentSound",GET_CURRENT_SOUND_INDEX:"getCurrentSoundIndex",IS_PAUSED:"isPaused"}},function(n,t){n.exports={PLAY:"play",PAUSE:"pause",TOGGLE:"toggle",SEEK_TO:"seekTo",SET_VOLUME:"setVolume",NEXT:"next",PREV:"prev",SKIP:"skip"}}]);
|