@elibrary-inno/bookreader
Version:
The Internet Archive BookReader.
724 lines (660 loc) • 241 kB
JavaScript
/*! For license information please see ia-bookreader-bundle.js.LICENSE.txt */
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[64],{8065:function(e,t,n){n(1539),n(2419),n(6649),n(6078),n(2526),n(1817),n(9653),n(2165),n(6992),n(8783),n(3948),n(1038),n(7042),n(9714),n(8309),n(4916),n(3371),n(489);var r=n(8318);function o(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}Object.create,Object.create;var i,a,s=n(9089);class l{parseValue(e){return("string"!=typeof e||"false"!==e&&"0"!==e)&&Boolean(e)}}l.shared=new l;class c{parseValue(e){if("number"==typeof e)return e;if("boolean"==typeof e)return;const t=parseFloat(e);return Number.isNaN(t)?void 0:t}}c.shared=new c;class u{parseValue(e){return c.shared.parseValue(e)}}u.shared=new u;class d{parseValue(e){return this.parseJSDate(e)||this.parseBracketDate(e)}parseBracketDate(e){if("string"!=typeof e)return;const t=e.match(/\[([0-9]{4})\]/);return!t||t.length<2?void 0:this.parseJSDate(t[1])}parseJSDate(e){if("string"!=typeof e)return;let t=e;t.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}\s{1}[0-9]{2}:[0-9]{2}:[0-9]{2}$/)&&(t=t.replace(" ","T"));const n=Date.parse(t);if(Number.isNaN(n))return;let r=new Date(t);return(t.indexOf("Z")>-1||t.indexOf("+")>-1||t.match(/^[0-9]{4}$/)||t.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/)||t.match(/^.*?-[0-9]{2}:[0-9]{2}$/)||t.match(/^.*?-[0-9]{4}$/))&&(r=new Date(r.getTime()+1e3*r.getTimezoneOffset()*60)),r}}d.shared=new d;class h{parseValue(e){if("number"==typeof e)return e;if("boolean"==typeof e)return;const t=e.split(":");let n;return n=1===t.length?this.parseNumberFormat(t[0]):this.parseColonSeparatedFormat(t),n}parseNumberFormat(e){let t=parseFloat(e);return Number.isNaN(t)&&(t=void 0),t}parseColonSeparatedFormat(e){let t=!1;const n=e.map(((n,r)=>{const o=parseFloat(n);if(Number.isNaN(o))return t=!0,0;const i=60**(e.length-1-r);return o*Math.floor(i)})).reduce(((e,t)=>e+t),0);return t?void 0:n}}h.shared=new h;class f{parseValue(e){if("string"==typeof e)return e}}f.shared=new f;class p{parseValue(e){if("string"==typeof e)return e}}p.shared=new p;class m{parseValue(e){return String(e)}}m.shared=new m;class v{constructor(e,t){this.values=[],this.parser=e,this.rawValue=t,this.processRawValue()}get value(){return this.values.length>0?this.values[0]:void 0}processRawValue(){void 0!==this.rawValue&&(Array.isArray(this.rawValue)?this.rawValue.forEach((e=>{this.parseAndPersistValue(e)})):this.parseAndPersistValue(this.rawValue))}parseAndPersistValue(e){const t=this.parser.parseValue(e);void 0!==t&&this.values.push(t)}}class b extends v{constructor(e){super(l.shared,e)}}class y extends v{constructor(e){super(d.shared,e)}}class g extends v{constructor(e){super(h.shared,e)}}class k extends v{constructor(e){super(c.shared,e)}}class w extends v{constructor(e){super(m.shared,e)}}class C extends v{constructor(e){super(u.shared,e)}}class S extends v{constructor(e){super(f.shared,e)}}class x{constructor(e){this.rawMetadata=e,this.identifier=e.identifier,this.addeddate=e.addeddate?new y(e.addeddate):void 0,this.publicdate=e.publicdate?new y(e.publicdate):void 0,this.indexdate=e.indexdate?new y(e.indexdate):void 0,this.audio_codec=e.audio_codec?new w(e.audio_codec):void 0,this.audio_sample_rate=e.audio_sample_rate?new k(e.audio_sample_rate):void 0,this.collection=e.collection?new w(e.collection):void 0,this.collections_raw=e.collections_raw?new w(e.collections_raw):void 0,this.collection_size=e.collection_size?new C(e.collection_size):void 0,this.contributor=e.contributor?new w(e.contributor):void 0,this.coverage=e.coverage?new w(e.coverage):void 0,this.creator=e.creator?new w(e.creator):void 0,this.date=e.date?new y(e.date):void 0,this.description=e.description?new w(e.description):void 0,this.downloads=e.downloads?new k(e.downloads):void 0,this.duration=e.duration?new g(e.duration):void 0,this.files_count=e.files_count?new k(e.files_count):void 0,this.item_count=e.item_count?new k(e.item_count):void 0,this.item_size=e.item_size?new C(e.item_size):void 0,this.language=e.language?new w(e.language):void 0,this.length=e.length?new g(e.length):void 0,this.lineage=e.lineage?new w(e.lineage):void 0,this.mediatype=e.mediatype?new S(e.mediatype):void 0,this.month=e.month?new k(e.month):void 0,this.noindex=e.noindex?new b(e.noindex):void 0,this.notes=e.notes?new w(e.notes):void 0,this.num_favorites=e.num_favorites?new k(e.num_favorites):void 0,this.num_reviews=e.num_reviews?new k(e.num_reviews):void 0,this.runtime=e.runtime?new g(e.runtime):void 0,this.scanner=e.scanner?new w(e.scanner):void 0,this.source=e.source?new w(e.source):void 0,this.start_localtime=e.start_localtime?new y(e.start_localtime):void 0,this.start_time=e.start_time?new y(e.start_time):void 0,this.stop_time=e.stop_time?new y(e.stop_time):void 0,this.subject=e.subject?new w(e.subject):void 0,this.taper=e.taper?new w(e.taper):void 0,this.title=e.title?new w(e.title):void 0,this.track=e.track?new k(e.track):void 0,this.transferer=e.transferer?new w(e.transferer):void 0,this.type=e.type?new w(e.type):void 0,this.uploader=e.uploader?new w(e.uploader):void 0,this.utc_offset=e.utc_offset?new k(e.utc_offset):void 0,this.venue=e.venue?new w(e.venue):void 0,this.week=e.week?new k(e.week):void 0,this.year=e.year?new y(e.year):void 0}}class O{constructor(e){this.name=e.name,this.source=e.source,this.btih=e.btih,this.md5=e.md5,this.format=e.format,this.mtime=e.mtime,this.crc32=e.crc32,this.sha1=e.sha1,this.original=e.original,this.title=e.title,this.length=e.length?h.shared.parseValue(e.length):void 0,this.size=e.size?u.shared.parseValue(e.size):void 0,this.height=e.height?c.shared.parseValue(e.height):void 0,this.width=e.width?c.shared.parseValue(e.width):void 0,this.track=e.track?c.shared.parseValue(e.track):void 0,this.external_identifier=e["external-identifier"],this.creator=e.creator,this.album=e.album}}class j{constructor(e){this.reviewbody=e.reviewbody,this.reviewtitle=e.reviewtitle,this.reviewer=e.reviewer,this.reviewdate=d.shared.parseValue(e.reviewdate),this.createdate=d.shared.parseValue(e.createdate),this.stars=e.stars?parseFloat(e.stars):void 0}}class L{constructor(e){var t,n;this.rawResponse=e,this.created=e.created,this.d1=e.d1,this.d2=e.d2,this.dir=e.dir,this.files=null===(t=e.files)||void 0===t?void 0:t.map((e=>new O(e))),this.files_count=e.files_count,this.item_last_updated=e.item_last_updated,this.item_size=e.item_size,this.metadata=new x(e.metadata),this.server=e.server,this.uniq=e.uniq,this.workable_servers=e.workable_servers,this.speech_vs_music_asr=e.speech_vs_music_asr,this.reviews=null===(n=e.reviews)||void 0===n?void 0:n.map((e=>new j(e)))}}class B{constructor(e){this.numFound=e.numFound,this.start=e.start,this.docs=e.docs.map((e=>new x(e))),this.aggregations=e.aggregations}}class P{constructor(e){this.rawResponse=e,this.responseHeader=e.responseHeader,this.response=new B(e.response)}}!function(e){e.networkError="SearchService.NetworkError",e.itemNotFound="SearchService.ItemNotFound",e.decodingError="SearchService.DecodingError",e.searchEngineError="SearchService.SearchEngineError"}(i||(i={}));class E extends Error{constructor(e,t,n){super(t),this.name=e,this.type=e,this.details=n}}class I{constructor(e){this.searchBackend=e}async search(e){const t=await this.searchBackend.performSearch(e);return t.error?t:{success:new P(t.success)}}async fetchMetadata(e){var t;const n=await this.searchBackend.fetchMetadata(e);return n.error?n:void 0===(null===(t=n.success)||void 0===t?void 0:t.metadata)?{error:new E(i.itemNotFound)}:{success:new L(n.success)}}}I.default=new I(new class{constructor(e="archive.org"){this.baseUrl=e}async performSearch(e){const t=e.asUrlSearchParams.toString(),n=`https://${this.baseUrl}/advancedsearch.php?${t}`;return this.fetchUrl(n)}async fetchMetadata(e){const t=`https://${this.baseUrl}/metadata/${e}`;return this.fetchUrl(t)}async fetchUrl(e){let t;try{t=await fetch(e)}catch(e){const t=e instanceof Error?e.message:e;return this.getErrorResult(i.networkError,t)}try{const e=await t.json(),n=e.error;if(n){const t=e.forensics;return this.getErrorResult(i.searchEngineError,n,t)}return{success:e}}catch(e){const t=e instanceof Error?e.message:e;return this.getErrorResult(i.decodingError,t)}}getErrorResult(e,t,n){return{error:new E(e,t,n)}}}),function(e){e.Asc="asc",e.Desc="desc"}(a||(a={}));var M=r.dy`
<svg
viewBox="0 0 40 40"
xmlns="http://www.w3.org/2000/svg"
aria-labelledby="ellipsesTitleID ellipsesDescID"
>
<title id="ellipsesTitleID">Ellipses icon</title>
<desc id="ellipsesDescID">An illustration of text ellipses.</desc>
<path class="fill-color" d="m10.5 17.5c1.3807119 0 2.5 1.1192881 2.5 2.5s-1.1192881 2.5-2.5 2.5c-1.38071187 0-2.5-1.1192881-2.5-2.5s1.11928813-2.5 2.5-2.5zm9.5 0c1.3807119 0 2.5 1.1192881 2.5 2.5s-1.1192881 2.5-2.5 2.5-2.5-1.1192881-2.5-2.5 1.1192881-2.5 2.5-2.5zm9.5 0c1.3807119 0 2.5 1.1192881 2.5 2.5s-1.1192881 2.5-2.5 2.5-2.5-1.1192881-2.5-2.5 1.1192881-2.5 2.5-2.5z" fill-rule="evenodd"/>
</svg>
`;class T extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return M}}customElements.define("ia-icon-ellipses",T);const z=r.iv`42px`,D=r.iv`var(--menuWidth, 320px)`,A=r.iv`var(--animationTiming, 200ms)`;var _=r.iv`
.main {
overflow: hidden;
width: 100%;
height: 100%;
}
.animate {
transition: transform ${A} ease-out;
}
.menu {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: ${D};
padding: 0.5rem 0.5rem 0 0;
box-sizing: border-box;
font-size: 1.4rem;
color: var(--primaryTextColor);
background: var(--menuSliderBg);
transform: translateX(calc(${D} * -1));
}
.menu > button.close {
right: 0.7rem;
}
button {
outline: none;
cursor: pointer;
}
header {
margin: 0 0 0.5rem 0;
}
header * {
margin: 0;
display: inline-block;
}
header button {
outline: none;
cursor: pointer;
}
header.with-secondary-action .details {
width: 80%;
}
header .details {
font-weight: bold;
width: 88%;
}
header .custom-action > *,
button.close {
padding: 0;
background-color: transparent;
border: 0;
--iconWidth: var(--menuSliderHeaderIconWidth);
--iconHeight: var(--menuSliderHeaderIconHeight);
}
header .custom-action,
button.close {
position: absolute;
}
button.close {
right: 0.5rem;
}
button.close * {
float: right;
}
.content {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: ${z};
z-index: 1;
transform: translateX(calc(${D} * -1));
transition: transform ${A} ease-out;
background: var(--activeButtonBg);
border-right: 0.2rem solid;
border-color: var(--subpanelRightBorderColor);
padding: 0.5rem 0 0 0.5rem;
display: flex;
flex-direction: column;
}
.open {
transform: translateX(0);
}
.menu-list {
padding: 0;
margin: 0;
list-style: none;
background: var(--menuSliderBg);
}
.menu-list li {
margin-bottom: 0.2rem;
}
.content > section {
overflow: auto;
overscroll-behavior: contain;
}
`,$=r.dy`
<svg
viewBox="0 0 18 18"
xmlns="http://www.w3.org/2000/svg"
aria-labelledby="collapseSidebarTitleID collapseSidebarDescID"
>
<title id="collapseSidebarTitleID">Collapse sidebar</title>
<desc id="collapseSidebarDescID">A circle with a left pointing chevron</desc>
<path d="m9 0c4.9705627 0 9 4.02943725 9 9 0 4.9705627-4.0294373 9-9 9-4.97056275 0-9-4.0294373-9-9 0-4.97056275 4.02943725-9 9-9zm1.6976167 5.28352881c-.365258-.3556459-.9328083-.37581056-1.32099801-.06558269l-.09308988.0844372-3 3.08108108-.08194436.09533317c-.27484337.36339327-.26799482.87009349.01656959 1.22592581l.084491.09308363 3 2.91891889.09533796.0818904c.3633964.2746544.8699472.2677153 1.2256839-.0167901l.093059-.0844712.0818904-.095338c.2746544-.3633964.2677153-.8699472-.0167901-1.2256839l-.0844712-.093059-2.283355-2.2222741 2.3024712-2.36338332.0819252-.09530804c.2997677-.39632298.2644782-.96313393-.1007797-1.31877983z" fill-rule="evenodd" class="fill-color" />
</svg>
`;class R extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return $}}customElements.define("ia-icon-collapse-sidebar",R);var H=r.iv`
a {
display: inline-block;
text-decoration: none;
}
.menu-item {
display: inline-flex;
width: 100%;
padding: 0;
font-size: 1.6rem;
text-align: left;
background: transparent;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: none;
cursor: pointer;
}
button.menu-item {
-webkit-appearance: none;
appearance: none;
border-radius: 0;
}
.menu-item:focus {
outline: none;
}
.label {
display: var(--menuButtonLabelDisplay, none);
padding: 0;
font-weight: 400;
color: var(--primaryTextColor);
text-align: left;
vertical-align: middle;
margin-left: 1rem;
}
.menu-details {
color: var(--primaryTextColor);
display: inline-block;
margin-left: 0.5rem;
font-style: italic;
font-size: 1.5rem;
}
.menu-item > .icon {
position: relative;
display: inline-flex;
z-index: 2;
min-width: 4.2rem;
max-width: 4.2rem;
height: 4.2rem;
vertical-align: middle;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.menu-item.selected .icon {
background-color: var(--activeButtonBg);
border-radius: 1rem 0 0 1rem;
}
.icon .fill-color {
fill: #999;
}
.icon.active .fill-color {
fill: #fff;
}
`;let F=class extends r.oi{constructor(){super(...arguments),this.icon="",this.href="",this.label="",this.menuDetails="",this.buttonId="",this.selected=!1,this.followable=!1}static get styles(){return H}onClick(e){e.preventDefault(),this.dispatchMenuTypeSelectedEvent()}dispatchMenuTypeSelectedEvent(){this.dispatchEvent(new CustomEvent("menuTypeSelected",{bubbles:!0,composed:!0,detail:{id:this.buttonId}}))}get buttonClass(){return this.selected?"selected":""}get iconClass(){return this.selected?"active":""}get menuItem(){return r.dy`
<span class="icon ${this.iconClass}"> ${this.icon} </span>
<span class="label">${this.label}</span>
<span class="menu-details">${this.menuDetails}</span>
`}get linkButton(){return r.dy`
<a
href="${this.href}"
class="menu-item ${this.buttonClass}"
@click=${this.followable?void 0:this.onClick}
>${this.menuItem}</a
>
`}get clickButton(){return r.dy`
<button class="menu-item ${this.buttonClass}" @click=${this.onClick}>
${this.menuItem}
</button>
`}render(){return this.href?this.linkButton:this.clickButton}};o([(0,s.Cb)({type:String})],F.prototype,"icon",void 0),o([(0,s.Cb)({type:String})],F.prototype,"href",void 0),o([(0,s.Cb)({type:String})],F.prototype,"label",void 0),o([(0,s.Cb)({type:String})],F.prototype,"menuDetails",void 0),o([(0,s.Cb)({type:String})],F.prototype,"buttonId",void 0),o([(0,s.Cb)({type:Boolean})],F.prototype,"selected",void 0),o([(0,s.Cb)({type:Boolean})],F.prototype,"followable",void 0),F=o([(0,s.Mo)("menu-button")],F);const N={closeDrawer:"menuSliderClosed"};let U=class extends r.oi{constructor(){super(...arguments),this.menus=[],this.open=!1,this.manuallyHandleClose=!1,this.selectedMenu="",this.selectedMenuAction=r.Ld,this.animateMenuOpen=!1}static get styles(){return _}updated(){const{actionButton:e}=this.selectedMenuDetails||{};e!==this.selectedMenuAction&&(this.selectedMenuAction=e||r.Ld)}setSelectedMenu({detail:e}){const{id:t}=e;this.selectedMenu=this.selectedMenu===t?"":t;const{actionButton:n}=this.selectedMenuDetails||{};this.selectedMenuAction=n||r.Ld}closeMenu(){this.manuallyHandleClose||(this.open=!1);const{closeDrawer:e}=N,t=new CustomEvent(e,{detail:this.selectedMenuDetails});this.dispatchEvent(t)}get selectedMenuDetails(){return this.menus.find((e=>e.id===this.selectedMenu))}get selectedMenuComponent(){const e=this.selectedMenuDetails;return e&&(null==e?void 0:e.component)?e.component:r.dy``}get sliderDetailsClass(){return`${this.animateMenuOpen?"animate":""} ${this.open?"open":""}`}get selectedMenuClass(){return this.selectedMenu?"open":""}get menuItems(){return this.menus.map((e=>r.dy`
<li>
<menu-button
@menuTypeSelected=${this.setSelectedMenu}
.icon=${e.icon}
.label=${e.label}
.menuDetails=${e.menuDetails}
.buttonId=${e.id}
.selected=${e.id===this.selectedMenu}
.followable=${e.followable}
.href=${e.href}
></menu-button>
</li>
`))}get renderMenuHeader(){const{label:e="",menuDetails:t=""}=this.selectedMenuDetails||{},n=this.selectedMenuAction?"with-secondary-action":"",o=this.selectedMenuAction?r.dy`<span class="custom-action">${this.selectedMenuAction}</span>`:r.Ld;return r.dy`
<header class="${n}">
<div class="details">
<h3>${e}</h3>
<span class="extra-details">${t}</span>
</div>
${o} ${this.closeButton}
</header>
`}get closeButton(){return r.dy`
<button
class="close"
aria-label="Close this menu"
@click=${this.closeMenu}
>
<ia-icon-collapse-sidebar></ia-icon-collapse-sidebar>
</button>
`}render(){return r.dy`
<div class="main">
<div class="menu ${this.sliderDetailsClass}">
${this.closeButton}
<ul class="menu-list">
${this.menuItems}
</ul>
<div
class="content ${this.selectedMenuClass}"
@menuTypeSelected=${this.setSelectedMenu}
>
${this.renderMenuHeader}
<section>
<div class="selected-menu">${this.selectedMenuComponent}</div>
</section>
</div>
</div>
</div>
`}};o([(0,s.Cb)({type:Array})],U.prototype,"menus",void 0),o([(0,s.Cb)({type:Boolean})],U.prototype,"open",void 0),o([(0,s.Cb)({type:Boolean})],U.prototype,"manuallyHandleClose",void 0),o([(0,s.Cb)({type:String})],U.prototype,"selectedMenu",void 0),o([(0,s.Cb)({type:Object})],U.prototype,"selectedMenuAction",void 0),o([(0,s.Cb)({type:Boolean})],U.prototype,"animateMenuOpen",void 0),U=o([(0,s.Mo)("ia-menu-slider")],U);let q=class extends r.oi{constructor(){super(...arguments),this.loaderMessage=""}get bookIconSvg(){return r.YP`
<g class="bookIcon" transform="matrix(1 0 0 -1 28 67.362264)">
<path d="m44.71698 31.6981124v-29.99320678s-18.0956599.30735848-18.6322637-.7171698c-.0633962-.12226414-1.890566-.59207545-2.9745282-.59207545-1.3228302 0-3.5122641 0-4.1286791.74547168-.9707547 1.17452827-18.82811278.71660375-18.82811278.71660375v30.040754l1.83849052.7867924.29094339-28.48188608s15.94981097.15339622 17.09094297-1.10716978c.8145283-.90056602 4.997547-.91641507 5.3450942-.3526415.9611321 1.55716977 14.7101883 1.31716978 17.6077354 1.45981128l.3266038 28.22830118z"/>
<path d="m40.1129424 33.5957539h-12.8337733c-1.8690565 0-3.1098112-.7545283-3.9299999-1.6279245v-26.70452764l1.2362264-.00792453c.4584906.72962262 3.0922641 1.39415091 3.0922641 1.39415091h10.1298111s1.0381131.01754717 1.5141509.47377357c.5643396.54056602.7913207 1.36981129.7913207 1.36981129z"/>
<path d="m17.3354713 33.5957539h-12.8337733v-25.37660316s0-.75283017.49358489-1.14113205c.52867924-.41433961 1.3415094-.42849055 1.3415094-.42849055h10.59905631s2.2075471-.52698112 3.0928301-1.39415091l1.2.00792453v26.74245214c-.8201886.8581132-2.0530188 1.59-3.8932074 1.59"/>
</g>
`}get icon(){return this.bookIconSvg}get loader(){return r.YP`
<svg
height="100"
viewBox="0 0 100 100"
width="100"
xmlns="http://www.w3.org/2000/svg"
aria-labelledby="item-loading"
>
<title id="item-loading">Currently loading viewer.</title>
<desc>Please wait while we load theater.</desc>
<g fill="#333" fill-rule="evenodd" class="book-icon">
${this.icon}
<path
class="ring"
d="m17.8618849 11.6970233c18.5864635-15.59603144 45.6875867-15.59603102 64.2740497.000001 1.9271446 1.6170806 2.1785128 4.4902567.5614466 6.4174186-1.6170661 1.9271618-4.4902166 2.1785323-6.4173612.5614517-15.1996922-12.75416882-37.3625282-12.75416916-52.5622206-.000001-15.19969387 12.7541707-19.04823077 34.5805019-9.1273354 51.7641499 9.9208955 17.183646 30.7471499 24.7638499 49.3923323 17.9774983 18.6451823-6.7863521 29.7266014-25.9801026 26.2811129-45.5206248-.436848-2.4775114 1.2174186-4.8400696 3.6949079-5.2769215 2.4774893-.4368518 4.8400264 1.2174296 5.2768744 3.694941 4.2132065 23.8945096-9.3373563 47.3649806-32.137028 55.6634567-22.799672 8.2984758-48.2663986-.9707372-60.39785211-21.9832155-12.1314534-21.012481-7.42539173-47.7021198 11.16107351-63.2981544z"
fill-rule="nonzero"
/>
</g>
</svg>
`}render(){const e=this.loaderMessage?r.dy`<h2>${this.loaderMessage}</h2>`:r.Ld;return r.dy`
<div class="place-holder">
${e} ${this.loader}
<h3>Loading viewer</h3>
</div>
`}static get styles(){return r.iv`
.place-holder {
width: 30%;
margin: auto;
text-align: center;
color: var(--primaryTextColor);
}
.place-holder {
position: relative;
}
.place-holder svg {
display: block;
width: 60%;
max-width: 100px;
height: auto;
margin: auto;
}
svg * {
fill: var(--primaryTextColor);
}
svg .ring {
animation: rotate 1.3s infinite linear;
transform-origin: 50px 50px;
transform-box: fill-box;
display: block; // transform won't work on inline style
}
@keyframes rotate {
0% {
-moz-transform: rotate(-360deg);
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg);
}
}
`}};o([(0,s.Cb)({type:String})],q.prototype,"loaderMessage",void 0),q=o([(0,s.Mo)("ia-itemnav-loader")],q);let V=class extends r.oi{constructor(){super(...arguments),this.identifier=""}emitLoaded(){this.dispatchEvent(new CustomEvent("loadingStateUpdated",{detail:{loaded:!0}}))}updated(e){e.has("identifier")&&this.emitLoaded()}get downloadUrl(){return`/download/${this.identifier}`}render(){return r.dy`
<section>
<h2>THERE IS NO PREVIEW AVAILABLE FOR THIS ITEM</h2>
<p>
This item does not appear to have any files that can be experienced on
Archive.org. <br />
Please download files in this item to interact with them on your
computer.
</p>
<a href=${this.downloadUrl}>Show all files</a>
</section>
`}static get styles(){return r.iv`
:host {
color: var(--primaryTextColor, #fff);
text-align: center;
}
section {
width: 100%;
margin: 5%;
padding: 0 5%;
}
p {
font-size: 1.4rem;
}
a {
color: var(--primaryTextColor, #fff);
background-color: rgb(25, 72, 128);
min-height: 35px;
outline: none;
cursor: pointer;
line-height: normal;
border-radius: 0.4rem;
text-align: center;
vertical-align: middle;
font-size: 1.4rem;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
display: inline-block;
padding: 0.85rem 1.2rem;
border: 1px solid rgb(197, 209, 223);
white-space: nowrap;
appearance: auto;
box-sizing: border-box;
user-select: none;
text-decoration: none;
}
`}};o([(0,s.Cb)({type:String})],V.prototype,"identifier",void 0),V=o([(0,s.Mo)("ia-no-theater-available")],V);let Z=class extends r.oi{constructor(){super(...arguments),this.viewAvailable=!0,this.baseHost="archive.org",this.signedIn=!1,this.menuContents=[],this.menuShortcuts=[],this.viewportInFullscreen=null,this.menuOpened=!1,this.loaded=!1,this.openMenuState="shift"}disconnectedCallback(){this.removeResizeObserver()}updated(e){if(e.has("sharedObserver")){const t=e.get("sharedObserver");null==t||t.removeObserver(this.resizeObserverConfig),this.setResizeObserver()}}handleResize(e){const{width:t}=e.contentRect;this.openMenuState=t<=600?"overlay":"shift"}setResizeObserver(){var e,t;null===(e=this.sharedObserver)||void 0===e||e.addObserver(this.resizeObserverConfig),null===(t=this.sharedObserver)||void 0===t||t.addObserver({target:this.headerSlot,handler:{handleResize:({contentRect:e})=>{e.height&&this.requestUpdate()}}})}removeResizeObserver(){var e;null===(e=this.sharedObserver)||void 0===e||e.removeObserver(this.resizeObserverConfig)}get resizeObserverConfig(){return{handler:this,target:this.frame}}get loaderTitle(){return this.viewportInFullscreen?"Internet Archive":""}get loadingArea(){return r.dy`
<div class="loading-area">
<div class="loading-view">
<ia-itemnav-loader
.loaderMessage=${this.loaderTitle}
></ia-itemnav-loader>
</div>
</div>
`}slotChange(e,t){var n;const r=null===(n=e.target.assignedNodes())||void 0===n?void 0:n[0];this.dispatchEvent(new CustomEvent("slotChange",{detail:{slot:r,type:t}})),this.requestUpdate()}render(){var e,t;const n=this.loaded?"":"hidden",o=(null===(t=null===(e=this.headerSlot)||void 0===e?void 0:e.assignedNodes()[0])||void 0===t?void 0:t.offsetHeight)||0;return r.dy`
<div id="frame" class=${this.menuClass}>
<slot
name="header"
style=${`height: ${o}px`}
@slotchange=${e=>this.slotChange(e,"header")}
></slot>
<div class="menu-and-reader">
${this.shouldRenderMenu?this.renderSideMenu:r.Ld}
<div id="reader" class=${n}>
${this.renderViewport}
</div>
${this.loaded?r.Ld:this.loadingArea}
</div>
</div>
`}get noTheaterView(){var e,t;return r.dy`<ia-no-theater-available
.identifier=${null===(t=null===(e=this.item)||void 0===e?void 0:e.metadata)||void 0===t?void 0:t.identifier}
@loadingStateUpdated=${this.loadingStateUpdated}
></ia-no-theater-available>`}get renderViewport(){if(!this.viewAvailable)return this.noTheaterView;const e=this.loaded?"opacity: 1;":"opacity: 0;";return r.dy`
<div slot="main" style=${e}>
<slot
name="main"
@slotchange=${e=>this.slotChange(e,"main")}
></slot>
</div>
`}loadingStateUpdated(e){const{loaded:t}=e.detail;this.loaded=null!=t&&t}manageViewportFullscreen(e){const t=!!e.detail.isFullScreen;this.viewportInFullscreen=t||null;const n=new CustomEvent("fullscreenToggled",{detail:e.detail});this.dispatchEvent(n)}get shouldRenderMenu(){var e;return!!(null===(e=this.menuContents)||void 0===e?void 0:e.length)}toggleMenu(){this.menuOpened=!this.menuOpened}closeMenu(){this.menuOpened=!1}setOpenMenu(e){const{id:t}=e.detail;this.openMenu=t!==this.openMenu?t:void 0}setMenuContents(e){const t=[...e.detail];this.menuContents=t}setMenuShortcuts(e){this.menuShortcuts=[...e.detail]}manageSideMenuEvents(e){const{menuId:t,action:n}=e.detail;t&&("open"===n?this.openShortcut(t):"toggle"===n&&(this.openMenu=t,this.toggleMenu()))}get menuToggleButton(){return r.dy`
<button
class="toggle-menu"
@click=${this.toggleMenu}
title="Toggle theater side panels"
>
<div>
<ia-icon-ellipses
style="width: var(--iconWidth); height: var(--iconHeight);"
></ia-icon-ellipses>
</div>
</button>
`}get selectedMenuId(){return this.openMenu||""}get renderSideMenu(){const e=this.menuOpened?"":"hidden";return r.dy`
<nav>
<div class="minimized">${this.shortcuts} ${this.menuToggleButton}</div>
<div id="menu" class=${e}>
<ia-menu-slider
.menus=${this.menuContents}
.selectedMenu=${this.selectedMenuId}
@menuTypeSelected=${this.setOpenMenu}
@menuSliderClosed=${this.closeMenu}
manuallyHandleClose
open
></ia-menu-slider>
</div>
</nav>
`}openShortcut(e=""){this.openMenu=e,this.menuOpened=!0}get shortcuts(){const e=this.menuShortcuts.map((({icon:e,id:t})=>"fullscreen"===t?r.dy`${e}`:r.dy`
<button class="shortcut ${t}" @click="${()=>this.openShortcut(t)}">
${e}
</button>
`));return r.dy`<div class="shortcuts">${e}</div>`}get menuClass(){var e,t;const n=(null===(e=this.menuContents)||void 0===e?void 0:e.length)||(null===(t=this.menuShortcuts)||void 0===t?void 0:t.length);return`${this.menuOpened&&n?"open":""} ${this.viewportInFullscreen?"fullscreen":""} ${this.openMenuState}`}static get styles(){const e=r.iv`var(--menuWidth, 320px)`,t=r.iv`var(--animationTiming, 200ms)`,n=r.iv`transform ${t} ease-out`,o=r.iv`var(--theaterMenuMargin, 42px)`,i=r.iv`var(--theaterBgColor, #000)`;return r.iv`
:host,
#frame,
.menu-and-reader {
position: relative;
overflow: hidden;
display: block;
}
:host,
#frame,
.loading-area,
.loading-view {
min-height: inherit;
height: inherit;
}
slot {
display: block;
width: 100%;
}
slot * {
display: block;
height: inherit;
}
#frame {
background-color: ${i};
color-scheme: dark;
display: flex;
flex-direction: column;
}
#frame.fullscreen {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 9;
}
.loading-view {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.loading-area {
width: 100%;
}
ia-itemnav-loader {
display: block;
width: 100%;
}
.hidden {
display: none !important;
}
button {
cursor: pointer;
padding: 0;
border: 0;
}
button:focus,
button:active {
outline: none;
}
.menu-and-reader {
position: relative;
display: flex;
flex: 1;
}
nav button {
background: none;
}
nav .minimized {
background: rgba(0, 0, 0, 0.7);
padding-top: 6px;
position: absolute;
width: ${o};
z-index: 2;
left: 0;
border-bottom-right-radius: 5%;
}
nav .minimized button {
width: var(--iconWidth);
height: var(--iconHeight);
margin-bottom: 0.2rem;
margin: auto;
display: inline-flex;
vertical-align: middle;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
width: ${o};
height: ${o};
}
nav .minimized button.toggle-menu > * {
border: 2px solid var(--iconStrokeColor);
border-radius: var(--iconWidth);
width: var(--iconWidth);
height: var(--iconHeight);
margin: auto;
}
ia-icon-ellipses {
width: var(--iconWidth);
height: var(--iconHeight);
}
#menu {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 3;
overflow: hidden;
transform: translateX(-${e});
width: ${e};
transform: translateX(calc(${e} * -1));
transition: ${n};
}
#reader {
position: relative;
z-index: 1;
transform: translateX(0);
width: 100%;
display: flex;
}
#reader > * {
width: 100%;
display: flex;
flex: 1;
}
.open.overlay #reader {
transition: none;
}
.open #menu {
width: ${e};
transform: translateX(0);
transition: ${n};
}
.open.shift #reader {
width: calc(100% - ${e});
margin-left: ${e};
transition: ${n};
}
`}};o([(0,s.Cb)({type:Object,converter:e=>e&&"string"==typeof e?new L(JSON.parse(atob(e))):e})],Z.prototype,"item",void 0),o([(0,s.Cb)({type:Boolean,reflect:!0})],Z.prototype,"viewAvailable",void 0),o([(0,s.Cb)({type:String})],Z.prototype,"baseHost",void 0),o([(0,s.Cb)({type:Boolean})],Z.prototype,"signedIn",void 0),o([(0,s.Cb)({type:Array})],Z.prototype,"menuContents",void 0),o([(0,s.Cb)({type:Array})],Z.prototype,"menuShortcuts",void 0),o([(0,s.Cb)({type:Boolean,reflect:!0,attribute:!0})],Z.prototype,"viewportInFullscreen",void 0),o([(0,s.Cb)({type:Boolean,reflect:!0})],Z.prototype,"menuOpened",void 0),o([(0,s.Cb)({type:String,reflect:!0})],Z.prototype,"openMenu",void 0),o([(0,s.Cb)({attribute:!1})],Z.prototype,"modal",void 0),o([(0,s.Cb)({attribute:!1})],Z.prototype,"sharedObserver",void 0),o([(0,s.Cb)({type:Boolean,reflect:!0,attribute:!0})],Z.prototype,"loaded",void 0),o([(0,s.SB)()],Z.prototype,"openMenuState",void 0),o([(0,s.IO)("#frame")],Z.prototype,"frame",void 0),o([(0,s.IO)('slot[name="header"]')],Z.prototype,"headerSlot",void 0),o([(0,s.IO)('slot[name="main"]')],Z.prototype,"mainSlot",void 0),Z=o([(0,s.Mo)("iaux-item-navigator")],Z),n(9600),n(7327),n(7941),n(189),n(3123),n(4747);var W=n(4817),G=n(5756);function Y(e){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y(e)}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Y(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==Y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===Y(o)?o:String(o)),r)}var o}function Q(e,t){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Q(e,t)}function K(e,t){if(t&&("object"===Y(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ee(e){return ee=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ee(e)}var te=(0,G.XM)(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Q(e,t)}(a,e);var t,n,r,o,i=(r=a,o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=ee(r);if(o){var n=ee(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return K(this,e)});function a(e){var t,n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),t=i.call(this,e),e.type!==G.pX.ATTRIBUTE||"class"!==e.name||(null===(n=e.strings)||void 0===n?void 0:n.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");return K(t)}return t=a,n=[{key:"render",value:function(e){return" "+Object.keys(e).filter((function(t){return e[t]})).join(" ")+" "}},{key:"update",value:function(e,t){var n,r,o=this,i=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return X(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?X(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t,1)[0];if(void 0===this.it){for(var a in this.it=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((function(e){return""!==e})))),i)i[a]&&!(null===(n=this.nt)||void 0===n?void 0:n.has(a))&&this.it.add(a);return this.render(i)}var s=e.element.classList;for(var l in this.it.forEach((function(e){e in i||(s.remove(e),o.it.delete(e))})),i){var c=!!i[l];c===this.it.has(l)||(null===(r=this.nt)||void 0===r?void 0:r.has(l))||(c?(s.add(l),this.it.add(l)):(s.remove(l),this.it.delete(l)))}return W.Jb}}],n&&J(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),a}(G.Xe)),ne=n(9407),re=r.dy`
<svg viewBox="0 0 34 34" xmlns="http://www.w3.org/2000/svg" aria-labelledby="linkTitleID linkDescID">
<title id="linkTitleID">Link icon</title>
<desc id="linkDescID">Two chain links linked together</desc>
<path d="m7.80511706 12.3659763c1.2669254-2.2579539 4.09819784-2.9949938 6.41200864-1.7733458l.2295791.12871 1.6067188.9559859 3.5467013-6.31849361c1.2682451-2.26030597 4.104098-2.99652769 6.4192376-1.76952182l.2223501.12488594 3.2168204 1.91103915c2.2770002 1.3527136 3.1866331 4.21502324 2.0564431 6.51290984l-.1198433.2278304-5.2002499 9.2680474c-1.2669254 2.2579539-4.0981978 2.9949938-6.4120086 1.7733458l-.2295791-.12871-1.6096554-.9558482-3.5437647 6.3183559c-1.2682451 2.260306-4.104098 2.9965277-6.41923761 1.7695218l-.22235013-.1248859-3.21682032-1.9110392c-2.27700024-1.3527136-3.18663314-4.2150232-2.05644312-6.5129098l.11984332-.2278304zm13.93955474-5.73311741-3.563271 6.35055051c1.889633 1.4530595 2.5776248 4.0429866 1.5410255 6.156875l-.1223014.2328355-.4183304.7430134 1.6096554.9558483c1.1431442.6791157 2.5155496.3977368 3.1667361-.5628389l.0921501-.1491451 5.2002498-9.2680474c.5752467-1.0252226.2110342-2.4011579-.8559335-3.14755806l-.1742742-.11247814-3.2168203-1.91103915c-1.1402863-.67741793-2.5086889-.39913772-3.1618387.55564729zm-11.79500786 7.00714351-5.20024982 9.2680474c-.57524673 1.0252226-.21103426 2.4011579.85593348 3.1475581l.17427416.1124781 3.21682032 1.9110392c1.14028632.6774179 2.50868892.3991377 3.16183872-.5556473l.0970474-.1563368 3.5622708-6.3513198c-1.8888875-1.4532134-2.5764504-4.042623-1.5400057-6.1561456l.1222818-.2327956.4153938-.7428758-1.6067188-.9559859c-1.1431442-.6791157-2.5155496-.3977368-3.1667361.5628389zm6.97653866 1.5796652-.3817806.6812386c-.5117123.9119895-.2800268 2.1014993.528439 2.8785267l.382717-.6803391c.5119098-.9123415.2798478-2.1024176-.5293754-2.8794262z" class="fill-color" />
</svg>
`;class oe extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return re}}customElements.define("ia-icon-link",oe);var ie=r.dy`
<svg
viewBox="0 0 100 100"
xmlns="http://www.w3.org/2000/svg"
aria-labelledby="shareTitleID shareDescID"
>
<title id="shareTitleID">Share icon</title>
<desc id="shareDescID">A square with an arrow arcing out from the center of the square</desc>
<g class="fill-color">
<path d="M70.6784759,10 L70.6784759,21.3240186 C64.5020053,21.66334 58.9104278,22.5826126 53.9037433,24.0818363 C48.8970588,25.5810601 44.8495989,27.4085163 41.7613636,29.5642049 C38.6731283,31.7198935 35.9982175,34.0552229 33.736631,36.5701929 C31.4750446,39.085163 29.8217469,41.5657574 28.776738,44.011976 C27.7317291,46.4581947 26.9173351,48.6848525 26.3335561,50.6919494 C25.7497772,52.6990464 25.4088681,54.3324462 25.3108289,55.592149 L25.2372995,57.4085163 C29.0296346,54.1661122 33.1751337,51.5524507 37.6737968,49.5675316 C42.1724599,47.5826126 46.2934492,46.3118208 50.0367647,45.7551564 C53.7800802,45.1984919 57.2571301,44.8713684 60.4679144,44.7737858 C63.6786988,44.6762031 66.1831551,44.7726769 67.9812834,45.0632069 L70.6784759,45.499002 L70.6784759,57.4051896 L100,33.3765802 L70.6784759,10 Z M76.4438503,62.4883566 L82.8609626,57.1157685 C82.9099822,57.0669772 82.9946524,57.0303837 83.1149733,57.005988 C83.2352941,56.9815924 83.4536542,56.9571967 83.7700535,56.9328011 C84.0864528,56.9084054 84.3905971,56.9449989 84.6824866,57.0425815 C84.9743761,57.1401641 85.217246,57.2854291 85.4110963,57.4783766 C85.6049465,57.671324 85.7263815,57.8409847 85.7754011,57.9873586 L85.8489305,58.2035928 L85.8489305,90 L0,90 L0,17.910845 L43.1784759,17.910845 C43.2765152,17.9596363 43.410205,18.0317143 43.5795455,18.1270792 C43.7488859,18.222444 43.9438503,18.4519849 44.1644385,18.8157019 C44.3850267,19.1794189 44.469697,19.5542249 44.4184492,19.9401198 C44.4184492,20.2794411 44.3092692,20.582169 44.0909091,20.8483034 C43.872549,21.1144378 43.6664439,21.3206919 43.4725936,21.4670659 L43.1818182,21.6134398 C40.557041,23.06609 38.2954545,24.396762 36.3970588,25.6054558 L30.7820856,29.8170326 L11.5274064,29.8170326 L11.5274064,78.1669993 L74.1811497,78.1669993 L74.1811497,65.5355955 C74.1811497,65.1009093 74.3995098,64.6407186 74.8362299,64.1550233 L76.4438503,62.4883566 Z" id="Shape"></path>
</g>
</svg>
`;class ae extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return ie}}customElements.define("ia-icon-share",ae);var se=r.dy`
<svg viewBox="0 0 34 34" xmlns="http://www.w3.org/2000/svg" aria-labelledby="emailTitleID emailDescID">
<title id="emailTitleID">Email icon</title>
<desc id="emailDescID">An illustration of an envelope</desc>
<path d="m32 7.04156803v19.91686397c0 .5752421-.4763773 1.041568-1.0640184 1.041568h-27.87196316c-.58764116 0-1.06401844-.4663259-1.06401844-1.041568v-19.91686397c0-.57524214.47637728-1.04156803 1.06401844-1.04156803h27.87196316c.5876411 0 1.0640184.46632589 1.0640184 1.04156803zm-26.25039901 1.19676167 10.04327011 10.1323738c.5135662.4194048.8817166.6291071 1.1044511.6291071.1198794 0 .2695514-.0503424.4490158-.1510273.1794644-.100685.3291364-.2013699.4490158-.3020548l.1798191-.1510273 10.1198794-10.15841306zm16.77212271 9.7303286 6.8831353 6.7889404v-13.5778809zm-17.92871075-6.6379131v13.350819l6.78098955-6.6629107zm22.09008685 14.2059464-5.9074304-5.8588202-.9757049.9551179-.3594018.3295984c-.0342324.0304241-.0665646.0587822-.0969964.0850743l-.1597867.1329606c-.0684912.0540844-.1198794.0895749-.1541644.1064714-.6674943.3687151-1.3523675.5530727-2.0546196.5530727-.65047 0-1.3782586-.218035-2.1833659-.6541048l-.6682036-.4520405-1.0278418-1.0311524-5.95850326 5.832781z" class="fill-color" />
</svg>
`;class le extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return se}}customElements.define("ia-icon-email",le);class ce{constructor(e){this.promoCopy=" : Free Download, Borrow, and Streaming : Internet Archive",this.description=(null==e?void 0:e.description)||"",this.creator=(null==e?void 0:e.creator)||"",this.fileSubPrefix=(null==e?void 0:e.fileSubPrefix)||"",this.identifier=(null==e?void 0:e.identifier)||"",this.baseHost=(null==e?void 0:e.baseHost)||""}get encodedDescription(){return this.encodeString(this.description)}get encodedCreator(){return this.encodeString(this.creator)}get encodedPromoCopy(){return this.encodeString(this.promoCopy)}get itemPath(){const e=this.fileSubPrefix?encodeURIComponent(this.fileSubPrefix):"";return e?`${this.identifier}/${e}`:this.identifier}get url(){return`https://${this.baseHost}/details/${this.itemPath}`}encodeString(e){return e?encodeURIComponent(e.replace(/\s/g,"+")).replace(/%2B/g,"+"):""}}var ue=class extends ce{constructor(e){super(e),this.name="Email",this.icon=r.dy`<ia-icon-email></ia-icon-email>`,this.class="email"}get url(){return`mailto:?body=https://${this.baseHost}/details/${this.itemPath}&subject=${this.description} : ${this.creator}${this.promoCopy}`}},de=r.dy`
<svg viewBox="0 0 34 34" xmlns="http://www.w3.org/2000/svg" aria-labelledby="facebookTitleID facebookDescID">
<title id="facebookTitleID">Facebook icon</title>
<desc id="facebookDescID">A lowercase f</desc>
<path d="m30.91057 19.2442068.2670004-5.3339402h-5.7329237c-.0890001-3.4962895.25183-5.42243459 1.0224903-5.77843514.3560005-.17800028.8004955-.28925046 1.333485-.33375053s1.0442346-.0520853 1.5337353-.02275571c.4895008.02932959 1.045246.01466479 1.6672356-.04399439.0890001-1.59997977.1335002-3.24445961.1335002-4.93343953-2.1633102-.20732987-3.6742898-.28115953-4.5329389-.22148898-2.8146294.17800028-4.7847688 1.25965538-5.9104183 3.2449653-.1780003.3256596-.3261653.68873971-.444495 1.08924034-.1183298.40050062-.2144095.76358074-.2882391 1.08924034-.0738297.32565959-.125915.7848194-.1562559 1.37747942-.030341.59266002-.052591 1.04474028-.0667501 1.35624078-.0141592.3115005-.0217444.8449956-.0227558 1.6004854v1.5777298h-3.8229605v5.3339401h3.8669549v14.622824h5.8224296c0-.3560006-.0146648-1.6819003-.0439944-3.9776994-.0293296-2.295799-.0515796-4.2957737-.0667501-5.9999241s-.0075853-3.2525506.0227557-4.6452005h5.4219289z" class="fill-color" />
</svg>
`;class he extends r.oi{static get styles(){return r.iv`
:host {
width: var(--iconWidth, 'auto');
height: var(--iconHeight, 'auto');
}
.fill-color {
fill: var(--iconFillColor);
}
.stroke-color {
stroke: var(--iconStrokeColor);
}
`}render(){return de}}customElements.define("ia-icon-facebook",he);var fe=class extends ce{constructor(e){super(e),this.name="Facebook",this.icon=r.dy`<ia-icon-facebook></ia-icon-facebook>`,this.class="facebook"}get url(){return`https://www.facebook.com/sharer/sharer.php?u=https://${this.baseHost}/details/${this.itemPath}`}},pe=r.dy`
<svg viewBox="0 0 34 34" xmlns="http://www.w3.org/2000/svg" aria-labelledby="pinterestTitleID pinterestDescID">
<title id="pinterestTitleID">Pinterest icon</title>
<desc id="pinterestDescID">A stylized letter p</desc>
<path d="m11.9051049 30.5873434.653491-1.0742755.4207845-.839975c.2805229-.591861.5371377-1.2533214.7698443-1.9843813.2327065-.7310599.4659444-1.6029125.6997135-2.6155579.2337692-1.0126455.4128151-1.752206.5371377-2.2186817.0308151.030815.0775689.0855382.1402615.1641697.0626927.0786314.1094465.1333547.1402615.1641697.1243227.1870153.2178304.311338.280523.372968 1.1210293.964829 2.3817888 1.4631823 3.7822785 1.4950599 1.4939973 0 2.8790795-.3426843 4.1552465-1.0280529 2.1166733-1.1826593 3.6733633-3.1128487 4.6700699-5.7905679.4048457-1.1518444.6848374-2.5996192.8399751-4.3433245.1243226-1.587505-.0781002-3.0974411-.6072685-4.5298084-.903199-2.36638128-2.5528653-4.20306294-4.948999-5.51004497-1.276167-.65349101-2.5990879-1.05833667-3.9687625-1.21453696-1.525875-.21783034-3.1293188-.17107651-4.8103315.14026149-2.7701643.52916833-5.02709913 1.743174-6.77080442 3.64201699-1.99235065 2.14748836-2.98852598 4.62225355-2.98852598 7.42429545 0 2.9571797.9494215 5.0584455 2.84826449 6.3037975l.83997504.4207845c.12432268 0 .22526845.0154075.3028373.0462225s.1551377.0074381.23270656-.0701308c.07756885-.0775688.13229208-.1243226.16416969-.1402614s.07066204-.0860696.11635328-.2103923c.04569124-.1243226.07703756-.2098609.09403895-.2566147.01700139-.0467539.04834771-.1476996.09403895-.3028373s.06906816-.2486454.07013074-.280523l.14026149-.5132295c.06269263-.311338.09403895-.5291684.09403895-.653491-.03081502-.1243227-.12432268-.2799917-.28052297-.467007-.15620029-.1870154-.23376915-.2959305-.23270656-.3267455-.62267599-.8096914-.9494215-1.7904592-.98023652-2.9423035-.03081502-1.55669.28052297-2.9731185.93401399-4.24928547 1.18265932-2.45882635 3.17501002-3.93741618 5.97705192-4.43576949 1.6183201-.311338 3.1356943-.25661476 4.5521228.16416969 1.4164285.42078446 2.5135496 1.09765239 3.2913633 2.03060379.8405063 1.02752164 1.3229208 2.28828114 1.4472435 3.78227848.1243227 1.4004897-.0313463 2.9725872-.467007 4.7162925-.3740306 1.3696746-.9186065 2.5528653-1.6337275 3.5495719-.9967066 1.245352-2.0863896 1.8834355-3.269049 1.9142505-1.7118277.0626926-2.7547568-.6375522-3.12878