@internetarchive/ia-item-navigator 2.1.1-alpha3 → 2.1.2
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/demo/app-root.ts +2 -2
- package/dist/demo/app-root.js +2 -2
- package/dist/demo/app-root.js.map +1 -1
- package/dist/src/iaux-item-navigator.js.map +1 -1
- package/dist/src/loader.d.ts +4 -4
- package/dist/src/menu-slider/ia-menu-slider.d.ts +4 -4
- package/dist/src/menu-slider/ia-menu-slider.js.map +1 -1
- package/dist/src/menu-slider/menu-button.d.ts +4 -4
- package/dist/src/menus/share-panel.d.ts +14 -7
- package/dist/src/menus/share-panel.js +113 -89
- package/dist/src/menus/share-panel.js.map +1 -1
- package/dist/src/menus/viewable-files.js +5 -1
- package/dist/src/menus/viewable-files.js.map +1 -1
- package/dist/src/no-theater-available.js.map +1 -1
- package/dist/test/iaux-sharing-options.test.js +5 -13
- package/dist/test/iaux-sharing-options.test.js.map +1 -1
- package/package.json +1 -1
- package/src/menus/share-panel.ts +126 -99
- package/src/menus/viewable-files.ts +5 -1
- package/test/iaux-sharing-options.test.ts +4 -21
- package/dist/src/menus/share-providers/email.d.ts +0 -11
- package/dist/src/menus/share-providers/email.js +0 -15
- package/dist/src/menus/share-providers/email.js.map +0 -1
- package/dist/src/menus/share-providers/facebook.d.ts +0 -11
- package/dist/src/menus/share-providers/facebook.js +0 -15
- package/dist/src/menus/share-providers/facebook.js.map +0 -1
- package/dist/src/menus/share-providers/pinterest.d.ts +0 -11
- package/dist/src/menus/share-providers/pinterest.js +0 -15
- package/dist/src/menus/share-providers/pinterest.js.map +0 -1
- package/dist/src/menus/share-providers/provider.d.ts +0 -20
- package/dist/src/menus/share-providers/provider.js +0 -37
- package/dist/src/menus/share-providers/provider.js.map +0 -1
- package/dist/src/menus/share-providers/share-provider-interface.d.ts +0 -13
- package/dist/src/menus/share-providers/share-provider-interface.js +0 -2
- package/dist/src/menus/share-providers/share-provider-interface.js.map +0 -1
- package/dist/src/menus/share-providers/tumblr.d.ts +0 -11
- package/dist/src/menus/share-providers/tumblr.js +0 -15
- package/dist/src/menus/share-providers/tumblr.js.map +0 -1
- package/dist/src/menus/share-providers/twitter.d.ts +0 -11
- package/dist/src/menus/share-providers/twitter.js +0 -15
- package/dist/src/menus/share-providers/twitter.js.map +0 -1
- package/src/menus/share-providers/email.ts +0 -23
- package/src/menus/share-providers/facebook.ts +0 -23
- package/src/menus/share-providers/pinterest.ts +0 -23
- package/src/menus/share-providers/provider.ts +0 -63
- package/src/menus/share-providers/share-provider-interface.ts +0 -17
- package/src/menus/share-providers/tumblr.ts +0 -23
- package/src/menus/share-providers/twitter.ts +0 -23
- package/test/ia-sharing-options.test.js +0 -78
package/src/menus/share-panel.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
/* eslint-disable lit-a11y/click-events-have-key-events */
|
2
2
|
/* eslint-disable lit-a11y/list */
|
3
|
-
import { classMap } from 'lit/directives/class-map.js';
|
4
|
-
import { ifDefined } from 'lit/directives/if-defined.js';
|
5
3
|
import {
|
6
4
|
css,
|
7
5
|
CSSResult,
|
@@ -12,19 +10,22 @@ import {
|
|
12
10
|
TemplateResult,
|
13
11
|
} from 'lit';
|
14
12
|
import { customElement, property } from 'lit/decorators.js';
|
15
|
-
import '@internetarchive/icon-link/icon-link';
|
16
13
|
import '@internetarchive/icon-share/icon-share';
|
14
|
+
import '@internetarchive/icon-twitter/icon-twitter';
|
15
|
+
import '@internetarchive/icon-facebook/icon-facebook';
|
16
|
+
import '@internetarchive/icon-tumblr/icon-tumblr';
|
17
|
+
import '@internetarchive/icon-pinterest/icon-pinterest';
|
18
|
+
import '@internetarchive/icon-email/icon-email';
|
19
|
+
import '@internetarchive/icon-link/icon-link';
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
import { ProviderParams } from './share-providers/share-provider-interface';
|
24
|
-
import type Provider from './share-providers/provider';
|
21
|
+
type ShareOption = {
|
22
|
+
name: string;
|
23
|
+
icon: TemplateResult | string;
|
24
|
+
url: string;
|
25
|
+
};
|
25
26
|
|
26
|
-
const copyToClipboard = (
|
27
|
-
const currentTarget =
|
27
|
+
const copyToClipboard = (event: MouseEvent) => {
|
28
|
+
const currentTarget = event.currentTarget as HTMLElement;
|
28
29
|
const textarea = currentTarget.querySelector('textarea');
|
29
30
|
const note = currentTarget.querySelector('small') as any;
|
30
31
|
textarea!.select();
|
@@ -51,7 +52,7 @@ export class IauxSharingOptions extends LitElement {
|
|
51
52
|
|
52
53
|
@property({ type: String }) identifier = '';
|
53
54
|
|
54
|
-
@property({ type: Array }) sharingOptions:
|
55
|
+
@property({ type: Array }) sharingOptions: ShareOption[] = [];
|
55
56
|
|
56
57
|
@property({ type: String }) type = '';
|
57
58
|
|
@@ -66,55 +67,74 @@ export class IauxSharingOptions extends LitElement {
|
|
66
67
|
}
|
67
68
|
|
68
69
|
loadProviders() {
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
description,
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
70
|
+
let shareUrl = `https://${this.baseHost}/details/${this.identifier}`;
|
71
|
+
if (this.fileSubPrefix) {
|
72
|
+
shareUrl += `/${this.fileSubPrefix}`;
|
73
|
+
}
|
74
|
+
const shareBlurb = [
|
75
|
+
this.description,
|
76
|
+
this.creator,
|
77
|
+
'Free Download, Borrow, and Streaming',
|
78
|
+
'Internet Archive',
|
79
|
+
]
|
80
|
+
.filter(Boolean)
|
81
|
+
.join(' : ');
|
79
82
|
|
80
83
|
this.sharingOptions = [
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
84
|
+
{
|
85
|
+
name: 'Twitter',
|
86
|
+
icon: html`<ia-icon-twitter></ia-icon-twitter>`,
|
87
|
+
url: `https://twitter.com/intent/tweet?${new URLSearchParams({
|
88
|
+
url: shareUrl,
|
89
|
+
text: shareBlurb,
|
90
|
+
via: 'internetarchive',
|
91
|
+
})}`,
|
92
|
+
},
|
93
|
+
{
|
94
|
+
name: 'Facebook',
|
95
|
+
icon: html`<ia-icon-facebook></ia-icon-facebook>`,
|
96
|
+
url: `https://www.facebook.com/sharer/sharer.php?${new URLSearchParams({
|
97
|
+
u: shareUrl,
|
98
|
+
})}`,
|
99
|
+
},
|
100
|
+
{
|
101
|
+
name: 'Tumblr',
|
102
|
+
icon: html`<ia-icon-tumblr></ia-icon-tumblr>`,
|
103
|
+
url: `https://www.tumblr.com/widgets/share/tool/preview?${new URLSearchParams(
|
104
|
+
{
|
105
|
+
posttype: 'link',
|
106
|
+
canonicalUrl: shareUrl,
|
107
|
+
title: shareBlurb,
|
108
|
+
},
|
109
|
+
)}`,
|
110
|
+
},
|
111
|
+
{
|
112
|
+
name: 'Pinterest',
|
113
|
+
icon: html`<ia-icon-pinterest></ia-icon-pinterest>`,
|
114
|
+
url: `http://www.pinterest.com/pin/create/button/?${new URLSearchParams(
|
115
|
+
{
|
116
|
+
url: shareUrl,
|
117
|
+
description: shareBlurb,
|
118
|
+
},
|
119
|
+
)}`,
|
120
|
+
},
|
121
|
+
{
|
122
|
+
name: 'Email',
|
123
|
+
icon: html`<ia-icon-email></ia-icon-email>`,
|
124
|
+
url: `mailto:?${new URLSearchParams({
|
125
|
+
subject: shareBlurb,
|
126
|
+
body: shareUrl,
|
127
|
+
})}`,
|
128
|
+
},
|
86
129
|
];
|
87
130
|
}
|
88
131
|
|
89
|
-
get sharingItems() {
|
90
|
-
return this.sharingOptions.map(
|
91
|
-
option =>
|
92
|
-
html`<li>
|
93
|
-
<a
|
94
|
-
class="${ifDefined(option.class)}"
|
95
|
-
href="${option.url}"
|
96
|
-
target="_blank"
|
97
|
-
>
|
98
|
-
${option.icon} ${option.name}
|
99
|
-
</a>
|
100
|
-
</li>`,
|
101
|
-
);
|
102
|
-
}
|
103
|
-
|
104
|
-
get embedOption() {
|
105
|
-
return html`<li>
|
106
|
-
<a href="#" @click=${this.toggleEmbedOptions}>
|
107
|
-
<ia-icon-link></ia-icon-link>
|
108
|
-
Get an embeddable link
|
109
|
-
</a>
|
110
|
-
</li>`;
|
111
|
-
}
|
112
|
-
|
113
132
|
get iframeEmbed() {
|
114
|
-
return
|
115
|
-
|
116
|
-
|
117
|
-
|
133
|
+
return `<iframe
|
134
|
+
src="https://${this.baseHost}/embed/${this.identifier}"
|
135
|
+
width="560" height="384" frameborder="0"
|
136
|
+
webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen
|
137
|
+
></iframe>`;
|
118
138
|
}
|
119
139
|
|
120
140
|
get bbcodeEmbed() {
|
@@ -125,11 +145,6 @@ export class IauxSharingOptions extends LitElement {
|
|
125
145
|
return `https://${this.baseHost}/help/audio.php?identifier=${this.identifier}`;
|
126
146
|
}
|
127
147
|
|
128
|
-
toggleEmbedOptions(e: Event) {
|
129
|
-
e.preventDefault();
|
130
|
-
this.embedOptionsVisible = !this.embedOptionsVisible;
|
131
|
-
}
|
132
|
-
|
133
148
|
get header() {
|
134
149
|
const header = html`<header><h3>Share this ${this.type}</h3></header>`;
|
135
150
|
return this.renderHeader ? header : nothing;
|
@@ -138,32 +153,41 @@ export class IauxSharingOptions extends LitElement {
|
|
138
153
|
render() {
|
139
154
|
return html`
|
140
155
|
${this.header}
|
141
|
-
<
|
142
|
-
${this.
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
156
|
+
<main>
|
157
|
+
${this.sharingOptions.map(
|
158
|
+
option =>
|
159
|
+
html` <a class="share-option" href="${option.url}" target="_blank">
|
160
|
+
${option.icon} ${option.name}
|
161
|
+
</a>`,
|
162
|
+
)}
|
163
|
+
<details>
|
164
|
+
<summary class="share-option">
|
165
|
+
<ia-icon-link></ia-icon-link>
|
166
|
+
Get an embeddable link
|
167
|
+
</summary>
|
168
|
+
<div class="embed">
|
169
|
+
<h4>Embed</h4>
|
170
|
+
<div class="code" @click=${copyToClipboard}>
|
171
|
+
<textarea readonly>${this.iframeEmbed}</textarea>
|
172
|
+
<small>Copied to clipboard</small>
|
173
|
+
</div>
|
174
|
+
<h4>
|
175
|
+
Embed for wordpress.com hosted blogs and archive.org item
|
176
|
+
<description> tags
|
177
|
+
</h4>
|
178
|
+
<div class="code" @click=${copyToClipboard}>
|
179
|
+
<textarea readonly>${this.bbcodeEmbed}</textarea>
|
180
|
+
<small>Copied to clipboard</small>
|
181
|
+
</div>
|
182
|
+
<p>
|
183
|
+
Want more?
|
184
|
+
<a href=${this.helpURL}
|
185
|
+
>Advanced embedding details, examples, and help</a
|
186
|
+
>!
|
187
|
+
</p>
|
158
188
|
</div>
|
159
|
-
|
160
|
-
|
161
|
-
<a href=${this.helpURL}
|
162
|
-
>Advanced embedding details, examples, and help</a
|
163
|
-
>!
|
164
|
-
</p>
|
165
|
-
</div>
|
166
|
-
</ul>
|
189
|
+
</details>
|
190
|
+
</main>
|
167
191
|
`;
|
168
192
|
}
|
169
193
|
|
@@ -198,22 +222,20 @@ export class IauxSharingOptions extends LitElement {
|
|
198
222
|
font-size: 1.4rem;
|
199
223
|
}
|
200
224
|
|
201
|
-
|
202
|
-
padding:
|
203
|
-
list-style: none;
|
225
|
+
main {
|
226
|
+
padding: 1rem 0;
|
204
227
|
}
|
205
228
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
li a {
|
229
|
+
.share-option {
|
230
|
+
display: block;
|
231
|
+
padding: 0.5rem 0;
|
211
232
|
font-size: 1.6rem;
|
212
233
|
text-decoration: none;
|
213
234
|
color: var(--shareLinkColor);
|
235
|
+
cursor: pointer;
|
214
236
|
}
|
215
237
|
|
216
|
-
|
238
|
+
.share-option > * {
|
217
239
|
display: inline-block;
|
218
240
|
padding: 0.2rem;
|
219
241
|
margin-right: 1rem;
|
@@ -223,12 +245,17 @@ export class IauxSharingOptions extends LitElement {
|
|
223
245
|
background: var(--shareIconBg);
|
224
246
|
}
|
225
247
|
|
226
|
-
|
248
|
+
/* Hide the triangle that appears on details tags */
|
249
|
+
summary::marker {
|
250
|
+
content: '';
|
251
|
+
}
|
252
|
+
|
253
|
+
summary::-webkit-details-marker {
|
227
254
|
display: none;
|
228
255
|
}
|
229
|
-
|
230
|
-
|
231
|
-
|
256
|
+
|
257
|
+
.embed {
|
258
|
+
padding-right: 5px;
|
232
259
|
}
|
233
260
|
|
234
261
|
.embed a {
|
@@ -230,7 +230,11 @@ export class IauxViewableFiles extends LitElement {
|
|
230
230
|
activeFile?.scrollIntoViewIfNeeded(true);
|
231
231
|
} else {
|
232
232
|
// `scrollIntoView` always auto-scroll to center of visible area
|
233
|
-
activeFile?.scrollIntoView({
|
233
|
+
activeFile?.scrollIntoView({
|
234
|
+
behavior: 'smooth',
|
235
|
+
block: 'nearest',
|
236
|
+
inline: 'nearest',
|
237
|
+
});
|
234
238
|
}
|
235
239
|
}, 350);
|
236
240
|
}
|
@@ -38,23 +38,13 @@ describe('<iaux-in-share-panel>', () => {
|
|
38
38
|
|
39
39
|
await el.updateComplete;
|
40
40
|
|
41
|
-
el.sharingOptions.forEach(option => {
|
42
|
-
const button =
|
43
|
-
el.shadowRoot && el.shadowRoot.querySelector(`a.${option.class}`);
|
41
|
+
el.sharingOptions.forEach((option, i) => {
|
42
|
+
const button = el.shadowRoot?.querySelectorAll('a')[i];
|
44
43
|
expect(button).to.exist;
|
45
44
|
expect(button?.getAttribute('href')).to.equal(option.url);
|
46
45
|
});
|
47
46
|
});
|
48
47
|
|
49
|
-
it('toggles visibility of embed options', async () => {
|
50
|
-
const el = (await fixture(container())) as IauxSharingOptions;
|
51
|
-
|
52
|
-
el.toggleEmbedOptions(new Event('click'));
|
53
|
-
await el.updateComplete;
|
54
|
-
|
55
|
-
expect(el.embedOptionsVisible).to.equal(true);
|
56
|
-
});
|
57
|
-
|
58
48
|
it('does not show internal header by default', async () => {
|
59
49
|
const el = (await fixture(container())) as IauxSharingOptions;
|
60
50
|
expect(el.shadowRoot?.querySelector('header')).to.be.null;
|
@@ -68,17 +58,10 @@ describe('<iaux-in-share-panel>', () => {
|
|
68
58
|
});
|
69
59
|
|
70
60
|
it('sets file subprefix to end of share URLs if present', async () => {
|
71
|
-
const
|
72
|
-
const el = (await fixture(
|
73
|
-
container(optionalFileSubprefix),
|
74
|
-
)) as IauxSharingOptions;
|
61
|
+
const el = (await fixture(container('foo 123'))) as IauxSharingOptions;
|
75
62
|
|
76
63
|
el.sharingOptions.forEach(option => {
|
77
|
-
|
78
|
-
expect(option.url).to.contain(
|
79
|
-
encodeURIComponent(optionalFileSubprefix),
|
80
|
-
);
|
81
|
-
}
|
64
|
+
expect(option.url).to.contain('foo+123');
|
82
65
|
});
|
83
66
|
});
|
84
67
|
});
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-email/icon-email';
|
2
|
-
import { TemplateResult } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import type { ProviderParams } from './share-provider-interface';
|
5
|
-
export default class extends Provider {
|
6
|
-
name: string;
|
7
|
-
icon: TemplateResult;
|
8
|
-
class: string;
|
9
|
-
constructor(params: ProviderParams);
|
10
|
-
get url(): string;
|
11
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-email/icon-email';
|
2
|
-
import { html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
export default class extends Provider {
|
5
|
-
constructor(params) {
|
6
|
-
super(params);
|
7
|
-
this.name = 'Email';
|
8
|
-
this.icon = html `<ia-icon-email></ia-icon-email>`;
|
9
|
-
this.class = 'email';
|
10
|
-
}
|
11
|
-
get url() {
|
12
|
-
return `mailto:?body=https://${this.baseHost}/details/${this.itemPath}&subject=${this.description} : ${this.creator}${this.promoCopy}`;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=email.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/email.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAwC,CAAC;AAChD,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,CAAC,OAAO,MAAO,SAAQ,QAAQ;IAOnC,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,iCAAiC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,IAAa,GAAG;QACd,OAAO,wBAAwB,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACzI,CAAC;CACF","sourcesContent":["import '@internetarchive/icon-email/icon-email';\nimport { TemplateResult, html } from 'lit';\nimport Provider from './provider';\nimport type { ProviderParams } from './share-provider-interface';\n\nexport default class extends Provider {\n name: string;\n\n icon: TemplateResult;\n\n class: string;\n\n constructor(params: ProviderParams) {\n super(params);\n this.name = 'Email';\n this.icon = html`<ia-icon-email></ia-icon-email>`;\n this.class = 'email';\n }\n\n override get url(): string {\n return `mailto:?body=https://${this.baseHost}/details/${this.itemPath}&subject=${this.description} : ${this.creator}${this.promoCopy}`;\n }\n}\n"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-facebook/icon-facebook';
|
2
|
-
import { TemplateResult } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import type { ProviderParams } from './share-provider-interface';
|
5
|
-
export default class extends Provider {
|
6
|
-
name: string;
|
7
|
-
icon: TemplateResult;
|
8
|
-
class: string;
|
9
|
-
constructor(params: ProviderParams);
|
10
|
-
get url(): string;
|
11
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-facebook/icon-facebook';
|
2
|
-
import { html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
export default class extends Provider {
|
5
|
-
constructor(params) {
|
6
|
-
super(params);
|
7
|
-
this.name = 'Facebook';
|
8
|
-
this.icon = html `<ia-icon-facebook></ia-icon-facebook>`;
|
9
|
-
this.class = 'facebook';
|
10
|
-
}
|
11
|
-
get url() {
|
12
|
-
return `https://www.facebook.com/sharer/sharer.php?u=https://${this.baseHost}/details/${this.itemPath}`;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=facebook.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"facebook.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/facebook.ts"],"names":[],"mappings":"AAAA,OAAO,8CAA8C,CAAC;AACtD,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,CAAC,OAAO,MAAO,SAAQ,QAAQ;IAOnC,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,uCAAuC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,IAAa,GAAG;QACd,OAAO,wDAAwD,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1G,CAAC;CACF","sourcesContent":["import '@internetarchive/icon-facebook/icon-facebook';\nimport { TemplateResult, html } from 'lit';\nimport Provider from './provider';\nimport type { ProviderParams } from './share-provider-interface';\n\nexport default class extends Provider {\n name: string;\n\n icon: TemplateResult;\n\n class: string;\n\n constructor(params: ProviderParams) {\n super(params);\n this.name = 'Facebook';\n this.icon = html`<ia-icon-facebook></ia-icon-facebook>`;\n this.class = 'facebook';\n }\n\n override get url(): string {\n return `https://www.facebook.com/sharer/sharer.php?u=https://${this.baseHost}/details/${this.itemPath}`;\n }\n}\n"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-pinterest/icon-pinterest';
|
2
|
-
import { TemplateResult } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { ProviderParams } from './share-provider-interface';
|
5
|
-
export default class extends Provider {
|
6
|
-
name: string;
|
7
|
-
icon: TemplateResult;
|
8
|
-
class: string;
|
9
|
-
constructor(params: ProviderParams);
|
10
|
-
get url(): string;
|
11
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-pinterest/icon-pinterest';
|
2
|
-
import { html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
export default class extends Provider {
|
5
|
-
constructor(params) {
|
6
|
-
super(params);
|
7
|
-
this.name = 'Pinterest';
|
8
|
-
this.icon = html `<ia-icon-pinterest></ia-icon-pinterest>`;
|
9
|
-
this.class = 'pinterest';
|
10
|
-
}
|
11
|
-
get url() {
|
12
|
-
return `http://www.pinterest.com/pin/create/button/?url=https://${this.baseHost}/details/${this.itemPath}&description=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=pinterest.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"pinterest.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/pinterest.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAgD,CAAC;AACxD,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,CAAC,OAAO,MAAO,SAAQ,QAAQ;IAOnC,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,yCAAyC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;IAC3B,CAAC;IAED,IAAa,GAAG;QACd,OAAO,2DAA2D,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,gBAAgB,IAAI,CAAC,kBAAkB,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACvM,CAAC;CACF","sourcesContent":["import '@internetarchive/icon-pinterest/icon-pinterest';\nimport { TemplateResult, html } from 'lit';\nimport Provider from './provider';\nimport { ProviderParams } from './share-provider-interface';\n\nexport default class extends Provider {\n name: string;\n\n icon: TemplateResult;\n\n class: string;\n\n constructor(params: ProviderParams) {\n super(params);\n this.name = 'Pinterest';\n this.icon = html`<ia-icon-pinterest></ia-icon-pinterest>`;\n this.class = 'pinterest';\n }\n\n override get url(): string {\n return `http://www.pinterest.com/pin/create/button/?url=https://${this.baseHost}/details/${this.itemPath}&description=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;\n }\n}\n"]}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { TemplateResult } from 'lit';
|
2
|
-
import { ProviderParams } from './share-provider-interface';
|
3
|
-
export default class Provider {
|
4
|
-
promoCopy: string;
|
5
|
-
description: string;
|
6
|
-
creator: string;
|
7
|
-
fileSubPrefix: string;
|
8
|
-
identifier: string;
|
9
|
-
baseHost: string;
|
10
|
-
name: string | undefined;
|
11
|
-
icon: TemplateResult | string | undefined;
|
12
|
-
class: string | undefined;
|
13
|
-
constructor(params: ProviderParams);
|
14
|
-
get encodedDescription(): string;
|
15
|
-
get encodedCreator(): string;
|
16
|
-
get encodedPromoCopy(): string;
|
17
|
-
get itemPath(): string;
|
18
|
-
get url(): string;
|
19
|
-
encodeString(str: string): string;
|
20
|
-
}
|
@@ -1,37 +0,0 @@
|
|
1
|
-
export default class Provider {
|
2
|
-
constructor(params) {
|
3
|
-
this.promoCopy =
|
4
|
-
' : Free Download, Borrow, and Streaming : Internet Archive';
|
5
|
-
this.description = (params === null || params === void 0 ? void 0 : params.description) || '';
|
6
|
-
this.creator = (params === null || params === void 0 ? void 0 : params.creator) || '';
|
7
|
-
this.fileSubPrefix = (params === null || params === void 0 ? void 0 : params.fileSubPrefix) || '';
|
8
|
-
this.identifier = (params === null || params === void 0 ? void 0 : params.identifier) || '';
|
9
|
-
this.baseHost = (params === null || params === void 0 ? void 0 : params.baseHost) || '';
|
10
|
-
}
|
11
|
-
get encodedDescription() {
|
12
|
-
return this.encodeString(this.description);
|
13
|
-
}
|
14
|
-
get encodedCreator() {
|
15
|
-
return this.encodeString(this.creator);
|
16
|
-
}
|
17
|
-
get encodedPromoCopy() {
|
18
|
-
return this.encodeString(this.promoCopy);
|
19
|
-
}
|
20
|
-
get itemPath() {
|
21
|
-
const encodedFileSubPrefix = this.fileSubPrefix
|
22
|
-
? encodeURIComponent(this.fileSubPrefix)
|
23
|
-
: '';
|
24
|
-
return encodedFileSubPrefix
|
25
|
-
? `${this.identifier}/${encodedFileSubPrefix}`
|
26
|
-
: this.identifier;
|
27
|
-
}
|
28
|
-
get url() {
|
29
|
-
return `https://${this.baseHost}/details/${this.itemPath}`;
|
30
|
-
}
|
31
|
-
encodeString(str) {
|
32
|
-
if (!str)
|
33
|
-
return '';
|
34
|
-
return encodeURIComponent(str.replace(/\s/g, '+')).replace(/%2B/g, '+');
|
35
|
-
}
|
36
|
-
}
|
37
|
-
//# sourceMappingURL=provider.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/provider.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAmB3B,YAAY,MAAsB;QAChC,IAAI,CAAC,SAAS;YACZ,4DAA4D,CAAC;QAE/D,IAAI,CAAC,WAAW,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,KAAI,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,KAAI,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,KAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ;QACV,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa;YAC7C,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,oBAAoB;YACzB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,oBAAoB,EAAE;YAC9C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,WAAW,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;CACF","sourcesContent":["import { TemplateResult } from 'lit';\nimport { ProviderParams } from './share-provider-interface';\n\nexport default class Provider {\n promoCopy: string;\n\n description: string;\n\n creator: string;\n\n fileSubPrefix: string;\n\n identifier: string;\n\n baseHost: string;\n\n name: string | undefined;\n\n icon: TemplateResult | string | undefined;\n\n class: string | undefined;\n\n constructor(params: ProviderParams) {\n this.promoCopy =\n ' : Free Download, Borrow, and Streaming : Internet Archive';\n\n this.description = params?.description || '';\n this.creator = params?.creator || '';\n this.fileSubPrefix = params?.fileSubPrefix || '';\n this.identifier = params?.identifier || '';\n this.baseHost = params?.baseHost || '';\n }\n\n get encodedDescription(): string {\n return this.encodeString(this.description);\n }\n\n get encodedCreator(): string {\n return this.encodeString(this.creator);\n }\n\n get encodedPromoCopy(): string {\n return this.encodeString(this.promoCopy);\n }\n\n get itemPath(): string {\n const encodedFileSubPrefix = this.fileSubPrefix\n ? encodeURIComponent(this.fileSubPrefix)\n : '';\n return encodedFileSubPrefix\n ? `${this.identifier}/${encodedFileSubPrefix}`\n : this.identifier;\n }\n\n get url(): string {\n return `https://${this.baseHost}/details/${this.itemPath}`;\n }\n\n encodeString(str: string): string {\n if (!str) return '';\n return encodeURIComponent(str.replace(/\\s/g, '+')).replace(/%2B/g, '+');\n }\n}\n"]}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { TemplateResult } from 'lit';
|
2
|
-
export type ProviderParams = {
|
3
|
-
class: string;
|
4
|
-
icon: TemplateResult | string;
|
5
|
-
name: string;
|
6
|
-
promoCopy: string;
|
7
|
-
description: string;
|
8
|
-
creator: string;
|
9
|
-
fileSubPrefix: string;
|
10
|
-
identifier: string;
|
11
|
-
baseHost: string;
|
12
|
-
itemPath: string;
|
13
|
-
};
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"share-provider-interface.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/share-provider-interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateResult } from 'lit';\n\nexport type ProviderParams = {\n class: string;\n icon: TemplateResult | string;\n name: string;\n\n promoCopy: string;\n description: string;\n creator: string;\n\n // ia item\n fileSubPrefix: string;\n identifier: string;\n baseHost: string;\n itemPath: string;\n};\n"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-tumblr/icon-tumblr';
|
2
|
-
import { TemplateResult } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { ProviderParams } from './share-provider-interface';
|
5
|
-
export default class extends Provider {
|
6
|
-
name: string;
|
7
|
-
icon: TemplateResult;
|
8
|
-
class: string;
|
9
|
-
constructor(params: ProviderParams);
|
10
|
-
get url(): string;
|
11
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-tumblr/icon-tumblr';
|
2
|
-
import { html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
export default class extends Provider {
|
5
|
-
constructor(params) {
|
6
|
-
super(params);
|
7
|
-
this.name = 'Tumblr';
|
8
|
-
this.icon = html `<ia-icon-tumblr></ia-icon-tumblr>`;
|
9
|
-
this.class = 'tumblr';
|
10
|
-
}
|
11
|
-
get url() {
|
12
|
-
return `https://www.tumblr.com/share/video?embed=%3Ciframe+width%3D%22640%22+height%3D%22480%22+frameborder%3D%220%22+allowfullscreen+src%3D%22https%3A%2F%2F${this.baseHost}%2Fembed%2F%22+webkitallowfullscreen%3D%22true%22+mozallowfullscreen%3D%22true%22%26gt%3B%26lt%3B%2Fiframe%3E&name=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=tumblr.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"tumblr.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/tumblr.ts"],"names":[],"mappings":"AAAA,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,CAAC,OAAO,MAAO,SAAQ,QAAQ;IAOnC,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,mCAAmC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED,IAAa,GAAG;QACd,OAAO,wJAAwJ,IAAI,CAAC,QAAQ,sHAAsH,IAAI,CAAC,kBAAkB,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjX,CAAC;CACF","sourcesContent":["import '@internetarchive/icon-tumblr/icon-tumblr';\nimport { TemplateResult, html } from 'lit';\nimport Provider from './provider';\nimport { ProviderParams } from './share-provider-interface';\n\nexport default class extends Provider {\n name: string;\n\n icon: TemplateResult;\n\n class: string;\n\n constructor(params: ProviderParams) {\n super(params);\n this.name = 'Tumblr';\n this.icon = html`<ia-icon-tumblr></ia-icon-tumblr>`;\n this.class = 'tumblr';\n }\n\n override get url(): string {\n return `https://www.tumblr.com/share/video?embed=%3Ciframe+width%3D%22640%22+height%3D%22480%22+frameborder%3D%220%22+allowfullscreen+src%3D%22https%3A%2F%2F${this.baseHost}%2Fembed%2F%22+webkitallowfullscreen%3D%22true%22+mozallowfullscreen%3D%22true%22%26gt%3B%26lt%3B%2Fiframe%3E&name=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;\n }\n}\n"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-twitter/icon-twitter';
|
2
|
-
import { TemplateResult } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { ProviderParams } from './share-provider-interface';
|
5
|
-
export default class TwitterProvider extends Provider {
|
6
|
-
name: string;
|
7
|
-
icon: TemplateResult;
|
8
|
-
class: string;
|
9
|
-
constructor(params: ProviderParams);
|
10
|
-
get url(): string;
|
11
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-twitter/icon-twitter';
|
2
|
-
import { html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
export default class TwitterProvider extends Provider {
|
5
|
-
constructor(params) {
|
6
|
-
super(params);
|
7
|
-
this.name = 'Twitter';
|
8
|
-
this.icon = html `<ia-icon-twitter></ia-icon-twitter>`;
|
9
|
-
this.class = 'twitter';
|
10
|
-
}
|
11
|
-
get url() {
|
12
|
-
return `https://twitter.com/intent/tweet?url=https://${this.baseHost}/details/${this.itemPath}&via=internetarchive&text=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
//# sourceMappingURL=twitter.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"twitter.js","sourceRoot":"","sources":["../../../../src/menus/share-providers/twitter.ts"],"names":[],"mappings":"AAAA,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ;IAOnD,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA,qCAAqC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,IAAa,GAAG;QACd,OAAO,gDAAgD,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,6BAA6B,IAAI,CAAC,kBAAkB,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzM,CAAC;CACF","sourcesContent":["import '@internetarchive/icon-twitter/icon-twitter';\nimport { TemplateResult, html } from 'lit';\nimport Provider from './provider';\nimport { ProviderParams } from './share-provider-interface';\n\nexport default class TwitterProvider extends Provider {\n name: string;\n\n icon: TemplateResult;\n\n class: string;\n\n constructor(params: ProviderParams) {\n super(params);\n this.name = 'Twitter';\n this.icon = html`<ia-icon-twitter></ia-icon-twitter>`;\n this.class = 'twitter';\n }\n\n override get url(): string {\n return `https://twitter.com/intent/tweet?url=https://${this.baseHost}/details/${this.itemPath}&via=internetarchive&text=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;\n }\n}\n"]}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-email/icon-email';
|
2
|
-
import { TemplateResult, html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import type { ProviderParams } from './share-provider-interface';
|
5
|
-
|
6
|
-
export default class extends Provider {
|
7
|
-
name: string;
|
8
|
-
|
9
|
-
icon: TemplateResult;
|
10
|
-
|
11
|
-
class: string;
|
12
|
-
|
13
|
-
constructor(params: ProviderParams) {
|
14
|
-
super(params);
|
15
|
-
this.name = 'Email';
|
16
|
-
this.icon = html`<ia-icon-email></ia-icon-email>`;
|
17
|
-
this.class = 'email';
|
18
|
-
}
|
19
|
-
|
20
|
-
override get url(): string {
|
21
|
-
return `mailto:?body=https://${this.baseHost}/details/${this.itemPath}&subject=${this.description} : ${this.creator}${this.promoCopy}`;
|
22
|
-
}
|
23
|
-
}
|