{"_id":"@annotorious/openseadragon-textlayer","_rev":"8-5203e68295f5682974c7315975989bdd","time":{"created":"2023-12-21T18:42:50.876Z","0.1.0":"2023-09-29T13:45:47.924Z","modified":"2024-05-21T15:18:48.087Z","0.2.0":"2023-10-11T10:39:26.925Z","0.3.0":"2023-12-21T18:42:51.262Z","0.4.0":"2023-12-23T17:53:21.680Z","0.5.0":"2024-03-08T08:10:51.326Z","0.5.1":"2024-03-22T09:07:41.632Z","0.5.2":"2024-05-21T15:18:47.894Z"},"name":"@annotorious/openseadragon-textlayer","dist-tags":{"latest":"0.5.2"},"versions":{"0.3.0":{"name":"@annotorious/openseadragon-textlayer","version":"0.3.0","description":"A text overlay layer for Annotorious OpenSeadragon","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"type":"module","scripts":{"start":"vite","build":"tsc && vite build","preview":"vite preview","test":"echo 'Skipping tests in @annotorious/openseadragon-textlayer package'"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/annotorious-openseadragon-textlayer.es.js","require":"./dist/annotorious-openseadragon-textlayer.js"},"./annotorious-openseadragon-textlayer.css":"./dist/annotorious-openseadragon-textlayer.css"},"main":"./dist/annotorious-openseadragon-textlayer.js","module":"./dist/annotorious-openseadragon-textlayer.es.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"homepage":"https://annotorious.github.io","devDependencies":{"@sveltejs/vite-plugin-svelte":"^2.0.4","@tsconfig/svelte":"^3.0.0","@types/node":"^20.8.0","@types/openseadragon":"^3.0.4","svelte":"^3.58.0","svelte-preprocess":"^4.10.7","typescript":"^4.9.5","vite":"^4.2.1","vite-plugin-dts":"^2.2.0"},"peerDependencies":{"@annotorious/openseadragon":"^3.0.0-rc.10","openseadragon":"^3.0.0 || ^4.0.0"},"dependencies":{"@annotorious/formats":"^0.1.0"},"_id":"@annotorious/openseadragon-textlayer@0.3.0","gitHead":"0fe1f37a85120e2196b0bed625fd9a9d3bef320b","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-7bbvyQcSEJ4TiZ2mbTNPqgVESM/POJBHpIfiD9q0sB3VxLT760H/3tmwM8z097/DuPBLzuSveJByuNixddkhqg==","shasum":"17e11afd4d7ff3bedcbc3c552b1e50cfa52868c5","tarball":"https://registry.npmjs.org/@annotorious/openseadragon-textlayer/-/openseadragon-textlayer-0.3.0.tgz","fileCount":30,"unpackedSize":378455,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGxxjWNC5FyWqxiKlbOGVsXXbmbl2UtNKeefmiJDa5olAiEArODvOKJMCRfB91+cFdaBuABIz6n7bBkKcj8Zjw5gzs8="}]},"_npmUser":{"name":"aboutgeo","email":"aboutgeo@gmail.com"},"directories":{},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openseadragon-textlayer_0.3.0_1703184171016_0.8390650677804434"},"_hasShrinkwrap":false},"0.4.0":{"name":"@annotorious/openseadragon-textlayer","version":"0.4.0","description":"A text overlay layer for Annotorious OpenSeadragon","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"type":"module","scripts":{"start":"vite","build":"tsc && vite build","preview":"vite preview","test":"echo 'Skipping tests in @annotorious/openseadragon-textlayer package'"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/annotorious-openseadragon-textlayer.es.js","require":"./dist/annotorious-openseadragon-textlayer.js"},"./annotorious-openseadragon-textlayer.css":"./dist/annotorious-openseadragon-textlayer.css"},"main":"./dist/annotorious-openseadragon-textlayer.js","module":"./dist/annotorious-openseadragon-textlayer.es.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"homepage":"https://annotorious.github.io","devDependencies":{"@sveltejs/vite-plugin-svelte":"^2.0.4","@tsconfig/svelte":"^3.0.0","@types/node":"^20.8.0","@types/openseadragon":"^3.0.4","svelte":"^3.58.0","svelte-preprocess":"^4.10.7","typescript":"^4.9.5","vite":"^4.2.1","vite-plugin-dts":"^2.2.0"},"peerDependencies":{"openseadragon":"^3.0.0 || ^4.0.0","@annotorious/openseadragon":"^3.0.0-rc.16"},"dependencies":{"@annotorious/annotorious":"^3.0.0-rc.16","@annotorious/core":"^3.0.0-rc.16","@annotorious/formats":"^0.2.0"},"_id":"@annotorious/openseadragon-textlayer@0.4.0","gitHead":"d46982b4e42aa76724b55b77cb783095ca8dbeb1","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-hDkjxifAjyQjLLkJZSSzqNLyPKI0Mvw8z0HztBBp4iEOr1Q80TJ9nD28NBhxI2aQroSBeXJpaKMWycJWQLjG8w==","shasum":"af883270490533142061784fcdd31709e360091c","tarball":"https://registry.npmjs.org/@annotorious/openseadragon-textlayer/-/openseadragon-textlayer-0.4.0.tgz","fileCount":30,"unpackedSize":717725,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGD/S9u4xwHl0mJEjy0UqK46xucZnQihPIur4qi65mAwIhAPPdRTR+7dzvCbjIHvh5ex7PNZtZKWzuLG21OC0H8GRX"}]},"_npmUser":{"name":"aboutgeo","email":"aboutgeo@gmail.com"},"directories":{},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openseadragon-textlayer_0.4.0_1703354001388_0.7421745533152397"},"_hasShrinkwrap":false},"0.5.0":{"name":"@annotorious/openseadragon-textlayer","version":"0.5.0","description":"A text overlay layer for Annotorious OpenSeadragon","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"type":"module","scripts":{"start":"vite","build":"tsc && vite build","preview":"vite preview","test":"echo 'Skipping tests in @annotorious/openseadragon-textlayer package'"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/annotorious-openseadragon-textlayer.es.js","require":"./dist/annotorious-openseadragon-textlayer.js"},"./annotorious-openseadragon-textlayer.css":"./dist/annotorious-openseadragon-textlayer.css"},"main":"./dist/annotorious-openseadragon-textlayer.js","module":"./dist/annotorious-openseadragon-textlayer.es.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"homepage":"https://annotorious.github.io","devDependencies":{"@sveltejs/vite-plugin-svelte":"^3.0.2","@tsconfig/svelte":"^5.0.2","@types/node":"^20.11.25","@types/openseadragon":"^3.0.10","svelte":"^4.2.12","svelte-preprocess":"^5.1.3","typescript":"^5.4.2","vite":"^5.1.5","vite-plugin-dts":"^3.7.3"},"peerDependencies":{"openseadragon":"^3.0.0 || ^4.0.0","@annotorious/openseadragon":"^3.0.0-rc.19"},"dependencies":{"@annotorious/annotorious":"^3.0.0-rc.19","@annotorious/core":"^3.0.0-rc.19","@annotorious/formats":"^0.3.0"},"_id":"@annotorious/openseadragon-textlayer@0.5.0","gitHead":"a0943e7cba98e6fd3dac8e10a7adafd5304eebec","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-fKvZXYPjM5CsXhZ/OPumOx4AP0cJDjW7wbeLnrs9A4yLC+U82A7EVE0/jeE12ayxWNqKWXYsDsqh66RMamcGwg==","shasum":"b0a91f0c13bdb6ec9f927a3dea59010ce9c55de1","tarball":"https://registry.npmjs.org/@annotorious/openseadragon-textlayer/-/openseadragon-textlayer-0.5.0.tgz","fileCount":26,"unpackedSize":757063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2Va9VLZD3wGUQQjp2lTQGt3zgYDjZPDGhBByZTm4RuAiEApPfg3jNal1KwDw5KaYqUNkhSF8DUymI3Wu6b157ZyhI="}]},"_npmUser":{"name":"aboutgeo","email":"aboutgeo@gmail.com"},"directories":{},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openseadragon-textlayer_0.5.0_1709885451089_0.5396582807304795"},"_hasShrinkwrap":false},"0.5.1":{"name":"@annotorious/openseadragon-textlayer","version":"0.5.1","description":"A text overlay layer for Annotorious OpenSeadragon","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"type":"module","scripts":{"start":"vite","build":"tsc && vite build","preview":"vite preview","test":"echo 'Skipping tests in @annotorious/openseadragon-textlayer package'"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/annotorious-openseadragon-textlayer.es.js","require":"./dist/annotorious-openseadragon-textlayer.js"},"./annotorious-openseadragon-textlayer.css":"./dist/annotorious-openseadragon-textlayer.css"},"main":"./dist/annotorious-openseadragon-textlayer.js","module":"./dist/annotorious-openseadragon-textlayer.es.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"homepage":"https://annotorious.github.io","devDependencies":{"@sveltejs/vite-plugin-svelte":"^3.0.2","@tsconfig/svelte":"^5.0.2","@types/node":"^20.11.30","@types/openseadragon":"^3.0.10","svelte":"^4.2.12","svelte-preprocess":"^5.1.3","typescript":"^5.4.3","vite":"^5.2.2","vite-plugin-dts":"^3.7.3"},"peerDependencies":{"openseadragon":"^3.0.0 || ^4.0.0","@annotorious/openseadragon":"^3.0.0-rc.19"},"dependencies":{"@annotorious/annotorious":"^3.0.0-rc.19","@annotorious/core":"^3.0.0-rc.19","@annotorious/formats":"^0.3.1"},"_id":"@annotorious/openseadragon-textlayer@0.5.1","gitHead":"febd51d40b2c20b9bc7a2592900db45a232b0f06","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-BniwuaFIbDcHyIeB/LQKcBvQy7B6Eo0uiAMFSkWQcVl5rs6Zwj+Fq2EJOmGT2Yf3ibwDupkUJZssJ2hsFS5JZQ==","shasum":"9a7bd2de4cc09b6e854ca0e5c507ce101f6daf28","tarball":"https://registry.npmjs.org/@annotorious/openseadragon-textlayer/-/openseadragon-textlayer-0.5.1.tgz","fileCount":26,"unpackedSize":760555,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAh1oMc4dw18yVwCXL3Kz9S1rKvmHDNN9C4T2WPrl5a/AiAa7IyB41CCinYhAgKLmYt1Ifb8PcxojV0uRs+oNKFdmQ=="}]},"_npmUser":{"name":"aboutgeo","email":"aboutgeo@gmail.com"},"directories":{},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openseadragon-textlayer_0.5.1_1711098461461_0.509138493086073"},"_hasShrinkwrap":false},"0.5.2":{"name":"@annotorious/openseadragon-textlayer","version":"0.5.2","description":"A text overlay layer for Annotorious OpenSeadragon","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"type":"module","scripts":{"start":"vite","build":"tsc && vite build","preview":"vite preview","test":"echo 'Skipping tests in @annotorious/openseadragon-textlayer package'"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/annotorious-openseadragon-textlayer.es.js","require":"./dist/annotorious-openseadragon-textlayer.js"},"./annotorious-openseadragon-textlayer.css":"./dist/annotorious-openseadragon-textlayer.css"},"main":"./dist/annotorious-openseadragon-textlayer.js","module":"./dist/annotorious-openseadragon-textlayer.es.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"homepage":"https://annotorious.github.io","devDependencies":{"@sveltejs/vite-plugin-svelte":"^3.1.0","@tsconfig/svelte":"^5.0.4","@types/node":"^20.12.12","@types/openseadragon":"^3.0.10","svelte":"^4.2.17","svelte-preprocess":"^5.1.4","typescript":"^5.4.5","vite":"^5.2.11","vite-plugin-dts":"^3.9.1"},"peerDependencies":{"openseadragon":"^3.0.0 || ^4.0.0"},"dependencies":{"@annotorious/openseadragon":"^3.0.0-rc.25","@annotorious/formats":"^0.3.1"},"_id":"@annotorious/openseadragon-textlayer@0.5.2","gitHead":"9e8ba7f369d9d7327c99a6845fb7b38acfb167ae","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-M38sA0jyfoo1QTyvMOq65Oy9hAsyVhU5ihSz6qDiGCGJCbfEExDS8XiHrX+lxG13Jnx02T+kurSrzVJc6RHluA==","shasum":"34d7e3529597f46df6783ee9496b14b4e886fb1f","tarball":"https://registry.npmjs.org/@annotorious/openseadragon-textlayer/-/openseadragon-textlayer-0.5.2.tgz","fileCount":26,"unpackedSize":761011,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbzNdpG58mSpZOxBPPfuqmCM4fIdUU3fheqTlK1CCVYAIgGp697aeDfbCcpu0Sat90n1i9nJr0HuYVxlQzSt9ISrc="}]},"_npmUser":{"name":"aboutgeo","email":"aboutgeo@gmail.com"},"directories":{},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openseadragon-textlayer_0.5.2_1716304727659_0.7360847047121406"},"_hasShrinkwrap":false}},"maintainers":[{"name":"aboutgeo","email":"aboutgeo@gmail.com"}],"description":"A text overlay layer for Annotorious OpenSeadragon","homepage":"https://annotorious.github.io","keywords":["Annotation","OCR","OpenSeadragon","Annotorious"],"repository":{"type":"git","url":"git+https://github.com/annotorious/annotorious-extensions.git"},"bugs":{"url":"https://github.com/annotorious/annotorious-extensions/issues"},"license":"BSD-3-Clause","readme":"![An example text layer overlay on a scanned document](https://raw.githubusercontent.com/annotorious/annotorious-v3-extensions/main/annotorious-osd-textlayer/screenshot.jpg \"An example text layer overlay on a scanned document\")\n\n# Annotorious OpenSeadragon Textlayer Extension\n\nA text layer extension for Annotorious OpenSeadragon v3. Includes support for the [ALTO/XML format](https://www.loc.gov/standards/alto/).\n\n## Getting Started\n\nVia npm\n\n```sh\nnpm install --save @annotorious/openseadragon-textlayer\n```\n\nNote that this extension works __only with Annotorious OSD v3__.\n\n```sh\nnpm install --save @annotorious/openseadragon\n```\n\nCode example:\n\n```js\nimport { createOSDAnnotator } from '@annotorious/openseadragon';\nimport { mountExtension, transcriptionLabel } from '@annotorious/openseadragon-textlayer';\n\nconst viewer = OpenSeadragon({\n  // ...init OpenSeadragon viewer\n});\n\n// init Annotorious \nconst anno = createOSDAnnotator(viewer);\n\n// init the text layer extension \nconst textlayer = mountExtension(anno, {\n  label: transcriptionLabel,\n  mode: 'fixedPageSize',\n  position: 'center',\n  offsetY: 60\n});\n\n// load ALTO file\ntextlayer.loadOCR('alto-sample.xml');\n```\n\n## Using via Script Import\n\nMake sure you have OpenSeadragon and the AnnotoriousOSD script and stylesheetin imported in your page.\n\n```html\n<html>\n  <head>\n    <!-- ... -->\n\n    <!-- include script file -->\n    <script src=\"https://cdn.jsdelivr.net/npm/@annotorious/openseadragon-textlayer@latest/dist/annotorious-openseadragon-textlayer.js\"></script>\n\n    <!-- include CSS styles -->\n    <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@annotorious/openseadragon-textlayer@latest/dist/annotorious-openseadragon-textlayer.css\">\n  </head>\n</html>\n```\n\nWhen using script import, Annotorious and the Text Layer extension expose their APIs through\nglobal variables `AnnotoriousOSD` and `OSDTextLayer`.\n\n```js\nwindow.onload = function() {\n  var viewer = OpenSeadragon({\n    // ...init OpenSeadragon viewer\n  });\n\n  // init Annotorious\n  var anno = AnnotoriousOSD.createOSDAnnotator(viewer);\n\n  // init the text layer extension\n  var textlayer = OSDTextLayer.mountExtension(anno, {\n    label: OSDTextLayer.transcriptionLabel,\n    mode: 'fixedPageSize',\n    position: 'center',\n    offsetY: 50\n  });\n\n  // load ALTO file\n  textlayer.loadOCR('alto-sample.xml');\n}\n```\n\n## API\n\n#### Init Options\n\nThe text layer extension supports the following initialization options:\n\n| Option         | Type     | Default           | Description                                                                                          |\n|----------------|----------|-------------------|------------------------------------------------------------------------------------------------------|\n| defaultVisible | boolean  | `true`            | Defines whether text layer is visible by default                                                     |   \n| label          | Function | -                 | A function which takes an `ImageAnnotation` as argument and must return a string to display as label |\n| mode           | string   | `fixedScreenSize` | Label display mode: `fixedScreenSize`, `fixedPageSize` or `fillBounds`                               |\n| offsetX        | number   | 0                 | X offset from the default position, pixels, original base image resolution                           |\n| offsetY        | number   | 0                 | Y offset from the default position, pixels, original base image resolution                           |\n| position       | string   | `bottomleft`      | label position relative to the annotation bounding box: `topleft`, `bottomleft` or `center`          |\n\n#### API\n\nThe `textlayer` object exposes the following API methods:\n\n- __isLocked()__ returns `true` if OpenSeadragon is currently locked, so mouse drag will select text\n- __isVisible()__ returns `true` if the text layer is currently visible\n- __loadOCR(url: string)__ loads an ALTO/XML file from the given URL\n- __setLocked(locked: boolean)__ changes lock status of the OpenSeadragon layer\n- __setVisible(visible: boolean)__ changes the visibility of the text layer\n- __unmount()__ unmounts the extension and destroys the text layer‚\n\n## Customizing Styles\n\nMost aspects of the appearance can be controlled via CSS. Selecting\n`.a9s-osd-text-layer .annotation span` allows you to override the default\nstyles.\n\n```css\n.a9s-osd-textlayer .annotation span {\n  color: #d80bde;\n  font-size: 60px;\n  text-shadow: 0 0 6px rgb(255 255 255 / 95%);\n}\n```\n\n## License\n\n[BSD 3-Clause](https://github.com/annotorious/annotorious-v3-extensions/blob/main/annotorious-osd-textlayer/LICENSE)\n\n## Acknowledgements\n\nThis Annotorious extension exists thanks to the support of [Brumfield Labs](https://www.brumfieldlabs.com/),\ncreators of [FromThePage](https://fromthepage.com/).\n\n<a href=\"https://fromthepage.com/\">\n<img src=\"https://raw.githubusercontent.com/annotorious/annotorious-v3-extensions/main/annotorious-osd-textlayer/fromthepage_logo.jpg\" style=\"width: 150px\" /></a><br/><br/>\n\nFurthermore, thanks and acknowledgements go out to [Johannes Baiter](https://github.com/jbaiter) whose\n[Mirador Textoverlay plugin](https://github.com/dbmdz/mirador-textoverlay) served as a guide\nfor this extension.\n\n","readmeFilename":"README.md"}