@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.
Files changed (370) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/bin/.DS_Store +0 -0
  3. package/bin/go-iiif/.DS_Store +0 -0
  4. package/bin/index.js +2 -0
  5. package/bin/starters/.DS_Store +0 -0
  6. package/bin/starters/README.md +0 -0
  7. package/bin/starters/default/.circleci/config.yml +98 -0
  8. package/bin/starters/default/.gitignore +14 -0
  9. package/bin/starters/default/.nojekyll +0 -0
  10. package/bin/starters/default/CHANGELOG.md +38 -0
  11. package/bin/starters/default/README.md +25 -0
  12. package/bin/starters/default/bin/deploy.sh +25 -0
  13. package/bin/starters/default/config/_default/config.yml +53 -0
  14. package/bin/starters/default/config/development/config.yml +14 -0
  15. package/bin/starters/default/config/environments/dev.yml +14 -0
  16. package/bin/starters/default/config/environments/github.yml +15 -0
  17. package/bin/starters/default/config/environments/netlify.yml +18 -0
  18. package/bin/starters/default/config/epub.yml +15 -0
  19. package/bin/starters/default/config/pdf.yml +16 -0
  20. package/bin/starters/default/config/site.yml +13 -0
  21. package/bin/starters/default/config.yml +53 -0
  22. package/bin/starters/default/content/about.md +20 -0
  23. package/bin/starters/default/content/bibliography.md +7 -0
  24. package/bin/starters/default/content/catalogue/1.md +28 -0
  25. package/bin/starters/default/content/catalogue/2.md +29 -0
  26. package/bin/starters/default/content/catalogue/3.md +20 -0
  27. package/bin/starters/default/content/catalogue/4.md +22 -0
  28. package/bin/starters/default/content/catalogue/catalogue-index.md +8 -0
  29. package/bin/starters/default/content/contents.md +7 -0
  30. package/bin/starters/default/content/contributors.md +7 -0
  31. package/bin/starters/default/content/cover.md +11 -0
  32. package/bin/starters/default/content/essay.md +80 -0
  33. package/bin/starters/default/content/intro.md +21 -0
  34. package/bin/starters/default/content/search-index.md +8 -0
  35. package/bin/starters/default/data/figures.yml +90 -0
  36. package/bin/starters/default/data/objects.yml +49 -0
  37. package/bin/starters/default/data/publication.yml +149 -0
  38. package/bin/starters/default/data/references.yml +11 -0
  39. package/bin/starters/default/static/css/custom.css +0 -0
  40. package/bin/starters/default/static/data/sample-geojson.json +16 -0
  41. package/bin/starters/default/static/downloads/.gitkeep +0 -0
  42. package/bin/starters/default/static/downloads/output.epub +0 -0
  43. package/bin/starters/default/static/downloads/output.mobi +0 -0
  44. package/bin/starters/default/static/downloads/output.pdf +0 -0
  45. package/bin/starters/default/static/img/contributors/judith-keller.jpg +0 -0
  46. package/bin/starters/default/static/img/cover.png +0 -0
  47. package/bin/starters/default/static/img/figures/duo.jpg +0 -0
  48. package/bin/starters/default/static/img/figures/evans-burroughs.jpg +0 -0
  49. package/bin/starters/default/static/img/figures/evans-child.jpg +0 -0
  50. package/bin/starters/default/static/img/figures/evans-graveyard.jpg +0 -0
  51. package/bin/starters/default/static/img/figures/evans-hymns.jpg +0 -0
  52. package/bin/starters/default/static/img/figures/evans-legionnaire.jpg +0 -0
  53. package/bin/starters/default/static/img/figures/evans-refugee.jpg +0 -0
  54. package/bin/starters/default/static/img/figures/evans-sons.jpg +0 -0
  55. package/bin/starters/default/static/img/figures/evans-video-still.jpg +0 -0
  56. package/bin/starters/default/static/img/figures/evans-washroom.jpg +0 -0
  57. package/bin/starters/default/static/img/figures/evans.jpg +0 -0
  58. package/bin/starters/default/static/img/figures/family.jpg +0 -0
  59. package/bin/starters/default/static/img/figures/lange-house.jpg +0 -0
  60. package/bin/starters/default/static/img/figures/lange.jpg +0 -0
  61. package/bin/starters/default/static/img/figures/mother-b.jpg +0 -0
  62. package/bin/starters/default/static/img/figures/mother-c.jpg +0 -0
  63. package/bin/starters/default/static/img/figures/mother.jpg +0 -0
  64. package/bin/starters/default/static/img/figures/pickers.jpg +0 -0
  65. package/bin/starters/default/static/img/logo-getty.png +0 -0
  66. package/bin/starters/default/static/img/pattern-spiral-overlay.png +0 -0
  67. package/bin/starters/default/static/js/custom.js +4 -0
  68. package/bin/themes/README.md +0 -0
  69. package/bin/themes/default/.circleci/config.yml +62 -0
  70. package/bin/themes/default/.eslintrc.js +16 -0
  71. package/bin/themes/default/.gitignore +13 -0
  72. package/bin/themes/default/.scss-lint.yml +239 -0
  73. package/bin/themes/default/CHANGELOG.md +73 -0
  74. package/bin/themes/default/LICENSE.md +20 -0
  75. package/bin/themes/default/README.md +112 -0
  76. package/bin/themes/default/archetypes/default.md +2 -0
  77. package/bin/themes/default/cypress.json +7 -0
  78. package/bin/themes/default/layouts/404.html +0 -0
  79. package/bin/themes/default/layouts/_default/baseof.html +43 -0
  80. package/bin/themes/default/layouts/_default/single.html +26 -0
  81. package/bin/themes/default/layouts/contents/single.html +37 -0
  82. package/bin/themes/default/layouts/cover/single.html +128 -0
  83. package/bin/themes/default/layouts/data/search-index.html +65 -0
  84. package/bin/themes/default/layouts/entry/single.html +372 -0
  85. package/bin/themes/default/layouts/essay/single.html +24 -0
  86. package/bin/themes/default/layouts/partials/analytics.html +29 -0
  87. package/bin/themes/default/layouts/partials/cite-this.html +348 -0
  88. package/bin/themes/default/layouts/partials/contents-list/card-image.html +13 -0
  89. package/bin/themes/default/layouts/partials/contents-list/closing-tags.html +59 -0
  90. package/bin/themes/default/layouts/partials/contents-list/contents-list.html +179 -0
  91. package/bin/themes/default/layouts/partials/contents-list/file-dir.html +7 -0
  92. package/bin/themes/default/layouts/partials/contents-list/file-path.html +10 -0
  93. package/bin/themes/default/layouts/partials/contents-list/list-item-type.html +9 -0
  94. package/bin/themes/default/layouts/partials/contents-list/list-item-types/abstract.html +17 -0
  95. package/bin/themes/default/layouts/partials/contents-list/list-item-types/brief.html +7 -0
  96. package/bin/themes/default/layouts/partials/contents-list/list-item-types/default.html +9 -0
  97. package/bin/themes/default/layouts/partials/contents-list/list-item-types/grid.html +30 -0
  98. package/bin/themes/default/layouts/partials/contents-list/section-heading.html +5 -0
  99. package/bin/themes/default/layouts/partials/contents-list.html +207 -0
  100. package/bin/themes/default/layouts/partials/contributor-info.html +78 -0
  101. package/bin/themes/default/layouts/partials/contributor-list.html +102 -0
  102. package/bin/themes/default/layouts/partials/copyright.html +155 -0
  103. package/bin/themes/default/layouts/partials/debug-contents.html +8 -0
  104. package/bin/themes/default/layouts/partials/dublin-core.html +21 -0
  105. package/bin/themes/default/layouts/partials/error-message.html +19 -0
  106. package/bin/themes/default/layouts/partials/figure-caption.html +1 -0
  107. package/bin/themes/default/layouts/partials/figure-fallback.html +31 -0
  108. package/bin/themes/default/layouts/partials/figure-image.html +44 -0
  109. package/bin/themes/default/layouts/partials/figure-label.html +15 -0
  110. package/bin/themes/default/layouts/partials/figure-soundcloud.html +25 -0
  111. package/bin/themes/default/layouts/partials/figure-table.html +44 -0
  112. package/bin/themes/default/layouts/partials/figure-vimeo.html +24 -0
  113. package/bin/themes/default/layouts/partials/figure-website.html +21 -0
  114. package/bin/themes/default/layouts/partials/figure-youtube.html +23 -0
  115. package/bin/themes/default/layouts/partials/figures/caption.html +44 -0
  116. package/bin/themes/default/layouts/partials/figures/label.html +35 -0
  117. package/bin/themes/default/layouts/partials/figures/media-types/fallback.html +32 -0
  118. package/bin/themes/default/layouts/partials/figures/media-types/image.html +54 -0
  119. package/bin/themes/default/layouts/partials/figures/media-types/soundcloud.html +35 -0
  120. package/bin/themes/default/layouts/partials/figures/media-types/table.html +53 -0
  121. package/bin/themes/default/layouts/partials/figures/media-types/vimeo.html +34 -0
  122. package/bin/themes/default/layouts/partials/figures/media-types/website.html +24 -0
  123. package/bin/themes/default/layouts/partials/figures/media-types/youtube.html +29 -0
  124. package/bin/themes/default/layouts/partials/footer-buttons.html +29 -0
  125. package/bin/themes/default/layouts/partials/head.html +46 -0
  126. package/bin/themes/default/layouts/partials/icon.html +20 -0
  127. package/bin/themes/default/layouts/partials/icons-cc.html +86 -0
  128. package/bin/themes/default/layouts/partials/icons.html +54 -0
  129. package/bin/themes/default/layouts/partials/json-ld.html +117 -0
  130. package/bin/themes/default/layouts/partials/link-list-arrow.html +16 -0
  131. package/bin/themes/default/layouts/partials/link-list.html +11 -0
  132. package/bin/themes/default/layouts/partials/menu-header.html +25 -0
  133. package/bin/themes/default/layouts/partials/menu.html +69 -0
  134. package/bin/themes/default/layouts/partials/metadata.html +27 -0
  135. package/bin/themes/default/layouts/partials/navbar.html +173 -0
  136. package/bin/themes/default/layouts/partials/open-graph.html +43 -0
  137. package/bin/themes/default/layouts/partials/page-abstract.html +7 -0
  138. package/bin/themes/default/layouts/partials/page-bibliography.html +59 -0
  139. package/bin/themes/default/layouts/partials/page-class.html +9 -0
  140. package/bin/themes/default/layouts/partials/page-contributor.html +48 -0
  141. package/bin/themes/default/layouts/partials/page-header.html +22 -0
  142. package/bin/themes/default/layouts/partials/page-title.html +9 -0
  143. package/bin/themes/default/layouts/partials/page-tombstone.html +36 -0
  144. package/bin/themes/default/layouts/partials/pdf-info.html +20 -0
  145. package/bin/themes/default/layouts/partials/pdf-title-pages.html +39 -0
  146. package/bin/themes/default/layouts/partials/scripts.html +5 -0
  147. package/bin/themes/default/layouts/partials/search.html +52 -0
  148. package/bin/themes/default/layouts/partials/site-title.html +9 -0
  149. package/bin/themes/default/layouts/partials/tests/check-node-modules.html +9 -0
  150. package/bin/themes/default/layouts/partials/tests/check-page-one-class.html +21 -0
  151. package/bin/themes/default/layouts/partials/tests/check-page-weights.html +49 -0
  152. package/bin/themes/default/layouts/partials/tests/run.html +13 -0
  153. package/bin/themes/default/layouts/partials/twitter-card.html +23 -0
  154. package/bin/themes/default/layouts/shortcodes/q-bibliography.html +61 -0
  155. package/bin/themes/default/layouts/shortcodes/q-cite.html +79 -0
  156. package/bin/themes/default/layouts/shortcodes/q-class.html +3 -0
  157. package/bin/themes/default/layouts/shortcodes/q-contributor.html +327 -0
  158. package/bin/themes/default/layouts/shortcodes/q-contributors.html +11 -0
  159. package/bin/themes/default/layouts/shortcodes/q-figure-group.html +457 -0
  160. package/bin/themes/default/layouts/shortcodes/q-figure-new.html +70 -0
  161. package/bin/themes/default/layouts/shortcodes/q-figure-zoom.html +408 -0
  162. package/bin/themes/default/layouts/shortcodes/q-figure.html +86 -0
  163. package/bin/themes/default/layouts/sitemap.xml +24 -0
  164. package/bin/themes/default/layouts/splash/single.html +67 -0
  165. package/bin/themes/default/package-lock.json +13198 -0
  166. package/bin/themes/default/package.json +96 -0
  167. package/bin/themes/default/source/css/application.scss +30 -0
  168. package/bin/themes/default/source/css/bulma-components.scss +21 -0
  169. package/bin/themes/default/source/css/colors.scss +16 -0
  170. package/bin/themes/default/source/css/components/_all.scss +15 -0
  171. package/bin/themes/default/source/css/components/container.sass +35 -0
  172. package/bin/themes/default/source/css/components/quire-buttons.scss +95 -0
  173. package/bin/themes/default/source/css/components/quire-citation.scss +77 -0
  174. package/bin/themes/default/source/css/components/quire-contents-list.scss +329 -0
  175. package/bin/themes/default/source/css/components/quire-contributors.scss +131 -0
  176. package/bin/themes/default/source/css/components/quire-copyright.scss +28 -0
  177. package/bin/themes/default/source/css/components/quire-cover.scss +216 -0
  178. package/bin/themes/default/source/css/components/quire-deepzoom.scss +181 -0
  179. package/bin/themes/default/source/css/components/quire-entry.scss +651 -0
  180. package/bin/themes/default/source/css/components/quire-figure.scss +589 -0
  181. package/bin/themes/default/source/css/components/quire-map.scss +17 -0
  182. package/bin/themes/default/source/css/components/quire-menu.scss +209 -0
  183. package/bin/themes/default/source/css/components/quire-navbar.scss +366 -0
  184. package/bin/themes/default/source/css/components/quire-page.scss +920 -0
  185. package/bin/themes/default/source/css/components/quire-popup.scss +233 -0
  186. package/bin/themes/default/source/css/components/quire-search.scss +121 -0
  187. package/bin/themes/default/source/css/epub.scss +549 -0
  188. package/bin/themes/default/source/css/fonts.scss +159 -0
  189. package/bin/themes/default/source/css/layout.scss +186 -0
  190. package/bin/themes/default/source/css/print.scss +613 -0
  191. package/bin/themes/default/source/css/utilities.scss +345 -0
  192. package/bin/themes/default/source/css/variables.scss +144 -0
  193. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.eot +0 -0
  194. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.woff +0 -0
  195. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bold.woff2 +0 -0
  196. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.eot +0 -0
  197. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.woff +0 -0
  198. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-bolditalic.woff2 +0 -0
  199. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.eot +0 -0
  200. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.woff +0 -0
  201. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-italic.woff2 +0 -0
  202. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.eot +0 -0
  203. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.woff +0 -0
  204. package/bin/themes/default/source/fonts/ibm-plex-sans-condensed/ibmplexsanscondensed-regular.woff2 +0 -0
  205. package/bin/themes/default/source/fonts/noto-sans/notosans-bold.eot +0 -0
  206. package/bin/themes/default/source/fonts/noto-sans/notosans-bold.woff +0 -0
  207. package/bin/themes/default/source/fonts/noto-sans/notosans-bold.woff2 +0 -0
  208. package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.eot +0 -0
  209. package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.woff +0 -0
  210. package/bin/themes/default/source/fonts/noto-sans/notosans-bolditalic.woff2 +0 -0
  211. package/bin/themes/default/source/fonts/noto-sans/notosans-italic.eot +0 -0
  212. package/bin/themes/default/source/fonts/noto-sans/notosans-italic.woff +0 -0
  213. package/bin/themes/default/source/fonts/noto-sans/notosans-italic.woff2 +0 -0
  214. package/bin/themes/default/source/fonts/noto-sans/notosans-regular.eot +0 -0
  215. package/bin/themes/default/source/fonts/noto-sans/notosans-regular.woff +0 -0
  216. package/bin/themes/default/source/fonts/noto-sans/notosans-regular.woff2 +0 -0
  217. package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.eot +0 -0
  218. package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.woff +0 -0
  219. package/bin/themes/default/source/fonts/noto-serif/notoserif-bold.woff2 +0 -0
  220. package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.eot +0 -0
  221. package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.woff +0 -0
  222. package/bin/themes/default/source/fonts/noto-serif/notoserif-bolditalic.woff2 +0 -0
  223. package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.eot +0 -0
  224. package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.woff +0 -0
  225. package/bin/themes/default/source/fonts/noto-serif/notoserif-italic.woff2 +0 -0
  226. package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.eot +0 -0
  227. package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.woff +0 -0
  228. package/bin/themes/default/source/fonts/noto-serif/notoserif-regular.woff2 +0 -0
  229. package/bin/themes/default/source/img/cover.png +0 -0
  230. package/bin/themes/default/source/img/fullscreen.png +0 -0
  231. package/bin/themes/default/source/img/icons/arrow_forward.png +0 -0
  232. package/bin/themes/default/source/img/icons/baseline-headset-24px.png +0 -0
  233. package/bin/themes/default/source/img/icons/baseline-videocam-24px.png +0 -0
  234. package/bin/themes/default/source/img/icons/baseline-website-24px.png +0 -0
  235. package/bin/themes/default/source/img/icons/cc-by-nc-nd.png +0 -0
  236. package/bin/themes/default/source/img/icons/cc-by-nc-sa.png +0 -0
  237. package/bin/themes/default/source/img/icons/cc-by-nc.png +0 -0
  238. package/bin/themes/default/source/img/icons/cc-by-nd.png +0 -0
  239. package/bin/themes/default/source/img/icons/cc-by-sa.png +0 -0
  240. package/bin/themes/default/source/img/icons/cc-by.png +0 -0
  241. package/bin/themes/default/source/img/icons/cc-zero.png +0 -0
  242. package/bin/themes/default/source/img/icons/close.png +0 -0
  243. package/bin/themes/default/source/img/icons/down-arrow.png +0 -0
  244. package/bin/themes/default/source/img/icons/download.png +0 -0
  245. package/bin/themes/default/source/img/icons/favicon.ico +0 -0
  246. package/bin/themes/default/source/img/icons/home.png +0 -0
  247. package/bin/themes/default/source/img/icons/left-arrow.png +0 -0
  248. package/bin/themes/default/source/img/icons/link.png +0 -0
  249. package/bin/themes/default/source/img/icons/nav.png +0 -0
  250. package/bin/themes/default/source/img/icons/right-arrow.png +0 -0
  251. package/bin/themes/default/source/img/icons/search.png +0 -0
  252. package/bin/themes/default/source/img/icons/start.png +0 -0
  253. package/bin/themes/default/source/img/layers-2x.png +0 -0
  254. package/bin/themes/default/source/img/layers.png +0 -0
  255. package/bin/themes/default/source/img/marker-icon.png +0 -0
  256. package/bin/themes/default/source/img/pattern-spiral-overlay.png +0 -0
  257. package/bin/themes/default/source/img/promo-screenshots/classic-catalogue.png +0 -0
  258. package/bin/themes/default/source/img/promo-screenshots/classic-entry.png +0 -0
  259. package/bin/themes/default/source/img/promo-screenshots/classic-essay.png +0 -0
  260. package/bin/themes/default/source/img/promo-screenshots/modern-contents.png +0 -0
  261. package/bin/themes/default/source/img/promo-screenshots/modern-cover.png +0 -0
  262. package/bin/themes/default/source/img/promo-screenshots/modern-essay.png +0 -0
  263. package/bin/themes/default/source/js/application.js +604 -0
  264. package/bin/themes/default/source/js/deepzoom.js +186 -0
  265. package/bin/themes/default/source/js/epub.js +9 -0
  266. package/bin/themes/default/source/js/fullscreen.js +190 -0
  267. package/bin/themes/default/source/js/helper.js +197 -0
  268. package/bin/themes/default/source/js/map.js +94 -0
  269. package/bin/themes/default/source/js/navigation.js +59 -0
  270. package/bin/themes/default/source/js/popup.js +311 -0
  271. package/bin/themes/default/source/js/search.js +35 -0
  272. package/bin/themes/default/source/js/soundcloud-api.js +1 -0
  273. package/bin/themes/default/static/css/epub.css +401 -0
  274. package/bin/themes/default/static/fonts/MaterialIcons-Regular.eot +0 -0
  275. package/bin/themes/default/static/fonts/MaterialIcons-Regular.woff +0 -0
  276. package/bin/themes/default/static/fonts/MaterialIcons-Regular.woff2 +0 -0
  277. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.eot +0 -0
  278. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.woff +0 -0
  279. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bold.woff2 +0 -0
  280. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.eot +0 -0
  281. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.woff +0 -0
  282. package/bin/themes/default/static/fonts/ibmplexsanscondensed-bolditalic.woff2 +0 -0
  283. package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.eot +0 -0
  284. package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.woff +0 -0
  285. package/bin/themes/default/static/fonts/ibmplexsanscondensed-italic.woff2 +0 -0
  286. package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.eot +0 -0
  287. package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.woff +0 -0
  288. package/bin/themes/default/static/fonts/ibmplexsanscondensed-regular.woff2 +0 -0
  289. package/bin/themes/default/static/fonts/notosans-bold.eot +0 -0
  290. package/bin/themes/default/static/fonts/notosans-bold.woff +0 -0
  291. package/bin/themes/default/static/fonts/notosans-bold.woff2 +0 -0
  292. package/bin/themes/default/static/fonts/notosans-bolditalic.eot +0 -0
  293. package/bin/themes/default/static/fonts/notosans-bolditalic.woff +0 -0
  294. package/bin/themes/default/static/fonts/notosans-bolditalic.woff2 +0 -0
  295. package/bin/themes/default/static/fonts/notosans-italic.eot +0 -0
  296. package/bin/themes/default/static/fonts/notosans-italic.woff +0 -0
  297. package/bin/themes/default/static/fonts/notosans-italic.woff2 +0 -0
  298. package/bin/themes/default/static/fonts/notosans-regular.eot +0 -0
  299. package/bin/themes/default/static/fonts/notosans-regular.woff +0 -0
  300. package/bin/themes/default/static/fonts/notosans-regular.woff2 +0 -0
  301. package/bin/themes/default/static/fonts/notoserif-bold.eot +0 -0
  302. package/bin/themes/default/static/fonts/notoserif-bold.woff +0 -0
  303. package/bin/themes/default/static/fonts/notoserif-bold.woff2 +0 -0
  304. package/bin/themes/default/static/fonts/notoserif-bolditalic.eot +0 -0
  305. package/bin/themes/default/static/fonts/notoserif-bolditalic.woff +0 -0
  306. package/bin/themes/default/static/fonts/notoserif-bolditalic.woff2 +0 -0
  307. package/bin/themes/default/static/fonts/notoserif-italic.eot +0 -0
  308. package/bin/themes/default/static/fonts/notoserif-italic.woff +0 -0
  309. package/bin/themes/default/static/fonts/notoserif-italic.woff2 +0 -0
  310. package/bin/themes/default/static/fonts/notoserif-regular.eot +0 -0
  311. package/bin/themes/default/static/fonts/notoserif-regular.woff +0 -0
  312. package/bin/themes/default/static/fonts/notoserif-regular.woff2 +0 -0
  313. package/bin/themes/default/static/img/baseline-website-24px.png +0 -0
  314. package/bin/themes/default/static/img/cover.png +0 -0
  315. package/bin/themes/default/static/img/fullscreen.png +0 -0
  316. package/bin/themes/default/static/img/fullscreen@2x.png +0 -0
  317. package/bin/themes/default/static/img/icons/arrow_forward.png +0 -0
  318. package/bin/themes/default/static/img/icons/baseline-headset-24px.png +0 -0
  319. package/bin/themes/default/static/img/icons/baseline-videocam-24px.png +0 -0
  320. package/bin/themes/default/static/img/icons/baseline-website-24px.png +0 -0
  321. package/bin/themes/default/static/img/icons/cc-by-nc-nd.png +0 -0
  322. package/bin/themes/default/static/img/icons/cc-by-nc-sa.png +0 -0
  323. package/bin/themes/default/static/img/icons/cc-by-nc.png +0 -0
  324. package/bin/themes/default/static/img/icons/cc-by-nd.png +0 -0
  325. package/bin/themes/default/static/img/icons/cc-by-sa.png +0 -0
  326. package/bin/themes/default/static/img/icons/cc-by.png +0 -0
  327. package/bin/themes/default/static/img/icons/cc-zero.png +0 -0
  328. package/bin/themes/default/static/img/icons/close.png +0 -0
  329. package/bin/themes/default/static/img/icons/down-arrow.png +0 -0
  330. package/bin/themes/default/static/img/icons/download.png +0 -0
  331. package/bin/themes/default/static/img/icons/favicon.ico +0 -0
  332. package/bin/themes/default/static/img/icons/home.png +0 -0
  333. package/bin/themes/default/static/img/icons/left-arrow.png +0 -0
  334. package/bin/themes/default/static/img/icons/link.png +0 -0
  335. package/bin/themes/default/static/img/icons/nav.png +0 -0
  336. package/bin/themes/default/static/img/icons/right-arrow.png +0 -0
  337. package/bin/themes/default/static/img/icons/search.png +0 -0
  338. package/bin/themes/default/static/img/icons/soundcloud.png +0 -0
  339. package/bin/themes/default/static/img/icons/start.png +0 -0
  340. package/bin/themes/default/static/img/icons/vimeo.png +0 -0
  341. package/bin/themes/default/static/img/icons/website.png +0 -0
  342. package/bin/themes/default/static/img/icons/youtube.png +0 -0
  343. package/bin/themes/default/static/img/layers-2x.png +0 -0
  344. package/bin/themes/default/static/img/layers.png +0 -0
  345. package/bin/themes/default/static/img/marker-icon.png +0 -0
  346. package/bin/themes/default/static/img/pattern-spiral-overlay.png +0 -0
  347. package/bin/themes/default/tests/.gitkeep +0 -0
  348. package/bin/themes/default/tests/e2e/.eslintrc.js +9 -0
  349. package/bin/themes/default/tests/e2e/fixtures/blns.json +483 -0
  350. package/bin/themes/default/tests/e2e/plugins/index.js +22 -0
  351. package/bin/themes/default/tests/e2e/specs/quire-contents.spec.js +52 -0
  352. package/bin/themes/default/tests/e2e/specs/quire-contributors.spec.js +66 -0
  353. package/bin/themes/default/tests/e2e/specs/quire-entry.spec.js +104 -0
  354. package/bin/themes/default/tests/e2e/specs/quire-essay.spec.js +105 -0
  355. package/bin/themes/default/tests/e2e/specs/quire-menu.spec.js +38 -0
  356. package/bin/themes/default/tests/e2e/specs/quire-modal.spec.js +69 -0
  357. package/bin/themes/default/tests/e2e/specs/quire-next-back-buttons.spec.js +27 -0
  358. package/bin/themes/default/tests/e2e/specs/quire-page.spec.js +28 -0
  359. package/bin/themes/default/tests/e2e/specs/quire-search.spec.js +48 -0
  360. package/bin/themes/default/tests/e2e/specs/quire-splash.spec.js +38 -0
  361. package/bin/themes/default/tests/e2e/support/commands.js +25 -0
  362. package/bin/themes/default/tests/e2e/support/index.js +20 -0
  363. package/bin/themes/default/theme.toml +22 -0
  364. package/bin/themes/default/tsconfig.json +5 -0
  365. package/bin/themes/default/webpack/webpack.config.dev.js +128 -0
  366. package/bin/themes/default/webpack/webpack.config.epub.js +140 -0
  367. package/bin/themes/default/webpack/webpack.config.pdf.js +135 -0
  368. package/bin/themes/default/webpack/webpack.config.prod.js +133 -0
  369. package/package.json +1 -1
  370. package/index.js +0 -20
@@ -0,0 +1,186 @@
1
+ //@ts-check
2
+
3
+ import L from "leaflet";
4
+ import "leaflet-iiif";
5
+ class DeepZoom {
6
+ // add map array to access map objects outside of Deepzoom class
7
+ constructor(id, mapArr) {
8
+ this.id = id;
9
+ this.el = document.querySelector(`#${this.id}`);
10
+
11
+ // remove and refresh before init
12
+ // @ts-ignore
13
+ if (figureModal) {
14
+ if (window["mapID"] != undefined || window["mapID"] != undefined) {
15
+ window["mapID"].off();
16
+ window["mapID"].remove();
17
+ }
18
+ let node = document.getElementById(id);
19
+ if (node) {
20
+ while (node.firstChild) {
21
+ node.removeChild(node.firstChild);
22
+ }
23
+ }
24
+ }
25
+
26
+ this.catalogueEntry = this.el.getAttribute("data-catalogue-entry");
27
+ this.imageURL = this.el.getAttribute("src");
28
+ this.iiif = this.el.getAttribute("data-iiif");
29
+
30
+ /**
31
+ * Leaflet options object
32
+ * https://leafletjs.com/reference-1.7.1.html#map-option
33
+ */
34
+ const options = {
35
+ maxZoom: this.el.getAttribute('data-zoom-max') || 6,
36
+ minZoom: 1,
37
+ scrollWheelZoom: !this.catalogueEntry,
38
+ touchZoom: !this.catalogueEntry,
39
+ zoom: 1
40
+ };
41
+
42
+ if (this.imageURL) {
43
+ let image = new Image();
44
+ image.src = this.imageURL;
45
+ this.addImageProcess(image)
46
+ .then(arr => {
47
+ this.imgHeight = arr.height;
48
+ this.imgWidth = arr.width;
49
+ this.center = [0, 0];
50
+ this.map = this.createMap(options);
51
+ // add leaflet objects to array
52
+ mapArr.push(this.map);
53
+ if (this.catalogueEntry === undefined) {
54
+ window["mapID"] = this.map;
55
+ }
56
+ this.southWest = this.map.unproject(
57
+ [0, this.imgHeight],
58
+ this.map.getMaxZoom() - 1
59
+ );
60
+ this.northEast = this.map.unproject(
61
+ [this.imgWidth, 0],
62
+ this.map.getMaxZoom() - 1
63
+ );
64
+ let bounds = new L.LatLngBounds(this.southWest, this.northEast);
65
+ this.addTiles(bounds);
66
+ // well invalidate
67
+ // this.runMapTimeouts(this.map);
68
+ })
69
+ .catch(error => console.error(error));
70
+ } else if (this.imageURL && this.iiif) {
71
+ this.center = [0, 0];
72
+ this.map = this.createMap(options);
73
+ if (this.catalogueEntry === undefined) {
74
+ window["mapID"] = this.map;
75
+ }
76
+ this.addLayer(this.iiif, this.map);
77
+ this.runMapTimeouts(this.map);
78
+ } else {
79
+ this.center = [0, 0];
80
+ this.map = this.createMap(options);
81
+ if (this.catalogueEntry === undefined) {
82
+ window["mapID"] = this.map;
83
+ }
84
+ this.addLayer(this.iiif, this.map);
85
+ this.runMapTimeouts(this.map);
86
+ }
87
+ }
88
+
89
+ /**
90
+ * validateSize
91
+ * @description
92
+ * invalidateSize map as a promise
93
+ * @param {object} map must be an integer
94
+ */
95
+ validateSize(map) {
96
+ return new Promise((resolve, reject) => {
97
+ if (!map) reject(new Error("No map!"));
98
+ setTimeout(() => {
99
+ let modal = document.querySelector(".mfp-content");
100
+ if (modal) {
101
+ if (
102
+ map._container ===
103
+ modal.getElementsByTagName("figure")[0].children[0]
104
+ ) {
105
+ resolve(map.invalidateSize());
106
+ }
107
+ } else {
108
+ resolve(map.invalidateSize());
109
+ }
110
+ }, 250);
111
+ });
112
+ }
113
+
114
+ /**
115
+ * runMapTimeouts
116
+ * @description
117
+ * run map timeout functions
118
+ * @param {object} map must be an integer
119
+ */
120
+ runMapTimeouts(map) {
121
+ setTimeout(() => {
122
+ this.validateSize(map);
123
+ }, 100);
124
+ if ($(window)) {
125
+ $(window).on("resize", event => {
126
+ if (map) {
127
+ this.validateSize(map);
128
+ }
129
+ });
130
+ }
131
+ }
132
+
133
+ /**
134
+ * addImageProcess
135
+ * @description
136
+ * return an array of the natural height and width of the current image being processed
137
+ * @param {object} img must be an integer
138
+ */
139
+ addImageProcess(img) {
140
+ return new Promise((resolve, reject) => {
141
+ img.onload = () => {
142
+ let arr = [];
143
+ arr["height"] = img.naturalHeight;
144
+ arr["width"] = img.naturalWidth;
145
+ resolve(arr);
146
+ };
147
+ img.onerror = reject;
148
+ });
149
+ }
150
+
151
+ /**
152
+ * @param {object} Leaflet options
153
+ */
154
+ createMap(options) {
155
+ return L.map(this.id, {
156
+ center: [0, 0],
157
+ crs: L.CRS.Simple,
158
+ renderer: L.canvas(),
159
+ ...options
160
+ });
161
+ }
162
+
163
+ addLayer(json, map) {
164
+ if (json) {
165
+ L.tileLayer.iiif(json).addTo(map);
166
+ }
167
+ }
168
+
169
+ addTiles(bounds) {
170
+ if (bounds) {
171
+ this.map.setMaxBounds(bounds);
172
+ this.map.fitBounds(bounds);
173
+ let imageOverlay = L.imageOverlay(this.imageURL, bounds, {
174
+ opacity: 0.0
175
+ });
176
+ this.map.addLayer(imageOverlay);
177
+ imageOverlay.on("load", event => {
178
+ setTimeout(() => {
179
+ imageOverlay.setOpacity(1.0);
180
+ }, 250);
181
+ });
182
+ }
183
+ }
184
+ }
185
+
186
+ export default DeepZoom;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileOverview
3
+ * @name epub.js
4
+ * @description This file serves as the entry point for Webpack, the JS library
5
+ * responsible for building all CSS assets for the EPUBS and MOBI
6
+ */
7
+
8
+ // Stylesheets
9
+ import '../css/epub.scss';
@@ -0,0 +1,190 @@
1
+ (function() {
2
+ "use strict";
3
+
4
+ var document =
5
+ typeof window !== "undefined" && typeof window.document !== "undefined"
6
+ ? window.document
7
+ : {};
8
+ var isCommonjs = typeof module !== "undefined" && module.exports;
9
+ var keyboardAllowed =
10
+ typeof Element !== "undefined" && "ALLOW_KEYBOARD_INPUT" in Element;
11
+
12
+ var fn = (function() {
13
+ var val;
14
+
15
+ var fnMap = [
16
+ [
17
+ "requestFullscreen",
18
+ "exitFullscreen",
19
+ "fullscreenElement",
20
+ "fullscreenEnabled",
21
+ "fullscreenchange",
22
+ "fullscreenerror"
23
+ ],
24
+ // New WebKit
25
+ [
26
+ "webkitRequestFullscreen",
27
+ "webkitExitFullscreen",
28
+ "webkitFullscreenElement",
29
+ "webkitFullscreenEnabled",
30
+ "webkitfullscreenchange",
31
+ "webkitfullscreenerror"
32
+ ],
33
+ // Old WebKit (Safari 5.1)
34
+ [
35
+ "webkitRequestFullScreen",
36
+ "webkitCancelFullScreen",
37
+ "webkitCurrentFullScreenElement",
38
+ "webkitCancelFullScreen",
39
+ "webkitfullscreenchange",
40
+ "webkitfullscreenerror"
41
+ ],
42
+ [
43
+ "mozRequestFullScreen",
44
+ "mozCancelFullScreen",
45
+ "mozFullScreenElement",
46
+ "mozFullScreenEnabled",
47
+ "mozfullscreenchange",
48
+ "mozfullscreenerror"
49
+ ],
50
+ [
51
+ "msRequestFullscreen",
52
+ "msExitFullscreen",
53
+ "msFullscreenElement",
54
+ "msFullscreenEnabled",
55
+ "MSFullscreenChange",
56
+ "MSFullscreenError"
57
+ ]
58
+ ];
59
+
60
+ var i = 0;
61
+ var l = fnMap.length;
62
+ var ret = {};
63
+
64
+ for (; i < l; i++) {
65
+ val = fnMap[i];
66
+ if (val && val[1] in document) {
67
+ for (i = 0; i < val.length; i++) {
68
+ ret[fnMap[0][i]] = val[i];
69
+ }
70
+ return ret;
71
+ }
72
+ }
73
+
74
+ return false;
75
+ })();
76
+
77
+ var eventNameMap = {
78
+ change: fn.fullscreenchange,
79
+ error: fn.fullscreenerror
80
+ };
81
+
82
+ var screenfull = {
83
+ request: function(elem) {
84
+ return new Promise(
85
+ function(resolve) {
86
+ var request = fn.requestFullscreen;
87
+
88
+ var onFullScreenEntered = function() {
89
+ this.off("change", onFullScreenEntered);
90
+ resolve();
91
+ }.bind(this);
92
+
93
+ elem = elem || document.documentElement;
94
+
95
+ // Work around Safari 5.1 bug: reports support for
96
+ // keyboard in fullscreen even though it doesn't.
97
+ // Browser sniffing, since the alternative with
98
+ // setTimeout is even worse.
99
+ if (/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)) {
100
+ elem[request]();
101
+ } else {
102
+ elem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});
103
+ }
104
+
105
+ this.on("change", onFullScreenEntered);
106
+ }.bind(this)
107
+ );
108
+ },
109
+ exit: function() {
110
+ return new Promise(
111
+ function(resolve) {
112
+ if (!this.isFullscreen) {
113
+ resolve();
114
+ return;
115
+ }
116
+
117
+ var onFullScreenExit = function() {
118
+ this.off("change", onFullScreenExit);
119
+ resolve();
120
+ }.bind(this);
121
+
122
+ document[fn.exitFullscreen]();
123
+
124
+ this.on("change", onFullScreenExit);
125
+ }.bind(this)
126
+ );
127
+ },
128
+ toggle: function(elem) {
129
+ return this.isFullscreen ? this.exit() : this.request(elem);
130
+ },
131
+ onchange: function(callback) {
132
+ this.on("change", callback);
133
+ },
134
+ onerror: function(callback) {
135
+ this.on("error", callback);
136
+ },
137
+ on: function(event, callback) {
138
+ var eventName = eventNameMap[event];
139
+ if (eventName) {
140
+ document.addEventListener(eventName, callback, false);
141
+ }
142
+ },
143
+ off: function(event, callback) {
144
+ var eventName = eventNameMap[event];
145
+ if (eventName) {
146
+ document.removeEventListener(eventName, callback, false);
147
+ }
148
+ },
149
+ raw: fn
150
+ };
151
+
152
+ if (!fn) {
153
+ if (isCommonjs) {
154
+ module.exports = false;
155
+ } else {
156
+ window.screenfull = false;
157
+ }
158
+
159
+ return;
160
+ }
161
+
162
+ Object.defineProperties(screenfull, {
163
+ isFullscreen: {
164
+ get: function() {
165
+ return Boolean(document[fn.fullscreenElement]);
166
+ }
167
+ },
168
+ element: {
169
+ enumerable: true,
170
+ get: function() {
171
+ return document[fn.fullscreenElement];
172
+ }
173
+ },
174
+ enabled: {
175
+ enumerable: true,
176
+ get: function() {
177
+ // Coerce to boolean in case of old WebKit
178
+ return Boolean(document[fn.fullscreenEnabled]);
179
+ }
180
+ }
181
+ });
182
+
183
+ if (isCommonjs) {
184
+ module.exports = screenfull;
185
+ // TODO: remove this in the next major version
186
+ module.exports.default = screenfull;
187
+ } else {
188
+ window.screenfull = screenfull;
189
+ }
190
+ })();
@@ -0,0 +1,197 @@
1
+ import SmoothScroll from "smooth-scroll";
2
+ import fullscreen from "./fullscreen";
3
+
4
+ /**
5
+ * @fileOverview
6
+ * @name helper.js
7
+ * @description This file contains functions that are used to aid core concepts in other files.
8
+ * Also some of these functions are more utility in nature.
9
+ */
10
+
11
+ /**
12
+ * Prevent and store scroll for expanded menu
13
+ * @description When the show/hide for nav is triggered we want to
14
+ * lock the position of the users state in scroll and also prevent
15
+ * the nav from going back to 0,0 in fixed state. These functions prevent that.
16
+ */
17
+ export const preventDefault = e => {
18
+ e = e || window.event;
19
+ if (e.preventDefault) e.preventDefault();
20
+ e.returnValue = false;
21
+ };
22
+
23
+ const preventDefaultForScrollKeys = e => {
24
+ /*
25
+ left: 37,
26
+ up: 38,
27
+ right: 39,
28
+ down: 40,
29
+ spacebar: 32,
30
+ pageup: 33,
31
+ pagedown: 34,
32
+ end: 35,
33
+ home: 36
34
+ */
35
+ let keys = {
36
+ 37: 1,
37
+ 38: 1,
38
+ 39: 1,
39
+ 40: 1
40
+ };
41
+ if (keys[e.keyCode]) {
42
+ preventDefault(e);
43
+ return false;
44
+ }
45
+ };
46
+
47
+ /**
48
+ * function to trigger and use smooth scrolling, docs: https://www.npmjs.com/package/smooth-scroll
49
+ * scroll behavior specifications:
50
+ * - https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
51
+ * - https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo
52
+ */
53
+ export const smoothScroll = e => {
54
+ return new SmoothScroll('a[href*="#"]', {
55
+ // Selectors
56
+ ignore: ".quire-navbar, .quire-figure a", // Selector for links to ignore (must be a valid CSS selector)
57
+ header: ".quire-navbar", // Selector for fixed headers (must be a valid CSS selector)
58
+ topOnEmtyHash: true, // Scroll to the top of the page for links with href="#"
59
+ // Speed & Duration
60
+ speed: 500, // Integer. Amount of time in milliseconds it should take to scroll 1000px
61
+ speedAsDuration: false, // If true, use speed as the total duration of the scroll animation
62
+ durationMax: null, // Integer. The maximum amount of time the scroll animation should take
63
+ durationMin: null, // Integer. The minimum amount of time the scroll animation should take
64
+ clip: true, // If true, adjust scroll distance to prevent abrupt stops near the bottom of the page
65
+ offset: 50, // Integer or Function returning an integer. How far to offset the scrolling anchor location in pixels
66
+ // Easing
67
+ easing: "easeInOutCubic",
68
+ // History
69
+ updateURL: true, // Update the URL on scroll
70
+ popstate: true, // Animate scrolling with the forward/backward browser buttons (requires updateURL to be true)
71
+ emitEvents: true // Emit custom events
72
+ });
73
+ };
74
+
75
+ /**
76
+ * Disable scroll on element
77
+ * @param {Element} element The element that will be disabled
78
+ */
79
+ export const disableScroll = element => {
80
+ document.querySelector("html").style.overflow = "hidden";
81
+ if (element.addEventListener)
82
+ // older FF
83
+ element.addEventListener("DOMMouseScroll", preventDefault, false);
84
+ element.onwheel = preventDefault; // modern standard
85
+ element.onmousewheel = element.onmousewheel = preventDefault; // older browsers, IE
86
+ element.ontouchmove = preventDefault; // mobile
87
+ element.onkeydown = preventDefaultForScrollKeys;
88
+ };
89
+
90
+ /**
91
+ * Enable scroll on element
92
+ * @param {Element} element The element that will be enabled
93
+ */
94
+ export const enableScroll = element => {
95
+ document.querySelector("html").style.overflow = "";
96
+ if (element.removeEventListener)
97
+ element.removeEventListener("DOMMouseScroll", preventDefault, false);
98
+ element.onmousewheel = element.onmousewheel = null;
99
+ element.onwheel = null;
100
+ element.ontouchmove = null;
101
+ element.onkeydown = null;
102
+ };
103
+
104
+ /**
105
+ * Preload Images
106
+ * @param {Array} srcs array of images
107
+ * @return {Promise}
108
+ */
109
+ export const preloadImages = (srcs) => {
110
+ return new Promise((resolve) => {
111
+ if (!srcs.length) resolve();
112
+ for (let i = srcs.length; i >= 0; --i) {
113
+ const img = new Image();
114
+ img.onload = () => {
115
+ if (i <= 0) resolve();
116
+ };
117
+ img.src = srcs[i];
118
+ }
119
+ });
120
+ };
121
+
122
+ /**
123
+ * Stop an iframe or HTML5 <video> from playing
124
+ * @param {Element} element The element that contains the video
125
+ */
126
+ export const stopVideo = element => {
127
+ let iframe = element.querySelector("iframe");
128
+ let video = element.querySelector("video");
129
+ if (iframe) {
130
+ let iframeSrc = iframe.src;
131
+ iframe.src = iframeSrc;
132
+ }
133
+ if (video) {
134
+ video.pause();
135
+ }
136
+ };
137
+
138
+ /**
139
+ * @description toggle fullscreen for entry leaflet images
140
+ * Also pass in the maps array to invalidate size after transition.
141
+ * @param {array} mapArr must be an integer
142
+ * @param {element} fullscreenButton must be an element
143
+ * @param {element} elementToFullscreen must be an element
144
+ */
145
+ export const toggleFullscreen = (
146
+ mapArr,
147
+ fullscreenButton,
148
+ elementToFullscreen
149
+ ) => {
150
+ /**
151
+ * validateSize
152
+ * @description
153
+ * invalidateSize map as a promise
154
+ * @param {object} map must be an object
155
+ */
156
+ function validateSize(map) {
157
+ return new Promise((resolve, reject) => {
158
+ if (!map) reject(new Error("No map!"));
159
+ setTimeout(() => {
160
+ let modal = document.querySelector(".mfp-content");
161
+ if (modal) {
162
+ if (
163
+ map._container ===
164
+ modal.getElementsByTagName("figure")[0].children[0]
165
+ ) {
166
+ resolve(map.invalidateSize());
167
+ }
168
+ } else {
169
+ resolve(map.invalidateSize());
170
+ }
171
+ }, 250);
172
+ });
173
+ }
174
+
175
+ const el = elementToFullscreen;
176
+ let toggleFullscreen = fullscreenButton;
177
+ if (toggleFullscreen) {
178
+ toggleFullscreen.addEventListener("click", event => {
179
+ event.stopPropagation();
180
+ event.preventDefault();
181
+ if (fullscreen.enabled && el) {
182
+ el.classList.toggle("fullscreen", !el.classList.contains("fullscreen"));
183
+ // @ts-ignore
184
+ event.target.classList.toggle(
185
+ "fullscreen",
186
+ // @ts-ignore
187
+ !event.target.classList.contains("fullscreen")
188
+ );
189
+ fullscreen.toggle(el);
190
+ mapArr.forEach(v => {
191
+ validateSize(v).catch(err => console.log(err));
192
+ });
193
+ }
194
+ return false;
195
+ });
196
+ }
197
+ };
@@ -0,0 +1,94 @@
1
+ import L from 'leaflet'
2
+ import 'leaflet-fullscreen'
3
+ // import leafletImage from 'leaflet-image'
4
+
5
+ class Map {
6
+ constructor(id) {
7
+
8
+ // remove and refresh before init
9
+ if (figureModal) {
10
+ if (window.mapID != undefined || window.mapID != undefined) {
11
+ window.mapID.off()
12
+ window.mapID.remove()
13
+ }
14
+ let node = document.getElementById(id);
15
+ if (node) {
16
+ while (node.firstChild) {
17
+ node.removeChild(node.firstChild)
18
+ }
19
+ }
20
+ }
21
+
22
+
23
+ if (id) {
24
+ this.el = id
25
+ this.tiles = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
26
+ this.attribution = 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'
27
+ this.data = $(`#${this.el}`).data('geojson')
28
+ this.center = this.getCoordinates()
29
+ this.defaultZoom = 6
30
+ this.map = this.createMap()
31
+ window.mapID = this.map
32
+ this.addTiles()
33
+
34
+ this.map.on('fullscreenchange', function () {
35
+ this.invalidateSize(true)
36
+ })
37
+
38
+ if (this.data) {
39
+ this.getData()
40
+ }
41
+
42
+ setTimeout(() => {
43
+ this.map.invalidateSize()
44
+ }, 100)
45
+ }
46
+ }
47
+
48
+ createMap() {
49
+ return L.map(this.el, {
50
+ fullscreenControl: {
51
+ pseudoFullscreen: false // if true, fullscreen to page width and height
52
+ }
53
+ })
54
+ .setView(this.center, this.defaultZoom)
55
+ }
56
+
57
+ addTiles() {
58
+ L.tileLayer(this.tiles, {
59
+ // options
60
+ attribution: this.attribution
61
+ }).addTo(this.map)
62
+ }
63
+
64
+ getCoordinates() {
65
+ let lat = $('#' + this.el).data('lat')
66
+ let long = $('#' + this.el).data('long')
67
+ return [lat, long]
68
+ }
69
+
70
+ getData() {
71
+ $.getJSON(this.data, json => {
72
+ L.geoJson(json, {
73
+ // Change the style here as desired
74
+ pointToLayer: (feature, latlng) => {
75
+ return L.circleMarker(latlng, {
76
+ radius: 8,
77
+ fillColor: '#333',
78
+ color: '#000',
79
+ weight: 1,
80
+ opacity: 1,
81
+ fillOpacity: 0.75
82
+ })
83
+ },
84
+ // Change styles here as desired
85
+ onEachFeature: (feature, layer) => {
86
+ let options = { minWidth: 100, maxHeight: 250 }
87
+ layer.bindPopup(feature.properties.description, options)
88
+ }
89
+ }).addTo(this.map)
90
+ })
91
+ }
92
+ }
93
+
94
+ export default Map