@projektemacher/storymapjs 0.10.7 → 0.11.0
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 +431 -19
- package/README.md +168 -17
- package/dist/assets/demo-bWnOyfUw.js +1 -0
- package/dist/assets/harness-C3JUv5Ii.js +1 -0
- package/dist/assets/harness-multi-XZNex3tb.js +1 -0
- package/dist/assets/harness-support-CjfZIVeb.js +1 -0
- package/dist/assets/index-wHPqGrBS.js +1 -0
- package/dist/assets/main-DQ32hWBM.js +17 -0
- package/dist/context.json +23 -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 +3 -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 +2112 -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/isSlideshowCollection.html +51 -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/slideshowToStorymapData.html +51 -0
- package/dist/docs/api/functions/slideshowVersion.html +48 -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 +300 -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/MapEvents.html +116 -0
- package/dist/docs/api/interfaces/MapMarkerEvents.html +66 -0
- package/dist/docs/api/interfaces/MarkerEventPayload.html +57 -0
- package/dist/docs/api/interfaces/MediaEvents.html +78 -0
- package/dist/docs/api/interfaces/MenuBarEvents.html +114 -0
- package/dist/docs/api/interfaces/MessageEvents.html +72 -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/SlideBackgroundState.html +66 -0
- package/dist/docs/api/interfaces/SlideEvents.html +78 -0
- package/dist/docs/api/interfaces/SlideNavEvents.html +72 -0
- package/dist/docs/api/interfaces/SlideshowPlayerSettings.html +182 -0
- package/dist/docs/api/interfaces/SlideshowToStorymapResult.html +60 -0
- package/dist/docs/api/interfaces/SlideshowTranslatorOptions.html +65 -0
- package/dist/docs/api/interfaces/SlideshowWarning.html +72 -0
- package/dist/docs/api/interfaces/StoryMapEvents.html +146 -0
- package/dist/docs/api/interfaces/StoryMapMarker.html +763 -0
- package/dist/docs/api/interfaces/StorySliderEvents.html +102 -0
- package/dist/docs/api/interfaces/StorymapBasemap.html +69 -0
- package/dist/docs/api/interfaces/StorymapData.html +77 -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 +137 -0
- package/dist/docs/api/interfaces/StorymapManifestBackground.html +81 -0
- package/dist/docs/api/interfaces/StorymapManifestCanvas.html +188 -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 +734 -0
- package/dist/docs/api/interfaces/StorymapOverlayLayer.html +157 -0
- package/dist/docs/api/interfaces/StorymapSlide.html +186 -0
- package/dist/docs/api/interfaces/StorymapSlideBackground.html +72 -0
- package/dist/docs/api/interfaces/StorymapSlideLocation.html +161 -0
- package/dist/docs/api/interfaces/StorymapSlideMarker.html +103 -0
- package/dist/docs/api/interfaces/StorymapSlideMedia.html +149 -0
- package/dist/docs/api/interfaces/StorymapSlideNarration.html +117 -0
- package/dist/docs/api/interfaces/StorymapSlideText.html +72 -0
- package/dist/docs/api/interfaces/StorymapTilejson.html +105 -0
- package/dist/docs/api/interfaces/SwipableEvents.html +102 -0
- package/dist/docs/api/interfaces/TextEvents.html +66 -0
- package/dist/docs/api/media/es.json +31 -0
- package/dist/docs/api/media/events.md +66 -0
- package/dist/docs/api/media/migration-from-knightlab.md +399 -0
- package/dist/docs/api/media/slideshow.md +109 -0
- package/dist/docs/api/media/storymap-as-iiif-manifest.md +1007 -0
- package/dist/docs/api/modules.html +50 -0
- package/dist/docs/api/types/ContentState.html +70 -0
- package/dist/docs/api/types/FiredEvent.html +43 -0
- package/dist/docs/api/types/ImagereadyKind.html +34 -0
- package/dist/docs/api/types/MediaTypeMatch.html +78 -0
- package/dist/docs/api/types/SwipeDirection.html +36 -0
- package/dist/docs/api/types/TileSourceFactory.html +53 -0
- package/dist/docs/authoring.html +306 -0
- package/dist/docs/events.html +263 -0
- package/dist/docs/iiif.html +738 -69
- package/dist/docs/migration.html +360 -11
- package/dist/docs/readme.html +149 -17
- package/dist/embed/index.html +8 -1
- package/dist/examples/font-css-false.json +33 -0
- 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/layers-control.json +60 -0
- package/dist/examples/map-area-overlays.json +68 -0
- package/dist/examples/map-template-provider.json +36 -0
- package/dist/examples/multi-media.json +71 -0
- package/dist/examples/no-map.json +44 -0
- package/dist/examples-iiif/annotated-image.json +204 -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/font-css-false.json +114 -0
- 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/layers-control.json +226 -0
- package/dist/examples-iiif/map-area-overlays.json +289 -0
- package/dist/examples-iiif/map-template-provider.json +133 -0
- package/dist/examples-iiif/marktwain.json +255 -58
- package/dist/examples-iiif/multi-media.json +237 -0
- 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/examples-slideshow/single.json +79 -0
- package/dist/examples-slideshow/static/pixel.png +0 -0
- package/dist/examples-slideshow/static.json +44 -0
- package/dist/harness-multi.html +17 -0
- package/dist/harness.html +4 -2
- package/dist/index.html +19 -12
- package/dist/js/storymap.d.ts +2669 -307
- package/dist/js/storymap.js +10820 -6196
- package/dist/js/storymap.js.map +1 -1
- package/dist/navplace-properties.json +54 -0
- package/dist/site.css +54 -36
- package/docs/migration-from-knightlab.md +279 -19
- package/docs/storymap-as-iiif-manifest.md +633 -136
- package/package.json +12 -7
- package/schema/storymap.schema.json +733 -80
- 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 +257 -193
- package/src/core/mixins.ts +66 -35
- 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 +206 -25
- package/src/language/locale/.expected-gaps.json +346 -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 +23 -2
- package/src/language/locale/el.json +15 -2
- package/src/language/locale/en.json +17 -3
- 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 +143 -0
- package/src/map/Map.ts +227 -112
- package/src/map/MapMarker.ts +44 -8
- package/src/map/georeference.ts +325 -0
- package/src/map/openlayers/Map.OpenLayers.ts +1601 -263
- package/src/map/openlayers/MapMarker.OpenLayers.ts +348 -24
- package/src/map/openlayers/zoomifyTiles.ts +1 -4
- package/src/map/slideView.ts +149 -0
- package/src/map/types.ts +2 -0
- package/src/media/EmbedUtil.ts +333 -24
- package/src/media/Media.ts +270 -59
- package/src/media/embedId.ts +110 -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 +23 -12
- package/src/media/types/GoogleDoc.ts +3 -4
- package/src/media/types/HtmlMedia.ts +233 -0
- package/src/media/types/IFrame.ts +3 -4
- package/src/media/types/Image.ts +87 -9
- package/src/media/types/Juxtapose.ts +14 -5
- package/src/media/types/SoundCloud.ts +28 -6
- package/src/media/types/Text.ts +46 -21
- package/src/media/types/Twitter.ts +35 -20
- package/src/media/types/Video.ts +9 -79
- package/src/media/types/Vimeo.ts +11 -11
- package/src/media/types/Website.ts +23 -13
- package/src/media/types/Wikipedia.ts +18 -8
- package/src/media/types/YouTube.ts +72 -40
- package/src/scss/Typography.scss +16 -18
- package/src/scss/VCO.StoryMap.scss +208 -12
- package/src/scss/Variables.scss +3 -2
- package/src/scss/core/Mixins.scss +5 -63
- package/src/scss/core/Reset.scss +5 -18
- 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.Map.scss +1 -1
- package/src/scss/map/VCO.MapMarker.scss +114 -8
- package/src/scss/map/openlayers/VCO.Map.OpenLayers.scss +7 -4
- package/src/scss/media/VCO.Media.scss +14 -17
- package/src/scss/media/types/VCO.Media.Blockquote.scss +1 -1
- package/src/scss/media/types/VCO.Media.Text.scss +13 -5
- package/src/scss/media/types/VCO.Media.Twitter.scss +4 -4
- package/src/scss/media/types/VCO.Media.Wikipedia.scss +3 -19
- package/src/scss/site/site.scss +55 -36
- package/src/scss/slider/VCO.Slide.scss +61 -13
- package/src/scss/slider/VCO.SlideNav.scss +34 -24
- package/src/scss/slider/VCO.StorySlider.scss +53 -1
- package/src/scss/snapmap/VCO.SnapMap.scss +3 -3
- package/src/scss/ui/VCO.Consent.scss +63 -13
- package/src/scss/ui/VCO.Layers.scss +119 -0
- package/src/scss/ui/VCO.MenuBar.Button.scss +143 -14
- package/src/scss/ui/VCO.MenuBar.scss +9 -2
- package/src/scss/ui/VCO.Message.scss +16 -5
- package/src/site/site.ts +2 -1
- package/src/slider/Slide.ts +326 -74
- package/src/slider/SlideNav.ts +54 -9
- package/src/slider/StorySlider.ts +352 -60
- package/src/storymap/Consent.ts +429 -82
- package/src/storymap/StoryMap.ts +2163 -340
- package/src/storymap/content-state.ts +180 -0
- package/src/storymap/font-css.ts +72 -0
- package/src/storymap/from-slideshow.ts +785 -0
- package/src/storymap/iiif-shared.ts +228 -0
- package/src/storymap/iiif.ts +1742 -95
- package/src/storymap/to-iiif.ts +1008 -0
- package/src/storymap/validate.ts +80 -7
- package/src/types.ts +591 -29
- package/src/ui/LayersControl.ts +302 -0
- package/src/ui/MenuBar.ts +325 -61
- package/src/ui/Message.ts +44 -2
- package/src/ui/Swipable.ts +170 -85
- 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/VCO.StoryMap.Dark.scss +0 -138
- package/src/scss/Variables.Dark.scss +0 -56
- 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/map/Map.ts
CHANGED
|
@@ -4,8 +4,11 @@ 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";
|
|
10
|
+
import type { MarkerEventPayload } from "./MapMarker";
|
|
11
|
+
import type { ImagereadyPayload } from "./openlayers/Map.OpenLayers";
|
|
9
12
|
import type { LinePoint, ViewToOptions } from "./types";
|
|
10
13
|
import type {
|
|
11
14
|
AnimationHandle,
|
|
@@ -25,6 +28,21 @@ import type {
|
|
|
25
28
|
|
|
26
29
|
================================================ */
|
|
27
30
|
|
|
31
|
+
export interface MapEvents {
|
|
32
|
+
change: { current_marker: number };
|
|
33
|
+
loaded: StorymapData;
|
|
34
|
+
added: StorymapData;
|
|
35
|
+
removed: StorymapData;
|
|
36
|
+
markerAdded: MapMarker;
|
|
37
|
+
markerRemoved: MapMarker;
|
|
38
|
+
markerclick: MarkerEventPayload;
|
|
39
|
+
popupopen: MarkerEventPayload;
|
|
40
|
+
popupclose: MarkerEventPayload;
|
|
41
|
+
imageready: ImagereadyPayload;
|
|
42
|
+
/** Deferred tile layers attached after a tile consent grant. */
|
|
43
|
+
tilesallowed: undefined;
|
|
44
|
+
}
|
|
45
|
+
|
|
28
46
|
/** Wheel/scroll zoom bookkeeping (handles cleared via clearTimeout). */
|
|
29
47
|
interface ScrollState {
|
|
30
48
|
start_time: number | null;
|
|
@@ -38,13 +56,21 @@ class MapBase {
|
|
|
38
56
|
declare "_map": OlMap | null;
|
|
39
57
|
declare "_mini_map": OverviewMap | null;
|
|
40
58
|
declare "_markers": MapMarker[];
|
|
59
|
+
/**
|
|
60
|
+
* Zooms computed by the engine's `_calculateMarkerZooms`, keyed by
|
|
61
|
+
* marker index. Kept off `marker.data` so navigating never mutates the
|
|
62
|
+
* author's storymap document (`StoryMap.data` is that same object graph).
|
|
63
|
+
*/
|
|
64
|
+
declare "_marker_zooms": (number | undefined)[];
|
|
41
65
|
declare "zoom_min_max": { min: number | null; max: number | null };
|
|
42
66
|
declare "_line": VectorLayer | null;
|
|
43
67
|
declare "_line_active": VectorLayer | null;
|
|
44
68
|
declare "current_marker": number;
|
|
69
|
+
/** The wheel handler on the map element, stored for dispose(). */
|
|
70
|
+
declare "_onWheelBound": ((e: WheelEvent) => void) | null;
|
|
45
71
|
declare "bounds_array": number[][] | null;
|
|
46
|
-
declare "_tile_layer":
|
|
47
|
-
declare "_tile_layer_mini":
|
|
72
|
+
declare "_tile_layer": Layer | null;
|
|
73
|
+
declare "_tile_layer_mini": Layer | null;
|
|
48
74
|
declare "_image_layer": TileLayer | null;
|
|
49
75
|
declare "data": StorymapData;
|
|
50
76
|
declare "options": StorymapOptions;
|
|
@@ -53,7 +79,7 @@ class MapBase {
|
|
|
53
79
|
declare "timer": ReturnType<typeof setTimeout> | null;
|
|
54
80
|
declare "touch_scale": number;
|
|
55
81
|
declare "scroll": ScrollState;
|
|
56
|
-
declare "fire": EventedInstance["fire"];
|
|
82
|
+
declare "fire": EventedInstance<MapEvents>["fire"];
|
|
57
83
|
constructor(
|
|
58
84
|
elem: string | HTMLElement,
|
|
59
85
|
data?: Partial<StorymapData>,
|
|
@@ -69,7 +95,11 @@ class MapBase {
|
|
|
69
95
|
if (typeof elem === "object") {
|
|
70
96
|
this._el.container = elem;
|
|
71
97
|
} else {
|
|
72
|
-
|
|
98
|
+
const found = Dom.get(elem);
|
|
99
|
+
if (!found) {
|
|
100
|
+
throw new Error("StoryMapJS: no element with id " + elem);
|
|
101
|
+
}
|
|
102
|
+
this._el.container = found;
|
|
73
103
|
}
|
|
74
104
|
|
|
75
105
|
// LOADED
|
|
@@ -86,6 +116,7 @@ class MapBase {
|
|
|
86
116
|
|
|
87
117
|
// Markers
|
|
88
118
|
this._markers = [];
|
|
119
|
+
this._marker_zooms = [];
|
|
89
120
|
|
|
90
121
|
// Marker Zoom Miniumum and Maximum
|
|
91
122
|
this.zoom_min_max = {
|
|
@@ -118,13 +149,15 @@ class MapBase {
|
|
|
118
149
|
slides: [{ test: "yes" }, { test: "yes" }, { test: "yes" }],
|
|
119
150
|
};
|
|
120
151
|
|
|
121
|
-
//Options
|
|
152
|
+
// Options — the map-owned subset only. StoryMap passes its own full
|
|
153
|
+
// options object in (see the constructor), so `this.options` is a
|
|
154
|
+
// complete StorymapOptions by the time anything reads it; these are
|
|
155
|
+
// just the fallbacks for a standalone Map.
|
|
122
156
|
this.options = {
|
|
123
157
|
map_type: "osm:standard",
|
|
124
158
|
map_as_image: false,
|
|
125
159
|
map_mini: false,
|
|
126
160
|
map_background_color: "#d9d9d9",
|
|
127
|
-
map_subdomains: "",
|
|
128
161
|
map_access_token: "",
|
|
129
162
|
overlays: [],
|
|
130
163
|
overview_extent: null,
|
|
@@ -133,11 +166,7 @@ class MapBase {
|
|
|
133
166
|
attribution: "",
|
|
134
167
|
},
|
|
135
168
|
skinny_size: 650,
|
|
136
|
-
less_bounce: true,
|
|
137
|
-
path_gfx: "gfx",
|
|
138
169
|
start_at_slide: 0,
|
|
139
|
-
map_popup: false,
|
|
140
|
-
zoom_distance: 100,
|
|
141
170
|
calculate_zoom: true, // Allow map to determine best zoom level between markers (recommended)
|
|
142
171
|
line_follows_path: true, // Map history path follows default line, if false it will connect previous and current only
|
|
143
172
|
line_color: "#333",
|
|
@@ -149,7 +178,7 @@ class MapBase {
|
|
|
149
178
|
show_lines: true,
|
|
150
179
|
show_history_line: true,
|
|
151
180
|
map_center_offset: null, // takes object {top:0,left:0}
|
|
152
|
-
} as StorymapOptions;
|
|
181
|
+
} as unknown as StorymapOptions;
|
|
153
182
|
|
|
154
183
|
// Animation
|
|
155
184
|
this.animator = null;
|
|
@@ -204,32 +233,34 @@ class MapBase {
|
|
|
204
233
|
// Check to see if it's an overview
|
|
205
234
|
if (marker.data.type && marker.data.type === "overview") {
|
|
206
235
|
this._markerOverview();
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
236
|
+
// overview stops are navigable like any other: report the
|
|
237
|
+
// change exactly as the branches below do, or a click on an
|
|
238
|
+
// overview pin moves the map without ever moving the story
|
|
239
|
+
this._onMarkerChange();
|
|
210
240
|
} else {
|
|
211
241
|
// Make marker active
|
|
212
242
|
marker.active(true);
|
|
213
243
|
|
|
244
|
+
const target_location = marker.data.location ?? undefined;
|
|
214
245
|
if (change) {
|
|
215
246
|
// Set Map View
|
|
216
|
-
if (
|
|
217
|
-
this._viewTo(
|
|
247
|
+
if (target_location) {
|
|
248
|
+
this._viewTo(target_location, {
|
|
218
249
|
duration: this._transition_duration,
|
|
219
250
|
});
|
|
220
251
|
} else {
|
|
221
252
|
// nothing to show
|
|
222
253
|
}
|
|
223
|
-
} else {
|
|
224
|
-
if (this._hasLocation(marker.data)) {
|
|
254
|
+
} else if (target_location) {
|
|
255
|
+
if (this._hasLocation(marker.data) || this._hasRegion(marker.data)) {
|
|
225
256
|
// Calculate Zoom
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
257
|
+
const here = marker.location();
|
|
258
|
+
zoom = here
|
|
259
|
+
? this._calculateZoomChange(this._getMapCenter(true), here)
|
|
260
|
+
: undefined;
|
|
230
261
|
|
|
231
262
|
// Set Map View
|
|
232
|
-
this._viewTo(
|
|
263
|
+
this._viewTo(target_location, {
|
|
233
264
|
calculate_zoom: this.options.calculate_zoom,
|
|
234
265
|
zoom: zoom,
|
|
235
266
|
duration: this._transition_duration,
|
|
@@ -252,32 +283,19 @@ class MapBase {
|
|
|
252
283
|
// the already-traveled prefix 0..previous,
|
|
253
284
|
// which stays drawn while [prev..current]
|
|
254
285
|
// traces progressively (see _replaceLines).
|
|
255
|
-
let line_num = 0
|
|
256
|
-
point;
|
|
286
|
+
let line_num = 0;
|
|
257
287
|
let retract_path_source: LinePoint[] | null = null;
|
|
258
288
|
let grow_path_source: LinePoint[] | null = null;
|
|
259
289
|
if (previous_marker < this.current_marker) {
|
|
260
290
|
while (line_num < this.current_marker) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
lon: this._markers[line_num].data.location.lon,
|
|
265
|
-
};
|
|
266
|
-
lines_array.push(point);
|
|
291
|
+
const loc = this._locationOf(this._markers[line_num].data);
|
|
292
|
+
if (loc) {
|
|
293
|
+
lines_array.push(loc);
|
|
267
294
|
}
|
|
268
295
|
|
|
269
296
|
line_num++;
|
|
270
297
|
}
|
|
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;
|
|
298
|
+
grow_path_source = this._locationsUpTo(previous_marker);
|
|
281
299
|
} else if (previous_marker > this.current_marker) {
|
|
282
300
|
// Backward navigation: the line retracts —
|
|
283
301
|
// the end state is the traveled path from
|
|
@@ -285,33 +303,13 @@ class MapBase {
|
|
|
285
303
|
// the far end pulls back from the old
|
|
286
304
|
// marker to the new one (handled by the
|
|
287
305
|
// 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;
|
|
306
|
+
lines_array = this._locationsUpTo(this.current_marker);
|
|
307
|
+
retract_path_source = this._locationsUpTo(previous_marker);
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
lon: marker.data.location.lon,
|
|
314
|
-
});
|
|
310
|
+
const marker_loc = this._locationOf(marker.data);
|
|
311
|
+
if (!retract_path_source && marker_loc) {
|
|
312
|
+
lines_array.push(marker_loc);
|
|
315
313
|
}
|
|
316
314
|
|
|
317
315
|
this._replaceLines(this._line_active, lines_array, {
|
|
@@ -321,66 +319,80 @@ class MapBase {
|
|
|
321
319
|
});
|
|
322
320
|
}
|
|
323
321
|
} 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
|
-
);
|
|
322
|
+
// Show Line — both endpoints need a real location.
|
|
323
|
+
// The path branch above guards every access with
|
|
324
|
+
// _hasLocation(); `real_marker` alone is not enough
|
|
325
|
+
// because a slide can carry a region only.
|
|
326
|
+
const from = this._locationOf(marker.data);
|
|
327
|
+
const to = this._locationOf(this._markers[previous_marker].data);
|
|
328
|
+
if (this.options.show_history_line && from && to) {
|
|
329
|
+
this._replaceLines(this._line_active, [from, to], {
|
|
330
|
+
duration: this._transition_duration,
|
|
331
|
+
});
|
|
344
332
|
}
|
|
345
333
|
}
|
|
346
334
|
} else {
|
|
347
335
|
this._markerOverview();
|
|
348
|
-
if (!change) {
|
|
349
|
-
this._onMarkerChange();
|
|
350
|
-
}
|
|
351
336
|
}
|
|
352
337
|
|
|
353
|
-
// Fire Event
|
|
338
|
+
// Fire Event — once per goTo(), for every branch above
|
|
354
339
|
this._onMarkerChange();
|
|
355
340
|
}
|
|
356
341
|
}
|
|
357
342
|
}
|
|
358
343
|
}
|
|
359
344
|
|
|
345
|
+
/**
|
|
346
|
+
* Alias over the OpenLayers view: `storymap.map.getView().animate({center})`
|
|
347
|
+
* (remember `ol/proj` does not apply in image mode — see `isImageSpace()`).
|
|
348
|
+
*/
|
|
360
349
|
panTo(loc: LatLngLiteral, animate?: boolean): void {
|
|
361
350
|
this._panTo(loc, animate);
|
|
362
351
|
}
|
|
363
352
|
|
|
353
|
+
/** Alias over the OpenLayers view: `storymap.map.getView().animate({zoom})`. */
|
|
364
354
|
zoomTo(z: number, animate?: boolean): void {
|
|
365
355
|
this._zoomTo(z, animate);
|
|
366
356
|
}
|
|
367
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Alias over the OpenLayers view: `storymap.map.getView().animate(...)`,
|
|
360
|
+
* or `.fit(extent, {size})` for a region stop (`location.region`).
|
|
361
|
+
*/
|
|
368
362
|
viewTo(loc: StorymapSlideLocation, opts?: ViewToOptions): void {
|
|
369
363
|
this._viewTo(loc, opts);
|
|
370
364
|
}
|
|
371
365
|
|
|
372
|
-
|
|
373
|
-
|
|
366
|
+
/** Alias over the OpenLayers view: `view.getZoomForResolution(resolution)`. */
|
|
367
|
+
getBoundsZoom(
|
|
368
|
+
m1: LatLngLiteral,
|
|
369
|
+
m2: LatLngLiteral,
|
|
370
|
+
inside?: boolean,
|
|
371
|
+
padding?: unknown,
|
|
372
|
+
): number | undefined {
|
|
373
|
+
return this._getBoundsZoom(m1, m2, inside, padding);
|
|
374
374
|
}
|
|
375
375
|
|
|
376
|
+
/**
|
|
377
|
+
* Alias over the OpenLayers view: `view.fit(extent, {size})` over all
|
|
378
|
+
* marker positions. Also reachable from the menubar's overview button.
|
|
379
|
+
*/
|
|
376
380
|
markerOverview(): void {
|
|
377
381
|
this._markerOverview();
|
|
378
382
|
}
|
|
379
383
|
|
|
384
|
+
/**
|
|
385
|
+
* The viewer's own marker zoom ladder — no OpenLayers equivalent (it also
|
|
386
|
+
* writes the computed zoom onto the current markers).
|
|
387
|
+
*/
|
|
380
388
|
calculateMarkerZooms(): void {
|
|
381
389
|
this._calculateMarkerZooms();
|
|
382
390
|
}
|
|
383
391
|
|
|
392
|
+
/**
|
|
393
|
+
* The minimap is built with the constructor; reach it with `getMinimap()`
|
|
394
|
+
* (an OpenLayers `OverviewMap` control) rather than re-creating it.
|
|
395
|
+
*/
|
|
384
396
|
createMiniMap(): void {
|
|
385
397
|
this._createMiniMap();
|
|
386
398
|
}
|
|
@@ -397,18 +409,32 @@ class MapBase {
|
|
|
397
409
|
|
|
398
410
|
calculateMinMaxZoom(): void {
|
|
399
411
|
for (let i = 0; i < this._markers.length; i++) {
|
|
400
|
-
|
|
401
|
-
|
|
412
|
+
const zoom = this._markerZoom(i);
|
|
413
|
+
if (typeof zoom === "number") {
|
|
414
|
+
this.updateMinMaxZoom(zoom);
|
|
402
415
|
}
|
|
403
416
|
}
|
|
404
417
|
}
|
|
405
418
|
|
|
419
|
+
/**
|
|
420
|
+
* The zoom to use for min/max bounds at marker `index`: the value
|
|
421
|
+
* computed by the engine when there is one, else the zoom authored on
|
|
422
|
+
* the slide. The engine overrides this to serve its computed-zoom store
|
|
423
|
+
* so `StoryMap.data` is never written to.
|
|
424
|
+
*/
|
|
425
|
+
_markerZoom(index: number): number | undefined {
|
|
426
|
+
return this._markers[index]?.data.location?.zoom;
|
|
427
|
+
}
|
|
428
|
+
|
|
406
429
|
updateMinMaxZoom(zoom: number): void {
|
|
407
|
-
|
|
430
|
+
// `!x` treated a legitimate zoom level of 0 as "not measured yet" and
|
|
431
|
+
// then re-ran the min/max comparison against null, which coerces to 0.
|
|
432
|
+
// Test for null explicitly so zoom 0 is a real bound.
|
|
433
|
+
if (this.zoom_min_max.max === null) {
|
|
408
434
|
this.zoom_min_max.max = zoom;
|
|
409
435
|
}
|
|
410
436
|
|
|
411
|
-
if (
|
|
437
|
+
if (this.zoom_min_max.min === null) {
|
|
412
438
|
this.zoom_min_max.min = zoom;
|
|
413
439
|
}
|
|
414
440
|
|
|
@@ -432,8 +458,19 @@ class MapBase {
|
|
|
432
458
|
|
|
433
459
|
/* Adding, Hiding, Showing etc
|
|
434
460
|
================================================== */
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* @deprecated No-op since 0.9.x upstream (the original Leaflet engine
|
|
464
|
+
* defined an empty body too) and shadowed by the `DomMixed` mixin. To
|
|
465
|
+
* hide the map, toggle the OpenLayers target:
|
|
466
|
+
* `storymap.map.getTargetElement().style.display = "none"`.
|
|
467
|
+
*/
|
|
435
468
|
show(): void {}
|
|
436
469
|
|
|
470
|
+
/**
|
|
471
|
+
* @deprecated See {@link show} — no-op since 0.9.x upstream. Use
|
|
472
|
+
* `storymap.map.getTargetElement().style.display = "none"`.
|
|
473
|
+
*/
|
|
437
474
|
hide(): void {}
|
|
438
475
|
|
|
439
476
|
/* Adding and Removing Markers
|
|
@@ -448,10 +485,16 @@ class MapBase {
|
|
|
448
485
|
|
|
449
486
|
_destroyMarker(marker: MapMarker): void {
|
|
450
487
|
this._removeMarker(marker);
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
488
|
+
const index = this._markers.indexOf(marker);
|
|
489
|
+
if (index === -1) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
this._markers.splice(index, 1);
|
|
493
|
+
// `marker_number` is the marker's index into this array and is what
|
|
494
|
+
// _onMarkerClick hands to goTo(), so every marker after the removed
|
|
495
|
+
// one has to shift down or clicks navigate to the wrong slide
|
|
496
|
+
for (let i = index; i < this._markers.length; i++) {
|
|
497
|
+
this._markers[i].marker_number = i;
|
|
455
498
|
}
|
|
456
499
|
this.fire("markerRemoved", marker);
|
|
457
500
|
}
|
|
@@ -470,9 +513,48 @@ class MapBase {
|
|
|
470
513
|
* lon 0 are valid coordinates and must not be treated as missing.
|
|
471
514
|
*/
|
|
472
515
|
_hasLocation(d: StorymapSlide): boolean {
|
|
473
|
-
return (
|
|
474
|
-
|
|
475
|
-
|
|
516
|
+
return this._locationOf(d) !== null;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* The {lat, lon} points of every marker from the first up to and
|
|
521
|
+
* including `n`, skipping the ones without a real location. This was four
|
|
522
|
+
* near-identical loops building the same thing.
|
|
523
|
+
*/
|
|
524
|
+
private _locationsUpTo(n: number): LinePoint[] {
|
|
525
|
+
const points: LinePoint[] = [];
|
|
526
|
+
for (let idx = 0; idx <= n && idx < this._markers.length; idx++) {
|
|
527
|
+
const loc = this._locationOf(this._markers[idx].data);
|
|
528
|
+
if (loc) {
|
|
529
|
+
points.push(loc);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return points;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* The slide's {lat, lon} point, or null when it has no real location.
|
|
537
|
+
*
|
|
538
|
+
* Preferred over testing `_hasLocation()` and then reading
|
|
539
|
+
* `data.location.lat`: a boolean guard does not narrow the property for
|
|
540
|
+
* the type checker, so the old form had to be trusted and re-checked by
|
|
541
|
+
* hand at every one of its dozen call sites.
|
|
542
|
+
*/
|
|
543
|
+
_locationOf(d: StorymapSlide): LatLngLiteral | null {
|
|
544
|
+
const loc = d.location;
|
|
545
|
+
if (!loc || typeof loc.lat !== "number" || typeof loc.lon !== "number") {
|
|
546
|
+
return null;
|
|
547
|
+
}
|
|
548
|
+
return { lat: loc.lat, lon: loc.lon };
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Image region stop: the slide carries an xywh region ([x, y, w, h]
|
|
553
|
+
* image pixels). Only the OpenLayers engine applies it (image mode);
|
|
554
|
+
* the region never contributes to route lines.
|
|
555
|
+
*/
|
|
556
|
+
_hasRegion(d: StorymapSlide): boolean {
|
|
557
|
+
return !!d.location && Array.isArray(d.location.region) && d.location.region.length === 4;
|
|
476
558
|
}
|
|
477
559
|
|
|
478
560
|
/* Map Specific
|
|
@@ -520,7 +602,9 @@ class MapBase {
|
|
|
520
602
|
return { data: d };
|
|
521
603
|
}
|
|
522
604
|
|
|
523
|
-
|
|
605
|
+
/** Append a slide's location to a route line. Takes the *slide*, not a
|
|
606
|
+
* point — the engine reads `d.location`. */
|
|
607
|
+
_addToLine(line: VectorLayer | null, d: StorymapSlide): void {}
|
|
524
608
|
|
|
525
609
|
_replaceLines(
|
|
526
610
|
line: VectorLayer | null,
|
|
@@ -552,15 +636,31 @@ class MapBase {
|
|
|
552
636
|
}
|
|
553
637
|
|
|
554
638
|
_getMapCenter(correct_for_center?: boolean): LatLngLiteral {
|
|
555
|
-
return { lat: 0,
|
|
639
|
+
return { lat: 0, lon: 0 };
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* The `ease` option as an OpenLayers easing function.
|
|
644
|
+
*
|
|
645
|
+
* `ease` is documented as either a function or a name, so the cast to
|
|
646
|
+
* OpenLayers' expected shape was repeated at all ten `view.animate()` call
|
|
647
|
+
* sites.
|
|
648
|
+
*/
|
|
649
|
+
protected get _easing(): ((t: number) => number) | undefined {
|
|
650
|
+
return this.options.ease as ((t: number) => number) | undefined;
|
|
556
651
|
}
|
|
557
652
|
|
|
653
|
+
/**
|
|
654
|
+
* Zoom that fits the two given points, or `undefined` when the engine
|
|
655
|
+
* cannot compute one. Mirrors `getRouteDistance`: the base class is the
|
|
656
|
+
* no-op template, the OpenLayers subclass returns a real value.
|
|
657
|
+
*/
|
|
558
658
|
_getBoundsZoom(
|
|
559
659
|
m1: LatLngLiteral,
|
|
560
660
|
m2: LatLngLiteral,
|
|
561
661
|
inside?: boolean,
|
|
562
662
|
padding?: unknown,
|
|
563
|
-
): number {
|
|
663
|
+
): number | undefined {
|
|
564
664
|
return undefined;
|
|
565
665
|
}
|
|
566
666
|
|
|
@@ -585,6 +685,18 @@ class MapBase {
|
|
|
585
685
|
if (this.current_marker !== e.marker_number) {
|
|
586
686
|
this.goTo(e.marker_number, false);
|
|
587
687
|
}
|
|
688
|
+
// Re-fired (after navigation) so hosts can tell a marker click
|
|
689
|
+
// apart from programmatic navigation: `change` alone does not say
|
|
690
|
+
// *how* the story moved.
|
|
691
|
+
this.fire("markerclick", { marker_number: e.marker_number });
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
_onMarkerPopupOpen(e: { marker_number: number }): void {
|
|
695
|
+
this.fire("popupopen", { marker_number: e.marker_number });
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
_onMarkerPopupClose(e: { marker_number: number }): void {
|
|
699
|
+
this.fire("popupclose", { marker_number: e.marker_number });
|
|
588
700
|
}
|
|
589
701
|
|
|
590
702
|
_onMapLoaded(e?: unknown): void {
|
|
@@ -657,7 +769,7 @@ class MapBase {
|
|
|
657
769
|
origin: LatLngLiteral,
|
|
658
770
|
destination: LatLngLiteral,
|
|
659
771
|
correct_for_center?: boolean,
|
|
660
|
-
): number {
|
|
772
|
+
): number | undefined {
|
|
661
773
|
return this._getBoundsZoom(origin, destination, correct_for_center);
|
|
662
774
|
}
|
|
663
775
|
|
|
@@ -700,15 +812,18 @@ class MapBase {
|
|
|
700
812
|
_afterCreateMarkers(): void {}
|
|
701
813
|
|
|
702
814
|
_initEvents(): void {
|
|
703
|
-
|
|
815
|
+
// stored so the engine's dispose() can detach it (an inline arrow
|
|
816
|
+
// would have no other handle)
|
|
817
|
+
this._onWheelBound = (e: WheelEvent) => {
|
|
704
818
|
this._onWheel(e);
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
//this.on("wheel", this._onWheel, this);
|
|
819
|
+
};
|
|
820
|
+
this._el.map.addEventListener("wheel", this._onWheelBound);
|
|
708
821
|
}
|
|
709
822
|
}
|
|
710
823
|
|
|
711
|
-
|
|
824
|
+
const EventedMapBase = Evented<MapEvents, typeof MapBase>(MapBase);
|
|
825
|
+
|
|
826
|
+
export default class Map extends DomMixed<MapEvents, typeof EventedMapBase>(EventedMapBase) {
|
|
712
827
|
constructor(...args: ConstructorParameters<typeof MapBase>) {
|
|
713
828
|
super(...args);
|
|
714
829
|
}
|