@internetarchive/ia-item-navigator 2.1.1 → 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/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.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/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
@@ -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
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-facebook/icon-facebook';
|
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 = 'Facebook';
|
16
|
-
this.icon = html`<ia-icon-facebook></ia-icon-facebook>`;
|
17
|
-
this.class = 'facebook';
|
18
|
-
}
|
19
|
-
|
20
|
-
override get url(): string {
|
21
|
-
return `https://www.facebook.com/sharer/sharer.php?u=https://${this.baseHost}/details/${this.itemPath}`;
|
22
|
-
}
|
23
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-pinterest/icon-pinterest';
|
2
|
-
import { TemplateResult, html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { 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 = 'Pinterest';
|
16
|
-
this.icon = html`<ia-icon-pinterest></ia-icon-pinterest>`;
|
17
|
-
this.class = 'pinterest';
|
18
|
-
}
|
19
|
-
|
20
|
-
override get url(): string {
|
21
|
-
return `http://www.pinterest.com/pin/create/button/?url=https://${this.baseHost}/details/${this.itemPath}&description=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;
|
22
|
-
}
|
23
|
-
}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import { TemplateResult } from 'lit';
|
2
|
-
import { ProviderParams } from './share-provider-interface';
|
3
|
-
|
4
|
-
export default class Provider {
|
5
|
-
promoCopy: string;
|
6
|
-
|
7
|
-
description: string;
|
8
|
-
|
9
|
-
creator: string;
|
10
|
-
|
11
|
-
fileSubPrefix: string;
|
12
|
-
|
13
|
-
identifier: string;
|
14
|
-
|
15
|
-
baseHost: string;
|
16
|
-
|
17
|
-
name: string | undefined;
|
18
|
-
|
19
|
-
icon: TemplateResult | string | undefined;
|
20
|
-
|
21
|
-
class: string | undefined;
|
22
|
-
|
23
|
-
constructor(params: ProviderParams) {
|
24
|
-
this.promoCopy =
|
25
|
-
' : Free Download, Borrow, and Streaming : Internet Archive';
|
26
|
-
|
27
|
-
this.description = params?.description || '';
|
28
|
-
this.creator = params?.creator || '';
|
29
|
-
this.fileSubPrefix = params?.fileSubPrefix || '';
|
30
|
-
this.identifier = params?.identifier || '';
|
31
|
-
this.baseHost = params?.baseHost || '';
|
32
|
-
}
|
33
|
-
|
34
|
-
get encodedDescription(): string {
|
35
|
-
return this.encodeString(this.description);
|
36
|
-
}
|
37
|
-
|
38
|
-
get encodedCreator(): string {
|
39
|
-
return this.encodeString(this.creator);
|
40
|
-
}
|
41
|
-
|
42
|
-
get encodedPromoCopy(): string {
|
43
|
-
return this.encodeString(this.promoCopy);
|
44
|
-
}
|
45
|
-
|
46
|
-
get itemPath(): string {
|
47
|
-
const encodedFileSubPrefix = this.fileSubPrefix
|
48
|
-
? encodeURIComponent(this.fileSubPrefix)
|
49
|
-
: '';
|
50
|
-
return encodedFileSubPrefix
|
51
|
-
? `${this.identifier}/${encodedFileSubPrefix}`
|
52
|
-
: this.identifier;
|
53
|
-
}
|
54
|
-
|
55
|
-
get url(): string {
|
56
|
-
return `https://${this.baseHost}/details/${this.itemPath}`;
|
57
|
-
}
|
58
|
-
|
59
|
-
encodeString(str: string): string {
|
60
|
-
if (!str) return '';
|
61
|
-
return encodeURIComponent(str.replace(/\s/g, '+')).replace(/%2B/g, '+');
|
62
|
-
}
|
63
|
-
}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { TemplateResult } from 'lit';
|
2
|
-
|
3
|
-
export type ProviderParams = {
|
4
|
-
class: string;
|
5
|
-
icon: TemplateResult | string;
|
6
|
-
name: string;
|
7
|
-
|
8
|
-
promoCopy: string;
|
9
|
-
description: string;
|
10
|
-
creator: string;
|
11
|
-
|
12
|
-
// ia item
|
13
|
-
fileSubPrefix: string;
|
14
|
-
identifier: string;
|
15
|
-
baseHost: string;
|
16
|
-
itemPath: string;
|
17
|
-
};
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-tumblr/icon-tumblr';
|
2
|
-
import { TemplateResult, html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { 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 = 'Tumblr';
|
16
|
-
this.icon = html`<ia-icon-tumblr></ia-icon-tumblr>`;
|
17
|
-
this.class = 'tumblr';
|
18
|
-
}
|
19
|
-
|
20
|
-
override get url(): string {
|
21
|
-
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}`;
|
22
|
-
}
|
23
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import '@internetarchive/icon-twitter/icon-twitter';
|
2
|
-
import { TemplateResult, html } from 'lit';
|
3
|
-
import Provider from './provider';
|
4
|
-
import { ProviderParams } from './share-provider-interface';
|
5
|
-
|
6
|
-
export default class TwitterProvider extends Provider {
|
7
|
-
name: string;
|
8
|
-
|
9
|
-
icon: TemplateResult;
|
10
|
-
|
11
|
-
class: string;
|
12
|
-
|
13
|
-
constructor(params: ProviderParams) {
|
14
|
-
super(params);
|
15
|
-
this.name = 'Twitter';
|
16
|
-
this.icon = html`<ia-icon-twitter></ia-icon-twitter>`;
|
17
|
-
this.class = 'twitter';
|
18
|
-
}
|
19
|
-
|
20
|
-
override get url(): string {
|
21
|
-
return `https://twitter.com/intent/tweet?url=https://${this.baseHost}/details/${this.itemPath}&via=internetarchive&text=${this.encodedDescription}+%3A+${this.encodedCreator}${this.encodedPromoCopy}`;
|
22
|
-
}
|
23
|
-
}
|
@@ -1,78 +0,0 @@
|
|
1
|
-
import { html, fixture, expect } from '@open-wc/testing';
|
2
|
-
import sinon from 'sinon';
|
3
|
-
import '../src/ia-sharing-options.js';
|
4
|
-
|
5
|
-
const identifier = 'goody';
|
6
|
-
const itemType = 'book';
|
7
|
-
const creator = 'Welsh, Charles';
|
8
|
-
const description = 'The history of Little Goody Two-Shoes : otherwise called Mrs. Margery Two-Shoes ... [1766 edition]';
|
9
|
-
|
10
|
-
const container = (optionalFileSubprefix = '') => (
|
11
|
-
html`<ia-sharing-options
|
12
|
-
identifier="${identifier}"
|
13
|
-
type="${itemType}"
|
14
|
-
creator="${creator}"
|
15
|
-
description="${description}"
|
16
|
-
baseHost="archive.org"
|
17
|
-
fileSubPrefix="${optionalFileSubprefix}"
|
18
|
-
></ia-sharing-options>`
|
19
|
-
);
|
20
|
-
|
21
|
-
describe('<ia-sharing-options>', () => {
|
22
|
-
afterEach(() => {
|
23
|
-
sinon.restore();
|
24
|
-
});
|
25
|
-
|
26
|
-
it('sets default properties', async () => {
|
27
|
-
const el = await fixture(container());
|
28
|
-
|
29
|
-
expect(el.identifier).to.equal(identifier);
|
30
|
-
expect(el.type).to.equal(itemType);
|
31
|
-
expect(el.creator).to.equal(creator);
|
32
|
-
expect(el.description).to.equal(description);
|
33
|
-
});
|
34
|
-
|
35
|
-
it('renders buttons for each sharing method', async () => {
|
36
|
-
const el = await fixture(container());
|
37
|
-
|
38
|
-
await el.updateComplete;
|
39
|
-
|
40
|
-
el.sharingOptions.forEach((option) => {
|
41
|
-
const button = el.shadowRoot.querySelector(`a.${option.class}`);
|
42
|
-
expect(button).to.exist;
|
43
|
-
expect(button.getAttribute('href')).to.equal(option.url);
|
44
|
-
});
|
45
|
-
});
|
46
|
-
|
47
|
-
it('toggles visibility of embed options', async () => {
|
48
|
-
const el = await fixture(container());
|
49
|
-
|
50
|
-
el.toggleEmbedOptions(new Event('click'));
|
51
|
-
await el.updateComplete;
|
52
|
-
|
53
|
-
expect(el.embedOptionsVisible).to.equal(true);
|
54
|
-
});
|
55
|
-
|
56
|
-
it('does not show internal header by default', async () => {
|
57
|
-
const el = await fixture(container());
|
58
|
-
expect(el.shadowRoot.querySelector('header')).to.be.null;
|
59
|
-
});
|
60
|
-
|
61
|
-
it('does shows internal header when requested', async () => {
|
62
|
-
const el = await fixture(container());
|
63
|
-
el.renderHeader = true;
|
64
|
-
await el.updateComplete;
|
65
|
-
expect(el.shadowRoot.querySelector('header')).to.not.be.null;
|
66
|
-
});
|
67
|
-
|
68
|
-
it('sets file subprefix to end of share URLs if present', async () => {
|
69
|
-
const optionalFileSubprefix = 'foo- bar - 123-';
|
70
|
-
const el = await fixture(container(optionalFileSubprefix));
|
71
|
-
|
72
|
-
el.sharingOptions.forEach((option) => {
|
73
|
-
if (option.name !== 'Tumblr') {
|
74
|
-
expect(option.url).to.contain(encodeURIComponent(optionalFileSubprefix));
|
75
|
-
}
|
76
|
-
});
|
77
|
-
});
|
78
|
-
});
|