@projektemacher/storymapjs 0.10.7 → 0.10.8
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 +350 -19
- package/README.md +43 -9
- package/dist/assets/demo-DBpeF31K.js +1 -0
- package/dist/assets/harness-Cr0rYpvt.js +1 -0
- package/dist/assets/harness-multi-CYHgI0a9.js +1 -0
- package/dist/assets/harness-support-Do7sIp2j.js +1 -0
- package/dist/assets/index-wHPqGrBS.js +1 -0
- package/dist/assets/main-DXalctuR.js +17 -0
- package/dist/context.json +12 -9
- package/dist/css/fonts/files/amatic-sc-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/amatic-sc-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/amatic-sc-hebrew-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/amatic-sc-hebrew-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/amatic-sc-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/amatic-sc-vietnamese-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-100-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-100-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-200-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-600-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-800-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-900-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-100-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-100-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-200-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-600-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-800-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-900-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-100-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-100-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-200-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-600-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-800-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-900-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/bitter-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-arabic-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-200-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-600-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-800-normal.woff2 +0 -0
- package/dist/css/fonts/files/cairo-latin-ext-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/dancing-script-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-cyrillic-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-greek-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-greek-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-greek-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-greek-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/eb-garamond-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-greek-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-vietnamese-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-vietnamese-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/gentium-book-plus-vietnamese-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-vietnamese-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/old-standard-tt-vietnamese-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-cyrillic-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-greek-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-greek-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-greek-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-greek-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-hebrew-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-hebrew-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/open-sans-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-900-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-cyrillic-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-900-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-sc-vietnamese-900-normal.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/playfair-display-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-narrow-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-narrow-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-narrow-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-sans-narrow-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/pt-serif-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/raleway-cyrillic-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/raleway-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/raleway-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/raleway-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/raleway-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/raleway-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/roboto-slab-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/roboto-slab-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/roboto-slab-greek-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/roboto-slab-greek-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/roboto-slab-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-cyrillic-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-300-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-300-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-400-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-500-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-500-normal.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-700-italic.woff2 +0 -0
- package/dist/css/fonts/files/ubuntu-greek-ext-700-normal.woff2 +0 -0
- package/dist/css/fonts/files/unica-one-vietnamese-400-normal.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-cyrillic-ext-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-cyrillic-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-cyrillic-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-greek-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-greek-wght-normal.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-vietnamese-wght-italic.woff2 +0 -0
- package/dist/css/fonts/files/vollkorn-vietnamese-wght-normal.woff2 +0 -0
- package/dist/css/fonts/font.abril-droidsans.css +3 -0
- package/dist/css/fonts/font.amatic-andika.css +57 -0
- package/dist/css/fonts/font.bitter-raleway.css +111 -0
- package/dist/css/fonts/font.cairo.css +312 -0
- package/dist/css/fonts/font.clicker-garamond.css +93 -0
- package/dist/css/fonts/font.dancing-ledger.css +12 -0
- package/dist/css/fonts/font.default.css +183 -0
- package/dist/css/fonts/font.fjalla-average.css +3 -0
- package/dist/css/fonts/font.georgia-helvetica.css +3 -0
- package/dist/css/fonts/font.knightlab.css +642 -0
- package/dist/css/fonts/font.lustria-lato.css +3 -0
- package/dist/css/fonts/font.medula-lato.css +3 -0
- package/dist/css/fonts/font.oldstandard.css +84 -0
- package/dist/css/fonts/font.opensans-gentiumbook.css +183 -0
- package/dist/css/fonts/font.playfair-faunaone.css +39 -0
- package/dist/css/fonts/font.playfair.css +147 -0
- package/dist/css/fonts/font.pt.css +183 -0
- package/dist/css/fonts/font.roboto-megrim.css +3 -0
- package/dist/css/fonts/font.rufina-sintony.css +3 -0
- package/dist/css/fonts/font.ubuntu.css +291 -0
- package/dist/css/fonts/font.unicaone-vollkorn.css +84 -0
- package/dist/css/storymap.css +1 -1
- package/dist/demo.html +2 -2
- package/dist/docs/api/.nojekyll +1 -0
- package/dist/docs/api/assets/custom.css +47 -0
- package/dist/docs/api/assets/hierarchy.js +1 -0
- package/dist/docs/api/assets/highlight.css +57 -0
- package/dist/docs/api/assets/icons.js +18 -0
- package/dist/docs/api/assets/icons.svg +1 -0
- package/dist/docs/api/assets/main.js +60 -0
- package/dist/docs/api/assets/navigation.js +1 -0
- package/dist/docs/api/assets/search.js +1 -0
- package/dist/docs/api/assets/style.css +1648 -0
- package/dist/docs/api/classes/StoryMap.html +1604 -0
- package/dist/docs/api/functions/MediaType.html +51 -0
- package/dist/docs/api/functions/isPresentation3Collection.html +47 -0
- package/dist/docs/api/functions/isPresentation3Manifest.html +53 -0
- package/dist/docs/api/functions/loadCSS.html +63 -0
- package/dist/docs/api/functions/manifestToStorymapData.html +49 -0
- package/dist/docs/api/functions/setLanguage.html +54 -0
- package/dist/docs/api/functions/storymapToManifest.html +57 -0
- package/dist/docs/api/functions/validateStorymap.html +53 -0
- package/dist/docs/api/functions/validateStorymapAndReport.html +54 -0
- package/dist/docs/api/hierarchy.html +28 -0
- package/dist/docs/api/index.html +197 -0
- package/dist/docs/api/interfaces/AnimationHandle.html +60 -0
- package/dist/docs/api/interfaces/ImagereadyPayload.html +71 -0
- package/dist/docs/api/interfaces/LanguageEntry.html +102 -0
- package/dist/docs/api/interfaces/LatLngLiteral.html +73 -0
- package/dist/docs/api/interfaces/LoadOptions.html +59 -0
- package/dist/docs/api/interfaces/OlLayer.html +1400 -0
- package/dist/docs/api/interfaces/OlMap.html +1656 -0
- package/dist/docs/api/interfaces/OlProjection.html +332 -0
- package/dist/docs/api/interfaces/OlSource.html +784 -0
- package/dist/docs/api/interfaces/OlTileLayer.html +1497 -0
- package/dist/docs/api/interfaces/OlVectorLayer.html +1559 -0
- package/dist/docs/api/interfaces/OlView.html +1958 -0
- package/dist/docs/api/interfaces/StorymapData.html +71 -0
- package/dist/docs/api/interfaces/StorymapDataWrapper.html +60 -0
- package/dist/docs/api/interfaces/StorymapDocument.html +68 -0
- package/dist/docs/api/interfaces/StorymapError.html +63 -0
- package/dist/docs/api/interfaces/StorymapGeoreference.html +93 -0
- package/dist/docs/api/interfaces/StorymapGeoreferenceBody.html +74 -0
- package/dist/docs/api/interfaces/StorymapGroundControlPoint.html +69 -0
- package/dist/docs/api/interfaces/StorymapLanguageMap.html +57 -0
- package/dist/docs/api/interfaces/StorymapManifest.html +118 -0
- package/dist/docs/api/interfaces/StorymapManifestAnnotation.html +105 -0
- package/dist/docs/api/interfaces/StorymapManifestBackground.html +81 -0
- package/dist/docs/api/interfaces/StorymapManifestCanvas.html +140 -0
- package/dist/docs/api/interfaces/StorymapManifestContentResource.html +97 -0
- package/dist/docs/api/interfaces/StorymapManifestFeatureCollection.html +82 -0
- package/dist/docs/api/interfaces/StorymapManifestGeoreferencing.html +87 -0
- package/dist/docs/api/interfaces/StorymapManifestImageService.html +69 -0
- package/dist/docs/api/interfaces/StorymapManifestRange.html +75 -0
- package/dist/docs/api/interfaces/StorymapManifestService.html +77 -0
- package/dist/docs/api/interfaces/StorymapManifestSpecificResource.html +69 -0
- package/dist/docs/api/interfaces/StorymapManifestStatement.html +63 -0
- package/dist/docs/api/interfaces/StorymapMapOptions.html +92 -0
- package/dist/docs/api/interfaces/StorymapOptions.html +532 -0
- package/dist/docs/api/interfaces/StorymapOverlayLayer.html +126 -0
- package/dist/docs/api/interfaces/StorymapSlide.html +132 -0
- package/dist/docs/api/interfaces/StorymapSlideBackground.html +72 -0
- package/dist/docs/api/interfaces/StorymapSlideLocation.html +117 -0
- package/dist/docs/api/interfaces/StorymapSlideMarker.html +104 -0
- package/dist/docs/api/interfaces/StorymapSlideMedia.html +110 -0
- package/dist/docs/api/interfaces/StorymapSlideNarration.html +65 -0
- package/dist/docs/api/interfaces/StorymapSlideText.html +72 -0
- package/dist/docs/api/interfaces/StorymapTilejson.html +105 -0
- package/dist/docs/api/media/es.json +31 -0
- package/dist/docs/api/media/migration-from-knightlab.md +359 -0
- package/dist/docs/api/modules.html +50 -0
- package/dist/docs/api/types/ContentState.html +70 -0
- package/dist/docs/api/types/ImagereadyKind.html +34 -0
- package/dist/docs/api/types/MediaTypeMatch.html +78 -0
- package/dist/docs/api/types/TileSourceFactory.html +53 -0
- package/dist/docs/authoring.html +293 -0
- package/dist/docs/iiif.html +617 -62
- package/dist/docs/migration.html +313 -11
- package/dist/docs/readme.html +40 -9
- package/dist/embed/index.html +1 -1
- package/dist/examples/issue-242-nonlatin.json +55 -0
- package/dist/examples/issue-305-start-at-slide-data.json +96 -0
- package/dist/examples/issue-358-iframe.json +57 -0
- package/dist/examples/issue-iiif-geo.json +32 -0
- package/dist/examples/issue-image-alt.json +23 -0
- package/dist/examples/issue-image-region.json +42 -0
- package/dist/examples/issue-image-srcset.json +24 -0
- package/dist/examples/map-area-overlays.json +68 -0
- package/dist/examples/no-map.json +44 -0
- package/dist/examples-iiif/annotated-image.json +188 -0
- package/dist/examples-iiif/bob-boilen.json +11 -5
- package/dist/examples-iiif/courbet.json +9 -6
- package/dist/examples-iiif/empty.json +8 -4
- package/dist/examples-iiif/flickr-drewvigal.json +248 -24
- package/dist/examples-iiif/flickr-zach.wise.json +8 -4
- package/dist/examples-iiif/georeferenced-layer-unsupported.json +153 -0
- package/dist/examples-iiif/georeferenced-layer.json +318 -0
- package/dist/examples-iiif/iiif-wellcome.json +9 -6
- package/dist/examples-iiif/instagram-chenpamela.json +381 -36
- package/dist/examples-iiif/instagram_brentfoster.json +429 -40
- package/dist/examples-iiif/instagram_couch.json +261 -26
- package/dist/examples-iiif/instagram_joegermuska.json +441 -41
- package/dist/examples-iiif/instagram_matteich.json +261 -26
- package/dist/examples-iiif/instagram_mirandamulligan.json +261 -26
- package/dist/examples-iiif/instagram_raymondmccrea.json +261 -26
- package/dist/examples-iiif/instagram_test.json +261 -26
- package/dist/examples-iiif/issue-134-no-lines.json +9 -5
- package/dist/examples-iiif/issue-177-color-vars.json +9 -5
- package/dist/examples-iiif/issue-211-rtl.json +9 -5
- package/dist/examples-iiif/issue-242-nonlatin.json +239 -0
- package/dist/examples-iiif/issue-272-facebook.json +9 -5
- package/dist/examples-iiif/issue-305-start-at-slide-data.json +305 -0
- package/dist/examples-iiif/issue-305-start-at-slide.json +9 -5
- package/dist/examples-iiif/issue-341-distance.json +9 -5
- package/dist/examples-iiif/issue-358-iframe.json +190 -0
- package/dist/examples-iiif/issue-360-juxtapose.json +22 -7
- package/dist/examples-iiif/issue-368-null-fields.json +9 -5
- package/dist/examples-iiif/issue-375-code-lists.json +9 -5
- package/dist/examples-iiif/issue-381-dateline.json +9 -5
- package/dist/examples-iiif/issue-405-custom-icon.json +203 -0
- package/dist/examples-iiif/issue-425-many-slides.json +9 -5
- package/dist/examples-iiif/issue-428-background.json +20 -8
- package/dist/examples-iiif/issue-435-googlemaps.json +9 -5
- package/dist/examples-iiif/issue-437-documentcloud.json +22 -7
- package/dist/examples-iiif/issue-451-webp.json +9 -5
- package/dist/examples-iiif/issue-455-audio.json +9 -5
- package/dist/examples-iiif/issue-480-shorts.json +9 -5
- package/dist/examples-iiif/issue-506-marker-sync.json +9 -5
- package/dist/examples-iiif/issue-iiif-geo.json +200 -0
- package/dist/examples-iiif/issue-image-alt.json +90 -0
- package/dist/examples-iiif/issue-image-region.json +203 -0
- package/dist/examples-iiif/issue-image-srcset.json +87 -0
- package/dist/examples-iiif/jansteen.json +9 -6
- package/dist/examples-iiif/katrina.json +197 -41
- package/dist/examples-iiif/map-area-overlays.json +289 -0
- package/dist/examples-iiif/marktwain.json +255 -58
- package/dist/examples-iiif/no-map.json +148 -0
- package/dist/examples-iiif/population.json +440 -76
- package/dist/examples-iiif/president.json +456 -83
- package/dist/examples-iiif/scroll-hint.json +190 -0
- package/dist/examples-iiif/seurat.json +113 -22
- package/dist/examples-iiif/zoomify-clamp.json +153 -0
- package/dist/harness-multi.html +17 -0
- package/dist/harness.html +3 -2
- package/dist/index.html +16 -10
- package/dist/js/storymap.d.ts +1439 -114
- package/dist/js/storymap.js +24654 -21936
- package/dist/js/storymap.js.map +1 -1
- package/dist/navplace-properties.json +40 -0
- package/docs/migration-from-knightlab.md +229 -9
- package/docs/storymap-as-iiif-manifest.md +559 -135
- package/package.json +11 -8
- package/schema/storymap.schema.json +431 -78
- package/src/animation/easings.ts +8 -1
- package/src/animation/tween.ts +186 -0
- package/src/core/Browser.ts +6 -5
- package/src/core/Load.ts +54 -2
- package/src/core/Util.ts +255 -193
- package/src/core/mixins.ts +24 -7
- package/src/core/viewers.ts +94 -0
- package/src/dom/DomEvent.ts +27 -8
- package/src/globals.d.ts +8 -0
- package/src/language/Language.ts +199 -25
- package/src/language/locale/.expected-gaps.json +86 -0
- package/src/language/locale/be.json +15 -2
- package/src/language/locale/bg.json +15 -2
- package/src/language/locale/cs.json +15 -2
- package/src/language/locale/de.json +12 -1
- package/src/language/locale/el.json +15 -2
- package/src/language/locale/en.json +6 -2
- package/src/language/locale/es.json +15 -2
- package/src/language/locale/et.json +5 -1
- package/src/language/locale/fr.json +15 -2
- package/src/language/locale/he.json +16 -3
- package/src/language/locale/hu.json +15 -2
- package/src/language/locale/is.json +5 -1
- package/src/language/locale/it.json +15 -2
- package/src/language/locale/jp.json +15 -2
- package/src/language/locale/ko.json +15 -2
- package/src/language/locale/nl.json +15 -2
- package/src/language/locale/nn.json +5 -1
- package/src/language/locale/no.json +15 -2
- package/src/language/locale/pl.json +15 -2
- package/src/language/locale/pt.json +15 -2
- package/src/language/locale/ru.json +15 -2
- package/src/language/locale/sk.json +15 -2
- package/src/language/locale/sr.json +5 -1
- package/src/language/locale/sv.json +15 -2
- package/src/language/locale/tr.json +15 -2
- package/src/language/locale/uk.json +15 -2
- package/src/language/locale/ur.json +5 -1
- package/src/language/locale/zh-cn.json +15 -2
- package/src/language/locale/zh-tw.json +15 -2
- package/src/main.ts +92 -0
- package/src/map/Map.ts +183 -106
- package/src/map/MapMarker.ts +28 -5
- package/src/map/georeference.ts +325 -0
- package/src/map/openlayers/Map.OpenLayers.ts +850 -237
- package/src/map/openlayers/MapMarker.OpenLayers.ts +248 -24
- package/src/map/openlayers/zoomifyTiles.ts +1 -4
- package/src/media/EmbedUtil.ts +308 -24
- package/src/media/Media.ts +243 -55
- package/src/media/embedId.ts +104 -0
- package/src/media/types/Audio.ts +9 -82
- package/src/media/types/Blockquote.ts +2 -3
- package/src/media/types/DailyMotion.ts +5 -10
- package/src/media/types/DocumentCloud.ts +6 -35
- package/src/media/types/Facebook.ts +3 -4
- package/src/media/types/Flickr.ts +9 -9
- package/src/media/types/GoogleDoc.ts +3 -4
- package/src/media/types/HtmlMedia.ts +167 -0
- package/src/media/types/IFrame.ts +3 -4
- package/src/media/types/Image.ts +72 -6
- package/src/media/types/Juxtapose.ts +14 -5
- package/src/media/types/SoundCloud.ts +28 -6
- package/src/media/types/Text.ts +19 -13
- package/src/media/types/Twitter.ts +27 -14
- package/src/media/types/Video.ts +9 -79
- package/src/media/types/Vimeo.ts +10 -10
- package/src/media/types/Website.ts +23 -13
- package/src/media/types/Wikipedia.ts +18 -8
- package/src/media/types/YouTube.ts +71 -39
- package/src/scss/Typography.scss +1 -3
- package/src/scss/VCO.StoryMap.Dark.scss +18 -6
- package/src/scss/VCO.StoryMap.scss +37 -6
- package/src/scss/Variables.Dark.scss +3 -2
- package/src/scss/Variables.scss +3 -2
- package/src/scss/core/Mixins.scss +5 -63
- package/src/scss/fonts/font.amatic-andika.scss +3 -0
- package/src/scss/fonts/font.bitter-raleway.scss +6 -0
- package/src/scss/fonts/font.cairo.scss +79 -0
- package/src/scss/fonts/font.clicker-garamond.scss +5 -0
- package/src/scss/fonts/font.dancing-ledger.scss +1 -0
- package/src/scss/fonts/font.knightlab.scss +14 -0
- package/src/scss/fonts/font.oldstandard.scss +6 -0
- package/src/scss/fonts/font.opensans-gentiumbook.scss +5 -0
- package/src/scss/fonts/font.playfair-faunaone.scss +2 -0
- package/src/scss/fonts/font.playfair.scss +4 -0
- package/src/scss/fonts/font.pt.scss +6 -0
- package/src/scss/fonts/font.ubuntu.scss +4 -0
- package/src/scss/fonts/font.unicaone-vollkorn.scss +5 -0
- package/src/scss/map/VCO.MapMarker.scss +98 -3
- package/src/scss/media/VCO.Media.scss +7 -10
- package/src/scss/media/types/VCO.Media.Text.scss +8 -0
- package/src/scss/media/types/VCO.Media.Wikipedia.scss +2 -1
- package/src/scss/slider/VCO.Slide.scss +13 -3
- package/src/scss/slider/VCO.SlideNav.scss +11 -17
- package/src/scss/slider/VCO.StorySlider.scss +4 -2
- package/src/scss/ui/VCO.Consent.scss +44 -0
- package/src/scss/ui/VCO.MenuBar.Button.scss +8 -0
- package/src/scss/ui/VCO.Message.scss +2 -5
- package/src/site/site.ts +2 -1
- package/src/slider/Slide.ts +121 -27
- package/src/slider/SlideNav.ts +39 -5
- package/src/slider/StorySlider.ts +153 -42
- package/src/storymap/Consent.ts +407 -82
- package/src/storymap/StoryMap.ts +1192 -182
- package/src/storymap/content-state.ts +185 -0
- package/src/storymap/iiif.ts +1526 -68
- package/src/storymap/to-iiif.ts +921 -0
- package/src/storymap/validate.ts +80 -7
- package/src/types.ts +223 -26
- package/src/ui/MenuBar.ts +98 -45
- package/src/ui/Message.ts +9 -0
- package/src/ui/Swipable.ts +145 -78
- package/dist/assets/demo-D6cTmzn6.js +0 -1
- package/dist/assets/harness-BPFlzutp.js +0 -1
- package/dist/assets/index-DDsPBPZA.js +0 -1
- package/dist/assets/main-Y-MYUSJ4.js +0 -17
- package/src/animation/morpheus.d.ts +0 -41
- package/src/scss/media/types/VCO.Media.Instagram.scss +0 -7
- package/src/scss/media/types/VCO.Media.Profile.scss +0 -5
- package/src/ui/Draggable.ts +0 -374
package/src/main.ts
CHANGED
|
@@ -41,11 +41,103 @@ export { setLanguage } from "./language/Language";
|
|
|
41
41
|
*/
|
|
42
42
|
export { validateStorymap, validateStorymapAndReport } from "./storymap/validate";
|
|
43
43
|
|
|
44
|
+
/** One problem `validateStorymap()` reports. */
|
|
45
|
+
export type { StorymapError } from "./storymap/validate";
|
|
46
|
+
|
|
47
|
+
/** `loadCSS()`'s options (currently the abort signal). */
|
|
48
|
+
export type { LoadOptions } from "./core/Load";
|
|
49
|
+
|
|
50
|
+
/** The shape of a bundled locale file, as `setLanguage()` reads it. */
|
|
51
|
+
export type { LanguageEntry } from "./language/Language";
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A IIIF Content State 1.0 target: the canvas a deep link names, and the
|
|
55
|
+
* region within it when the link carries one.
|
|
56
|
+
*/
|
|
57
|
+
export type { ContentState } from "./storymap/content-state";
|
|
58
|
+
|
|
44
59
|
/**
|
|
45
60
|
* Public data and options types for constructing a StoryMap.
|
|
61
|
+
*
|
|
62
|
+
* The data types are exported rather than only referenced: they are what a host
|
|
63
|
+
* actually types its document and options with, and TypeDoc warns about a
|
|
64
|
+
* documented member whose type it cannot link.
|
|
46
65
|
*/
|
|
47
66
|
export type {
|
|
48
67
|
StorymapSlide,
|
|
68
|
+
StorymapSlideText,
|
|
69
|
+
StorymapSlideMedia,
|
|
70
|
+
StorymapSlideMarker,
|
|
71
|
+
StorymapSlideNarration,
|
|
72
|
+
StorymapSlideBackground,
|
|
73
|
+
StorymapSlideLocation,
|
|
74
|
+
StorymapData,
|
|
49
75
|
StorymapDataWrapper,
|
|
50
76
|
StorymapOptions,
|
|
77
|
+
StorymapOverlayLayer,
|
|
78
|
+
StorymapTilejson,
|
|
79
|
+
StorymapGeoreference,
|
|
80
|
+
StorymapGeoreferenceBody,
|
|
81
|
+
StorymapGroundControlPoint,
|
|
82
|
+
StorymapMapOptions,
|
|
83
|
+
TileSourceFactory,
|
|
84
|
+
LatLngLiteral,
|
|
85
|
+
MediaTypeMatch,
|
|
86
|
+
AnimationHandle,
|
|
51
87
|
} from "./types";
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* True when a fetched document is an IIIF Presentation 3 manifest (accepted
|
|
91
|
+
* directly as a StoryMap source).
|
|
92
|
+
*/
|
|
93
|
+
export {
|
|
94
|
+
isPresentation3Manifest,
|
|
95
|
+
isPresentation3Collection,
|
|
96
|
+
manifestToStorymapData,
|
|
97
|
+
} from "./storymap/iiif";
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Convert a legacy storymap document into a IIIF Presentation 3 manifest —
|
|
101
|
+
* the writer counterpart of `manifestToStorymapData()`. Pure, so the same
|
|
102
|
+
* document always produces the same manifest.
|
|
103
|
+
*/
|
|
104
|
+
export { storymapToManifest } from "./storymap/to-iiif";
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The manifest shape `storymapToManifest()` produces, for a host that wants to
|
|
108
|
+
* consume or further annotate the result.
|
|
109
|
+
*/
|
|
110
|
+
export type {
|
|
111
|
+
StorymapDocument,
|
|
112
|
+
StorymapManifest,
|
|
113
|
+
StorymapManifestCanvas,
|
|
114
|
+
StorymapManifestService,
|
|
115
|
+
StorymapLanguageMap,
|
|
116
|
+
StorymapManifestAnnotation,
|
|
117
|
+
StorymapManifestBackground,
|
|
118
|
+
StorymapManifestContentResource,
|
|
119
|
+
StorymapManifestFeatureCollection,
|
|
120
|
+
StorymapManifestGeoreferencing,
|
|
121
|
+
StorymapManifestImageService,
|
|
122
|
+
StorymapManifestRange,
|
|
123
|
+
StorymapManifestSpecificResource,
|
|
124
|
+
StorymapManifestStatement,
|
|
125
|
+
} from "./storymap/to-iiif";
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Re-exported OpenLayers types, so consumers can type the map reachable at
|
|
129
|
+
* `storymap.map` without depending on `ol` themselves.
|
|
130
|
+
*/
|
|
131
|
+
export type { default as OlMap } from "ol/Map";
|
|
132
|
+
export type { default as OlView } from "ol/View";
|
|
133
|
+
export type { default as OlLayer } from "ol/layer/Layer";
|
|
134
|
+
export type { default as OlTileLayer } from "ol/layer/Tile";
|
|
135
|
+
export type { default as OlVectorLayer } from "ol/layer/Vector";
|
|
136
|
+
export type { default as OlSource } from "ol/source/Source";
|
|
137
|
+
export type { default as OlProjection } from "ol/proj/Projection";
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Payload of the `imageready` event, fired when an image source is actually
|
|
141
|
+
* attached — the only outward signal that the imagery is really on the map.
|
|
142
|
+
*/
|
|
143
|
+
export type { ImagereadyKind, ImagereadyPayload } from "./map/openlayers/Map.OpenLayers";
|
package/src/map/Map.ts
CHANGED
|
@@ -4,6 +4,7 @@ import Dom from "../dom/Dom";
|
|
|
4
4
|
import { Browser } from "../core/Browser";
|
|
5
5
|
import type { Map as OlMap } from "ol";
|
|
6
6
|
import type { Tile as TileLayer, Vector as VectorLayer } from "ol/layer";
|
|
7
|
+
import type Layer from "ol/layer/Layer";
|
|
7
8
|
import type OverviewMap from "ol/control/OverviewMap";
|
|
8
9
|
import type MapMarker from "./MapMarker";
|
|
9
10
|
import type { LinePoint, ViewToOptions } from "./types";
|
|
@@ -38,13 +39,19 @@ class MapBase {
|
|
|
38
39
|
declare "_map": OlMap | null;
|
|
39
40
|
declare "_mini_map": OverviewMap | null;
|
|
40
41
|
declare "_markers": MapMarker[];
|
|
42
|
+
/**
|
|
43
|
+
* Zooms computed by the engine's `_calculateMarkerZooms`, keyed by
|
|
44
|
+
* marker index. Kept off `marker.data` so navigating never mutates the
|
|
45
|
+
* author's storymap document (`StoryMap.data` is that same object graph).
|
|
46
|
+
*/
|
|
47
|
+
declare "_marker_zooms": (number | undefined)[];
|
|
41
48
|
declare "zoom_min_max": { min: number | null; max: number | null };
|
|
42
49
|
declare "_line": VectorLayer | null;
|
|
43
50
|
declare "_line_active": VectorLayer | null;
|
|
44
51
|
declare "current_marker": number;
|
|
45
52
|
declare "bounds_array": number[][] | null;
|
|
46
|
-
declare "_tile_layer":
|
|
47
|
-
declare "_tile_layer_mini":
|
|
53
|
+
declare "_tile_layer": Layer | null;
|
|
54
|
+
declare "_tile_layer_mini": Layer | null;
|
|
48
55
|
declare "_image_layer": TileLayer | null;
|
|
49
56
|
declare "data": StorymapData;
|
|
50
57
|
declare "options": StorymapOptions;
|
|
@@ -69,7 +76,11 @@ class MapBase {
|
|
|
69
76
|
if (typeof elem === "object") {
|
|
70
77
|
this._el.container = elem;
|
|
71
78
|
} else {
|
|
72
|
-
|
|
79
|
+
const found = Dom.get(elem);
|
|
80
|
+
if (!found) {
|
|
81
|
+
throw new Error("StoryMapJS: no element with id " + elem);
|
|
82
|
+
}
|
|
83
|
+
this._el.container = found;
|
|
73
84
|
}
|
|
74
85
|
|
|
75
86
|
// LOADED
|
|
@@ -86,6 +97,7 @@ class MapBase {
|
|
|
86
97
|
|
|
87
98
|
// Markers
|
|
88
99
|
this._markers = [];
|
|
100
|
+
this._marker_zooms = [];
|
|
89
101
|
|
|
90
102
|
// Marker Zoom Miniumum and Maximum
|
|
91
103
|
this.zoom_min_max = {
|
|
@@ -118,13 +130,15 @@ class MapBase {
|
|
|
118
130
|
slides: [{ test: "yes" }, { test: "yes" }, { test: "yes" }],
|
|
119
131
|
};
|
|
120
132
|
|
|
121
|
-
//Options
|
|
133
|
+
// Options — the map-owned subset only. StoryMap passes its own full
|
|
134
|
+
// options object in (see the constructor), so `this.options` is a
|
|
135
|
+
// complete StorymapOptions by the time anything reads it; these are
|
|
136
|
+
// just the fallbacks for a standalone Map.
|
|
122
137
|
this.options = {
|
|
123
138
|
map_type: "osm:standard",
|
|
124
139
|
map_as_image: false,
|
|
125
140
|
map_mini: false,
|
|
126
141
|
map_background_color: "#d9d9d9",
|
|
127
|
-
map_subdomains: "",
|
|
128
142
|
map_access_token: "",
|
|
129
143
|
overlays: [],
|
|
130
144
|
overview_extent: null,
|
|
@@ -133,11 +147,7 @@ class MapBase {
|
|
|
133
147
|
attribution: "",
|
|
134
148
|
},
|
|
135
149
|
skinny_size: 650,
|
|
136
|
-
less_bounce: true,
|
|
137
|
-
path_gfx: "gfx",
|
|
138
150
|
start_at_slide: 0,
|
|
139
|
-
map_popup: false,
|
|
140
|
-
zoom_distance: 100,
|
|
141
151
|
calculate_zoom: true, // Allow map to determine best zoom level between markers (recommended)
|
|
142
152
|
line_follows_path: true, // Map history path follows default line, if false it will connect previous and current only
|
|
143
153
|
line_color: "#333",
|
|
@@ -149,7 +159,7 @@ class MapBase {
|
|
|
149
159
|
show_lines: true,
|
|
150
160
|
show_history_line: true,
|
|
151
161
|
map_center_offset: null, // takes object {top:0,left:0}
|
|
152
|
-
} as StorymapOptions;
|
|
162
|
+
} as unknown as StorymapOptions;
|
|
153
163
|
|
|
154
164
|
// Animation
|
|
155
165
|
this.animator = null;
|
|
@@ -204,32 +214,30 @@ class MapBase {
|
|
|
204
214
|
// Check to see if it's an overview
|
|
205
215
|
if (marker.data.type && marker.data.type === "overview") {
|
|
206
216
|
this._markerOverview();
|
|
207
|
-
if (!change) {
|
|
208
|
-
this._onMarkerChange();
|
|
209
|
-
}
|
|
210
217
|
} else {
|
|
211
218
|
// Make marker active
|
|
212
219
|
marker.active(true);
|
|
213
220
|
|
|
221
|
+
const target_location = marker.data.location ?? undefined;
|
|
214
222
|
if (change) {
|
|
215
223
|
// Set Map View
|
|
216
|
-
if (
|
|
217
|
-
this._viewTo(
|
|
224
|
+
if (target_location) {
|
|
225
|
+
this._viewTo(target_location, {
|
|
218
226
|
duration: this._transition_duration,
|
|
219
227
|
});
|
|
220
228
|
} else {
|
|
221
229
|
// nothing to show
|
|
222
230
|
}
|
|
223
|
-
} else {
|
|
224
|
-
if (this._hasLocation(marker.data)) {
|
|
231
|
+
} else if (target_location) {
|
|
232
|
+
if (this._hasLocation(marker.data) || this._hasRegion(marker.data)) {
|
|
225
233
|
// Calculate Zoom
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
234
|
+
const here = marker.location();
|
|
235
|
+
zoom = here
|
|
236
|
+
? this._calculateZoomChange(this._getMapCenter(true), here)
|
|
237
|
+
: undefined;
|
|
230
238
|
|
|
231
239
|
// Set Map View
|
|
232
|
-
this._viewTo(
|
|
240
|
+
this._viewTo(target_location, {
|
|
233
241
|
calculate_zoom: this.options.calculate_zoom,
|
|
234
242
|
zoom: zoom,
|
|
235
243
|
duration: this._transition_duration,
|
|
@@ -252,32 +260,19 @@ class MapBase {
|
|
|
252
260
|
// the already-traveled prefix 0..previous,
|
|
253
261
|
// which stays drawn while [prev..current]
|
|
254
262
|
// traces progressively (see _replaceLines).
|
|
255
|
-
let line_num = 0
|
|
256
|
-
point;
|
|
263
|
+
let line_num = 0;
|
|
257
264
|
let retract_path_source: LinePoint[] | null = null;
|
|
258
265
|
let grow_path_source: LinePoint[] | null = null;
|
|
259
266
|
if (previous_marker < this.current_marker) {
|
|
260
267
|
while (line_num < this.current_marker) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
lon: this._markers[line_num].data.location.lon,
|
|
265
|
-
};
|
|
266
|
-
lines_array.push(point);
|
|
268
|
+
const loc = this._locationOf(this._markers[line_num].data);
|
|
269
|
+
if (loc) {
|
|
270
|
+
lines_array.push(loc);
|
|
267
271
|
}
|
|
268
272
|
|
|
269
273
|
line_num++;
|
|
270
274
|
}
|
|
271
|
-
|
|
272
|
-
for (let idx = 0; idx <= previous_marker; idx++) {
|
|
273
|
-
if (this._hasLocation(this._markers[idx].data)) {
|
|
274
|
-
grow_path.push({
|
|
275
|
-
lat: this._markers[idx].data.location.lat,
|
|
276
|
-
lon: this._markers[idx].data.location.lon,
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
grow_path_source = grow_path;
|
|
275
|
+
grow_path_source = this._locationsUpTo(previous_marker);
|
|
281
276
|
} else if (previous_marker > this.current_marker) {
|
|
282
277
|
// Backward navigation: the line retracts —
|
|
283
278
|
// the end state is the traveled path from
|
|
@@ -285,33 +280,13 @@ class MapBase {
|
|
|
285
280
|
// the far end pulls back from the old
|
|
286
281
|
// marker to the new one (handled by the
|
|
287
282
|
// map's retract animation).
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
if (this._hasLocation(this._markers[idx].data)) {
|
|
291
|
-
traveled.push({
|
|
292
|
-
lat: this._markers[idx].data.location.lat,
|
|
293
|
-
lon: this._markers[idx].data.location.lon,
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
const retract_path = [];
|
|
298
|
-
for (let idx = 0; idx <= previous_marker; idx++) {
|
|
299
|
-
if (this._hasLocation(this._markers[idx].data)) {
|
|
300
|
-
retract_path.push({
|
|
301
|
-
lat: this._markers[idx].data.location.lat,
|
|
302
|
-
lon: this._markers[idx].data.location.lon,
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
lines_array = traveled;
|
|
307
|
-
retract_path_source = retract_path;
|
|
283
|
+
lines_array = this._locationsUpTo(this.current_marker);
|
|
284
|
+
retract_path_source = this._locationsUpTo(previous_marker);
|
|
308
285
|
}
|
|
309
286
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
lon: marker.data.location.lon,
|
|
314
|
-
});
|
|
287
|
+
const marker_loc = this._locationOf(marker.data);
|
|
288
|
+
if (!retract_path_source && marker_loc) {
|
|
289
|
+
lines_array.push(marker_loc);
|
|
315
290
|
}
|
|
316
291
|
|
|
317
292
|
this._replaceLines(this._line_active, lines_array, {
|
|
@@ -321,66 +296,80 @@ class MapBase {
|
|
|
321
296
|
});
|
|
322
297
|
}
|
|
323
298
|
} else {
|
|
324
|
-
// Show Line
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
)
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
lat: marker.data.location.lat,
|
|
335
|
-
lon: marker.data.location.lon,
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
lat: this._markers[previous_marker].data.location.lat,
|
|
339
|
-
lon: this._markers[previous_marker].data.location.lon,
|
|
340
|
-
},
|
|
341
|
-
],
|
|
342
|
-
{ duration: this._transition_duration },
|
|
343
|
-
);
|
|
299
|
+
// Show Line — both endpoints need a real location.
|
|
300
|
+
// The path branch above guards every access with
|
|
301
|
+
// _hasLocation(); `real_marker` alone is not enough
|
|
302
|
+
// because a slide can carry a region only.
|
|
303
|
+
const from = this._locationOf(marker.data);
|
|
304
|
+
const to = this._locationOf(this._markers[previous_marker].data);
|
|
305
|
+
if (this.options.show_history_line && from && to) {
|
|
306
|
+
this._replaceLines(this._line_active, [from, to], {
|
|
307
|
+
duration: this._transition_duration,
|
|
308
|
+
});
|
|
344
309
|
}
|
|
345
310
|
}
|
|
346
311
|
} else {
|
|
347
312
|
this._markerOverview();
|
|
348
|
-
if (!change) {
|
|
349
|
-
this._onMarkerChange();
|
|
350
|
-
}
|
|
351
313
|
}
|
|
352
314
|
|
|
353
|
-
// Fire Event
|
|
315
|
+
// Fire Event — once per goTo(), for every branch above
|
|
354
316
|
this._onMarkerChange();
|
|
355
317
|
}
|
|
356
318
|
}
|
|
357
319
|
}
|
|
358
320
|
}
|
|
359
321
|
|
|
322
|
+
/**
|
|
323
|
+
* Alias over the OpenLayers view: `storymap.map.getView().animate({center})`
|
|
324
|
+
* (remember `ol/proj` does not apply in image mode — see `isImageSpace()`).
|
|
325
|
+
*/
|
|
360
326
|
panTo(loc: LatLngLiteral, animate?: boolean): void {
|
|
361
327
|
this._panTo(loc, animate);
|
|
362
328
|
}
|
|
363
329
|
|
|
330
|
+
/** Alias over the OpenLayers view: `storymap.map.getView().animate({zoom})`. */
|
|
364
331
|
zoomTo(z: number, animate?: boolean): void {
|
|
365
332
|
this._zoomTo(z, animate);
|
|
366
333
|
}
|
|
367
334
|
|
|
335
|
+
/**
|
|
336
|
+
* Alias over the OpenLayers view: `storymap.map.getView().animate(...)`,
|
|
337
|
+
* or `.fit(extent, {size})` for a region stop (`location.region`).
|
|
338
|
+
*/
|
|
368
339
|
viewTo(loc: StorymapSlideLocation, opts?: ViewToOptions): void {
|
|
369
340
|
this._viewTo(loc, opts);
|
|
370
341
|
}
|
|
371
342
|
|
|
372
|
-
|
|
373
|
-
|
|
343
|
+
/** Alias over the OpenLayers view: `view.getZoomForResolution(resolution)`. */
|
|
344
|
+
getBoundsZoom(
|
|
345
|
+
m1: LatLngLiteral,
|
|
346
|
+
m2: LatLngLiteral,
|
|
347
|
+
inside?: boolean,
|
|
348
|
+
padding?: unknown,
|
|
349
|
+
): number | undefined {
|
|
350
|
+
return this._getBoundsZoom(m1, m2, inside, padding);
|
|
374
351
|
}
|
|
375
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Alias over the OpenLayers view: `view.fit(extent, {size})` over all
|
|
355
|
+
* marker positions. Also reachable from the menubar's overview button.
|
|
356
|
+
*/
|
|
376
357
|
markerOverview(): void {
|
|
377
358
|
this._markerOverview();
|
|
378
359
|
}
|
|
379
360
|
|
|
361
|
+
/**
|
|
362
|
+
* The viewer's own marker zoom ladder — no OpenLayers equivalent (it also
|
|
363
|
+
* writes the computed zoom onto the current markers).
|
|
364
|
+
*/
|
|
380
365
|
calculateMarkerZooms(): void {
|
|
381
366
|
this._calculateMarkerZooms();
|
|
382
367
|
}
|
|
383
368
|
|
|
369
|
+
/**
|
|
370
|
+
* The minimap is built with the constructor; reach it with `getMinimap()`
|
|
371
|
+
* (an OpenLayers `OverviewMap` control) rather than re-creating it.
|
|
372
|
+
*/
|
|
384
373
|
createMiniMap(): void {
|
|
385
374
|
this._createMiniMap();
|
|
386
375
|
}
|
|
@@ -397,18 +386,32 @@ class MapBase {
|
|
|
397
386
|
|
|
398
387
|
calculateMinMaxZoom(): void {
|
|
399
388
|
for (let i = 0; i < this._markers.length; i++) {
|
|
400
|
-
|
|
401
|
-
|
|
389
|
+
const zoom = this._markerZoom(i);
|
|
390
|
+
if (typeof zoom === "number") {
|
|
391
|
+
this.updateMinMaxZoom(zoom);
|
|
402
392
|
}
|
|
403
393
|
}
|
|
404
394
|
}
|
|
405
395
|
|
|
396
|
+
/**
|
|
397
|
+
* The zoom to use for min/max bounds at marker `index`: the value
|
|
398
|
+
* computed by the engine when there is one, else the zoom authored on
|
|
399
|
+
* the slide. The engine overrides this to serve its computed-zoom store
|
|
400
|
+
* so `StoryMap.data` is never written to.
|
|
401
|
+
*/
|
|
402
|
+
_markerZoom(index: number): number | undefined {
|
|
403
|
+
return this._markers[index]?.data.location?.zoom;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
406
|
updateMinMaxZoom(zoom: number): void {
|
|
407
|
-
|
|
407
|
+
// `!x` treated a legitimate zoom level of 0 as "not measured yet" and
|
|
408
|
+
// then re-ran the min/max comparison against null, which coerces to 0.
|
|
409
|
+
// Test for null explicitly so zoom 0 is a real bound.
|
|
410
|
+
if (this.zoom_min_max.max === null) {
|
|
408
411
|
this.zoom_min_max.max = zoom;
|
|
409
412
|
}
|
|
410
413
|
|
|
411
|
-
if (
|
|
414
|
+
if (this.zoom_min_max.min === null) {
|
|
412
415
|
this.zoom_min_max.min = zoom;
|
|
413
416
|
}
|
|
414
417
|
|
|
@@ -432,8 +435,19 @@ class MapBase {
|
|
|
432
435
|
|
|
433
436
|
/* Adding, Hiding, Showing etc
|
|
434
437
|
================================================== */
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* @deprecated No-op since 0.9.x upstream (the original Leaflet engine
|
|
441
|
+
* defined an empty body too) and shadowed by the `DomMixed` mixin. To
|
|
442
|
+
* hide the map, toggle the OpenLayers target:
|
|
443
|
+
* `storymap.map.getTargetElement().style.display = "none"`.
|
|
444
|
+
*/
|
|
435
445
|
show(): void {}
|
|
436
446
|
|
|
447
|
+
/**
|
|
448
|
+
* @deprecated See {@link show} — no-op since 0.9.x upstream. Use
|
|
449
|
+
* `storymap.map.getTargetElement().style.display = "none"`.
|
|
450
|
+
*/
|
|
437
451
|
hide(): void {}
|
|
438
452
|
|
|
439
453
|
/* Adding and Removing Markers
|
|
@@ -448,10 +462,16 @@ class MapBase {
|
|
|
448
462
|
|
|
449
463
|
_destroyMarker(marker: MapMarker): void {
|
|
450
464
|
this._removeMarker(marker);
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
465
|
+
const index = this._markers.indexOf(marker);
|
|
466
|
+
if (index === -1) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
this._markers.splice(index, 1);
|
|
470
|
+
// `marker_number` is the marker's index into this array and is what
|
|
471
|
+
// _onMarkerClick hands to goTo(), so every marker after the removed
|
|
472
|
+
// one has to shift down or clicks navigate to the wrong slide
|
|
473
|
+
for (let i = index; i < this._markers.length; i++) {
|
|
474
|
+
this._markers[i].marker_number = i;
|
|
455
475
|
}
|
|
456
476
|
this.fire("markerRemoved", marker);
|
|
457
477
|
}
|
|
@@ -470,9 +490,48 @@ class MapBase {
|
|
|
470
490
|
* lon 0 are valid coordinates and must not be treated as missing.
|
|
471
491
|
*/
|
|
472
492
|
_hasLocation(d: StorymapSlide): boolean {
|
|
473
|
-
return (
|
|
474
|
-
|
|
475
|
-
|
|
493
|
+
return this._locationOf(d) !== null;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* The {lat, lon} points of every marker from the first up to and
|
|
498
|
+
* including `n`, skipping the ones without a real location. This was four
|
|
499
|
+
* near-identical loops building the same thing.
|
|
500
|
+
*/
|
|
501
|
+
private _locationsUpTo(n: number): LinePoint[] {
|
|
502
|
+
const points: LinePoint[] = [];
|
|
503
|
+
for (let idx = 0; idx <= n && idx < this._markers.length; idx++) {
|
|
504
|
+
const loc = this._locationOf(this._markers[idx].data);
|
|
505
|
+
if (loc) {
|
|
506
|
+
points.push(loc);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
return points;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* The slide's {lat, lon} point, or null when it has no real location.
|
|
514
|
+
*
|
|
515
|
+
* Preferred over testing `_hasLocation()` and then reading
|
|
516
|
+
* `data.location.lat`: a boolean guard does not narrow the property for
|
|
517
|
+
* the type checker, so the old form had to be trusted and re-checked by
|
|
518
|
+
* hand at every one of its dozen call sites.
|
|
519
|
+
*/
|
|
520
|
+
_locationOf(d: StorymapSlide): LatLngLiteral | null {
|
|
521
|
+
const loc = d.location;
|
|
522
|
+
if (!loc || typeof loc.lat !== "number" || typeof loc.lon !== "number") {
|
|
523
|
+
return null;
|
|
524
|
+
}
|
|
525
|
+
return { lat: loc.lat, lon: loc.lon };
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Image region stop: the slide carries an xywh region ([x, y, w, h]
|
|
530
|
+
* image pixels). Only the OpenLayers engine applies it (image mode);
|
|
531
|
+
* the region never contributes to route lines.
|
|
532
|
+
*/
|
|
533
|
+
_hasRegion(d: StorymapSlide): boolean {
|
|
534
|
+
return !!d.location && Array.isArray(d.location.region) && d.location.region.length === 4;
|
|
476
535
|
}
|
|
477
536
|
|
|
478
537
|
/* Map Specific
|
|
@@ -520,7 +579,9 @@ class MapBase {
|
|
|
520
579
|
return { data: d };
|
|
521
580
|
}
|
|
522
581
|
|
|
523
|
-
|
|
582
|
+
/** Append a slide's location to a route line. Takes the *slide*, not a
|
|
583
|
+
* point — the engine reads `d.location`. */
|
|
584
|
+
_addToLine(line: VectorLayer | null, d: StorymapSlide): void {}
|
|
524
585
|
|
|
525
586
|
_replaceLines(
|
|
526
587
|
line: VectorLayer | null,
|
|
@@ -552,15 +613,31 @@ class MapBase {
|
|
|
552
613
|
}
|
|
553
614
|
|
|
554
615
|
_getMapCenter(correct_for_center?: boolean): LatLngLiteral {
|
|
555
|
-
return { lat: 0,
|
|
616
|
+
return { lat: 0, lon: 0 };
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* The `ease` option as an OpenLayers easing function.
|
|
621
|
+
*
|
|
622
|
+
* `ease` is documented as either a function or a name, so the cast to
|
|
623
|
+
* OpenLayers' expected shape was repeated at all ten `view.animate()` call
|
|
624
|
+
* sites.
|
|
625
|
+
*/
|
|
626
|
+
protected get _easing(): ((t: number) => number) | undefined {
|
|
627
|
+
return this.options.ease as ((t: number) => number) | undefined;
|
|
556
628
|
}
|
|
557
629
|
|
|
630
|
+
/**
|
|
631
|
+
* Zoom that fits the two given points, or `undefined` when the engine
|
|
632
|
+
* cannot compute one. Mirrors `getRouteDistance`: the base class is the
|
|
633
|
+
* no-op template, the OpenLayers subclass returns a real value.
|
|
634
|
+
*/
|
|
558
635
|
_getBoundsZoom(
|
|
559
636
|
m1: LatLngLiteral,
|
|
560
637
|
m2: LatLngLiteral,
|
|
561
638
|
inside?: boolean,
|
|
562
639
|
padding?: unknown,
|
|
563
|
-
): number {
|
|
640
|
+
): number | undefined {
|
|
564
641
|
return undefined;
|
|
565
642
|
}
|
|
566
643
|
|
|
@@ -657,7 +734,7 @@ class MapBase {
|
|
|
657
734
|
origin: LatLngLiteral,
|
|
658
735
|
destination: LatLngLiteral,
|
|
659
736
|
correct_for_center?: boolean,
|
|
660
|
-
): number {
|
|
737
|
+
): number | undefined {
|
|
661
738
|
return this._getBoundsZoom(origin, destination, correct_for_center);
|
|
662
739
|
}
|
|
663
740
|
|
package/src/map/MapMarker.ts
CHANGED
|
@@ -54,7 +54,7 @@ class MapMarkerBase {
|
|
|
54
54
|
this.media_icon_class = "";
|
|
55
55
|
|
|
56
56
|
// Timer
|
|
57
|
-
this.timer =
|
|
57
|
+
this.timer = null;
|
|
58
58
|
|
|
59
59
|
// Data
|
|
60
60
|
this.data = {};
|
|
@@ -66,7 +66,6 @@ class MapMarkerBase {
|
|
|
66
66
|
ease: easeInSpline,
|
|
67
67
|
width: 600,
|
|
68
68
|
height: 600,
|
|
69
|
-
map_popup: false,
|
|
70
69
|
} as StorymapOptions;
|
|
71
70
|
|
|
72
71
|
// Animation Object
|
|
@@ -81,10 +80,27 @@ class MapMarkerBase {
|
|
|
81
80
|
|
|
82
81
|
/* Public
|
|
83
82
|
================================================== */
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated No-op since 0.9.x upstream (the original marker defined an
|
|
86
|
+
* empty body too). Markers are never individually hidden; use CSS on
|
|
87
|
+
* `.vco-mapmarker`, or `active(false)` to dim one.
|
|
88
|
+
*/
|
|
84
89
|
show(): void {}
|
|
85
90
|
|
|
91
|
+
/** @deprecated See {@link show} — no-op since 0.9.x upstream. */
|
|
86
92
|
hide(): void {}
|
|
87
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @deprecated Never implemented, in the original viewer either: the base
|
|
96
|
+
* `MapMarker._createPopup` had an empty body and the Leaflet override's
|
|
97
|
+
* body was commented out, so the `map_popup` option that called it never
|
|
98
|
+
* had any effect. Kept as a no-op so pre-0.10 code that calls it keeps
|
|
99
|
+
* working. Render the slide text yourself, or use CSS on
|
|
100
|
+
* `.vco-mapmarker` to show a label.
|
|
101
|
+
*/
|
|
102
|
+
createPopup(_d?: MapMarkerData, _o?: StorymapOptions): void {}
|
|
103
|
+
|
|
88
104
|
addTo(m: unknown): void {
|
|
89
105
|
this._addTo(m);
|
|
90
106
|
}
|
|
@@ -105,7 +121,7 @@ class MapMarkerBase {
|
|
|
105
121
|
this._active(a);
|
|
106
122
|
}
|
|
107
123
|
|
|
108
|
-
location(): LatLngLiteral {
|
|
124
|
+
location(): LatLngLiteral | null {
|
|
109
125
|
return this._location();
|
|
110
126
|
}
|
|
111
127
|
|
|
@@ -120,8 +136,15 @@ class MapMarkerBase {
|
|
|
120
136
|
|
|
121
137
|
_active(a: boolean): void {}
|
|
122
138
|
|
|
123
|
-
|
|
124
|
-
|
|
139
|
+
/**
|
|
140
|
+
* The marker's coordinate, or null when it has none (an overview slide, or
|
|
141
|
+
* a slide carrying only an image region). Every caller treats null as
|
|
142
|
+
* "nothing to focus", so this is the honest shape — the previous
|
|
143
|
+
* `{ lat: 0, lng: 0 }` was a real point at Null Island, spelled with a
|
|
144
|
+
* longitude key nothing in the map read.
|
|
145
|
+
*/
|
|
146
|
+
_location(): LatLngLiteral | null {
|
|
147
|
+
return null;
|
|
125
148
|
}
|
|
126
149
|
|
|
127
150
|
/* Events
|