@internetarchive/collection-browser 0.1.3 → 0.1.6

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.
Files changed (69) hide show
  1. package/dist/src/assets/img/icons/mediatype/livemusic.d.ts +1 -0
  2. package/dist/src/assets/img/icons/mediatype/livemusic.js +7 -0
  3. package/dist/src/assets/img/icons/mediatype/livemusic.js.map +1 -0
  4. package/dist/src/assets/img/icons/mediatype/photos.d.ts +1 -0
  5. package/dist/src/assets/img/icons/mediatype/photos.js +7 -0
  6. package/dist/src/assets/img/icons/mediatype/photos.js.map +1 -0
  7. package/dist/src/collection-browser.d.ts +1 -1
  8. package/dist/src/collection-browser.js +1 -0
  9. package/dist/src/collection-browser.js.map +1 -1
  10. package/dist/src/helpers.d.ts +1 -0
  11. package/dist/src/helpers.js +20 -0
  12. package/dist/src/helpers.js.map +1 -0
  13. package/dist/src/mediatype/mediatype-color.d.ts +3 -0
  14. package/dist/src/mediatype/mediatype-color.js +15 -0
  15. package/dist/src/mediatype/mediatype-color.js.map +1 -0
  16. package/dist/src/mediatype/mediatype-display.d.ts +3 -0
  17. package/dist/src/mediatype/mediatype-display.js +86 -0
  18. package/dist/src/mediatype/mediatype-display.js.map +1 -0
  19. package/dist/src/mediatype/mediatype-icon.d.ts +10 -0
  20. package/dist/src/mediatype/mediatype-icon.js +105 -0
  21. package/dist/src/mediatype/mediatype-icon.js.map +1 -0
  22. package/dist/src/mediatype/mediatype-text.d.ts +3 -0
  23. package/dist/src/mediatype/mediatype-text.js +17 -0
  24. package/dist/src/mediatype/mediatype-text.js.map +1 -0
  25. package/dist/src/mediatype/mediatypeConfig.d.ts +3 -0
  26. package/dist/src/mediatype/mediatypeConfig.js +86 -0
  27. package/dist/src/mediatype/mediatypeConfig.js.map +1 -0
  28. package/dist/src/mediatype-icon.d.ts +9 -0
  29. package/dist/src/mediatype-icon.js +78 -0
  30. package/dist/src/mediatype-icon.js.map +1 -0
  31. package/dist/src/sort-filter-bar/img/grid.d.ts +1 -0
  32. package/dist/src/sort-filter-bar/img/grid.js +5 -0
  33. package/dist/src/sort-filter-bar/img/grid.js.map +1 -0
  34. package/dist/src/tiles/item-image.d.ts +4 -0
  35. package/dist/src/tiles/item-image.js +30 -10
  36. package/dist/src/tiles/item-image.js.map +1 -1
  37. package/dist/src/tiles/list/tile-list-detail.d.ts +7 -0
  38. package/dist/src/tiles/list/tile-list-detail.js +28 -0
  39. package/dist/src/tiles/list/tile-list-detail.js.map +1 -0
  40. package/dist/src/tiles/loading-tile.d.ts +5 -0
  41. package/dist/src/tiles/loading-tile.js +32 -0
  42. package/dist/src/tiles/loading-tile.js.map +1 -0
  43. package/dist/src/utils/format-string.d.ts +2 -0
  44. package/dist/src/utils/format-string.js +7 -0
  45. package/dist/src/utils/format-string.js.map +1 -0
  46. package/dist/src/waveform-thumbnail.d.ts +7 -0
  47. package/dist/src/waveform-thumbnail.js +106 -0
  48. package/dist/src/waveform-thumbnail.js.map +1 -0
  49. package/dist/src/waveform-view.d.ts +0 -0
  50. package/dist/src/waveform-view.js +2 -0
  51. package/dist/src/waveform-view.js.map +1 -0
  52. package/dist/src/your-webcomponent.d.ts +8 -0
  53. package/dist/src/your-webcomponent.js +38 -0
  54. package/dist/src/your-webcomponent.js.map +1 -0
  55. package/dist/test/mediatype-icon.test.d.ts +0 -0
  56. package/dist/test/mediatype-icon.test.js +3 -0
  57. package/dist/test/mediatype-icon.test.js.map +1 -0
  58. package/dist/test/mediatypeConfig.test.d.ts +1 -0
  59. package/dist/test/mediatypeConfig.test.js +17 -0
  60. package/dist/test/mediatypeConfig.test.js.map +1 -0
  61. package/dist/test/utils/format-string.test.d.ts +1 -0
  62. package/dist/test/utils/format-string.test.js +17 -0
  63. package/dist/test/utils/format-string.test.js.map +1 -0
  64. package/dist/test/your-webcomponent.test.d.ts +1 -0
  65. package/dist/test/your-webcomponent.test.js +23 -0
  66. package/dist/test/your-webcomponent.test.js.map +1 -0
  67. package/package.json +2 -2
  68. package/src/collection-browser.ts +1 -1
  69. package/src/tiles/item-image.ts +31 -11
@@ -0,0 +1,105 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { accountIcon } from '../assets/img/icons/mediatype/account';
5
+ import { audioIcon } from '../assets/img/icons/mediatype/audio';
6
+ import { collectionIcon } from '../assets/img/icons/mediatype/collection';
7
+ import { dataIcon } from '../assets/img/icons/mediatype/data';
8
+ import { etreeIcon } from '../assets/img/icons/mediatype/etree';
9
+ import { imagesIcon } from '../assets/img/icons/mediatype/images';
10
+ import { filmIcon } from '../assets/img/icons/mediatype/film';
11
+ import { radioIcon } from '../assets/img/icons/mediatype/radio';
12
+ import { softwareIcon } from '../assets/img/icons/mediatype/software';
13
+ import { textsIcon } from '../assets/img/icons/mediatype/texts';
14
+ import { tvIcon } from '../assets/img/icons/mediatype/tv';
15
+ import { videoIcon } from '../assets/img/icons/mediatype/video';
16
+ import { webIcon } from '../assets/img/icons/mediatype/web';
17
+ import { mediatypeColor } from './mediatype-color';
18
+ import { mediatypeText } from './mediatype-text';
19
+ let MediatypeIcon = class MediatypeIcon extends LitElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.showText = false;
23
+ this.mediatypeIcons = {
24
+ account: accountIcon,
25
+ audio: audioIcon,
26
+ collection: collectionIcon,
27
+ data: dataIcon,
28
+ etree: etreeIcon,
29
+ film: filmIcon,
30
+ image: imagesIcon,
31
+ movies: filmIcon,
32
+ radio: radioIcon,
33
+ software: softwareIcon,
34
+ texts: textsIcon,
35
+ tv: tvIcon,
36
+ video: videoIcon,
37
+ web: webIcon,
38
+ };
39
+ }
40
+ get displayMediaType() {
41
+ var _a, _b;
42
+ const tvIdentifier = ['tvnews', 'tvarchive', 'television'];
43
+ const radioIdentifier = ['radio', 'radioprogram'];
44
+ if (this.mediatype === 'movies' &&
45
+ ((_a = this.collections) === null || _a === void 0 ? void 0 : _a.some(id => tvIdentifier.indexOf(id) >= 0))) {
46
+ return 'tv';
47
+ }
48
+ if (this.mediatype === 'audio' &&
49
+ ((_b = this.collections) === null || _b === void 0 ? void 0 : _b.some(id => radioIdentifier.indexOf(id) >= 0))) {
50
+ return 'radio';
51
+ }
52
+ return this.mediatype;
53
+ }
54
+ render() {
55
+ if (!this.mediatype) {
56
+ return html ``;
57
+ }
58
+ const displayMediatype = this.displayMediaType || '';
59
+ const fillColor = mediatypeColor[displayMediatype];
60
+ return html `
61
+ <div id="icon" class="${this.showText ? 'show-text' : 'hide-text'}" style="--iconFillColor=${fillColor}">
62
+ ${this.mediatypeIcons[displayMediatype]}
63
+ <p class="status-text">${mediatypeText[displayMediatype]}</p>
64
+ </div>
65
+ `;
66
+ }
67
+ static get styles() {
68
+ return css `
69
+ .status-text {
70
+ font-size: 14px;
71
+ color: #2c2c2c;
72
+ margin: auto;
73
+ display: block;
74
+ text-align: center;
75
+ }
76
+
77
+ #icon.hide-text p {
78
+ display: none;
79
+ }
80
+
81
+ svg {
82
+ height: var(--iconHeight, 10px);
83
+ width: var(--iconWidth, 10px);
84
+ }
85
+
86
+ .fill-color {
87
+ fill: var(--iconFillColor, '#000000');
88
+ }
89
+ `;
90
+ }
91
+ };
92
+ __decorate([
93
+ property({ type: String })
94
+ ], MediatypeIcon.prototype, "mediatype", void 0);
95
+ __decorate([
96
+ property({ type: Array })
97
+ ], MediatypeIcon.prototype, "collections", void 0);
98
+ __decorate([
99
+ property({ type: Boolean })
100
+ ], MediatypeIcon.prototype, "showText", void 0);
101
+ MediatypeIcon = __decorate([
102
+ customElement('mediatype-icon')
103
+ ], MediatypeIcon);
104
+ export { MediatypeIcon };
105
+ //# sourceMappingURL=mediatype-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatype-icon.js","sourceRoot":"","sources":["../../../src/mediatype/mediatype-icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { accountIcon } from '../assets/img/icons/mediatype/account';\nimport { audioIcon } from '../assets/img/icons/mediatype/audio';\nimport { collectionIcon } from '../assets/img/icons/mediatype/collection';\nimport { dataIcon } from '../assets/img/icons/mediatype/data';\nimport { etreeIcon } from '../assets/img/icons/mediatype/etree';\nimport { imagesIcon } from '../assets/img/icons/mediatype/images';\nimport { filmIcon } from '../assets/img/icons/mediatype/film';\nimport { radioIcon } from '../assets/img/icons/mediatype/radio';\nimport { softwareIcon } from '../assets/img/icons/mediatype/software';\nimport { textsIcon } from '../assets/img/icons/mediatype/texts';\nimport { tvIcon } from '../assets/img/icons/mediatype/tv';\nimport { videoIcon } from '../assets/img/icons/mediatype/video';\nimport { webIcon } from '../assets/img/icons/mediatype/web';\n\nimport { mediatypeColor } from './mediatype-color';\nimport { mediatypeText } from './mediatype-text';\n\n@customElement('mediatype-icon')\nexport class MediatypeIcon extends LitElement {\n @property({ type: String }) mediatype: string | undefined;\n\n @property({ type: Array }) collections: string[] | undefined;\n\n @property({ type: Boolean }) showText = false;\n\n private readonly mediatypeIcons: { [key: string]: any } = {\n account: accountIcon,\n audio: audioIcon,\n collection: collectionIcon,\n data: dataIcon,\n etree: etreeIcon,\n film: filmIcon,\n image: imagesIcon,\n movies: filmIcon,\n radio: radioIcon,\n software: softwareIcon,\n texts: textsIcon,\n tv: tvIcon,\n video: videoIcon,\n web: webIcon,\n };\n\n private get displayMediaType() {\n const tvIdentifier = ['tvnews', 'tvarchive', 'television'];\n const radioIdentifier = ['radio', 'radioprogram'];\n\n if (\n this.mediatype === 'movies' &&\n this.collections?.some(id => tvIdentifier.indexOf(id) >= 0)\n ) {\n return 'tv';\n }\n if (\n this.mediatype === 'audio' &&\n this.collections?.some(id => radioIdentifier.indexOf(id) >= 0)\n ) {\n return 'radio';\n }\n return this.mediatype;\n }\n\n render() {\n if (!this.mediatype) {\n return html``;\n }\n\n const displayMediatype = this.displayMediaType || '';\n const fillColor = mediatypeColor[displayMediatype];\n\n return html`\n <div id=\"icon\" class=\"${this.showText ? 'show-text' : 'hide-text'}\" style=\"--iconFillColor=${fillColor}\">\n ${this.mediatypeIcons[displayMediatype]}\n <p class=\"status-text\">${mediatypeText[displayMediatype]}</p>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n .status-text {\n font-size: 14px;\n color: #2c2c2c;\n margin: auto;\n display: block;\n text-align: center;\n }\n\n #icon.hide-text p {\n display: none;\n }\n\n svg {\n height: var(--iconHeight, 10px);\n width: var(--iconWidth, 10px);\n }\n\n .fill-color {\n fill: var(--iconFillColor, '#000000');\n }\n `;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const mediatypeText: {
2
+ [key: string]: any;
3
+ };
@@ -0,0 +1,17 @@
1
+ export const mediatypeText = {
2
+ account: 'Account',
3
+ audio: 'Audio',
4
+ collection: 'Collection',
5
+ data: 'Data',
6
+ etree: 'E-tree',
7
+ film: 'Film',
8
+ image: 'Image',
9
+ movies: 'Movie',
10
+ radio: 'Radio',
11
+ software: 'Software',
12
+ texts: 'Text',
13
+ tv: 'TV',
14
+ video: 'Video',
15
+ web: 'Web',
16
+ };
17
+ //# sourceMappingURL=mediatype-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatype-text.js","sourceRoot":"","sources":["../../../src/mediatype/mediatype-text.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACX,CAAC","sourcesContent":["export const mediatypeText: { [key: string]: any } = {\n account: 'Account',\n audio: 'Audio',\n collection: 'Collection',\n data: 'Data',\n etree: 'E-tree',\n film: 'Film',\n image: 'Image',\n movies: 'Movie',\n radio: 'Radio',\n software: 'Software',\n texts: 'Text',\n tv: 'TV',\n video: 'Video',\n web: 'Web',\n};\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const mediatypeConfig: {
2
+ [key: string]: any;
3
+ };
@@ -0,0 +1,86 @@
1
+ import { accountIcon } from '../assets/img/icons/mediatype/account';
2
+ import { audioIcon } from '../assets/img/icons/mediatype/audio';
3
+ import { collectionIcon } from '../assets/img/icons/mediatype/collection';
4
+ import { dataIcon } from '../assets/img/icons/mediatype/data';
5
+ import { etreeIcon } from '../assets/img/icons/mediatype/etree';
6
+ import { imagesIcon } from '../assets/img/icons/mediatype/images';
7
+ import { filmIcon } from '../assets/img/icons/mediatype/film';
8
+ import { radioIcon } from '../assets/img/icons/mediatype/radio';
9
+ import { softwareIcon } from '../assets/img/icons/mediatype/software';
10
+ import { textsIcon } from '../assets/img/icons/mediatype/texts';
11
+ import { tvIcon } from '../assets/img/icons/mediatype/tv';
12
+ import { videoIcon } from '../assets/img/icons/mediatype/video';
13
+ import { webIcon } from '../assets/img/icons/mediatype/web';
14
+ export const mediatypeConfig = {
15
+ account: {
16
+ color: '#000000',
17
+ icon: accountIcon,
18
+ text: 'Account',
19
+ },
20
+ audio: {
21
+ color: '#8fdaef',
22
+ icon: audioIcon,
23
+ text: 'Audio',
24
+ },
25
+ collection: {
26
+ color: '#000000',
27
+ icon: collectionIcon,
28
+ text: 'Collection',
29
+ },
30
+ data: {
31
+ color: '#333333',
32
+ icon: dataIcon,
33
+ text: 'Data',
34
+ },
35
+ etree: {
36
+ color: '#3871c1',
37
+ icon: etreeIcon,
38
+ text: 'E-tree',
39
+ },
40
+ film: {
41
+ color: '#bf1b2c',
42
+ icon: filmIcon,
43
+ text: 'Film',
44
+ },
45
+ image: {
46
+ color: '#62c4a9',
47
+ icon: imagesIcon,
48
+ text: 'Image',
49
+ },
50
+ movies: {
51
+ color: '#bf1b2c',
52
+ icon: filmIcon,
53
+ text: 'Movie',
54
+ },
55
+ radio: {
56
+ color: '#8fdaef',
57
+ icon: radioIcon,
58
+ text: 'Radio',
59
+ },
60
+ software: {
61
+ color: '#80cc28',
62
+ icon: softwareIcon,
63
+ text: 'Software',
64
+ },
65
+ texts: {
66
+ color: '#f9a72b',
67
+ icon: textsIcon,
68
+ text: 'Text',
69
+ },
70
+ tv: {
71
+ color: '#f25d54',
72
+ icon: tvIcon,
73
+ text: 'TV',
74
+ },
75
+ video: {
76
+ color: '#bf1b2c',
77
+ icon: videoIcon,
78
+ text: 'Video',
79
+ },
80
+ web: {
81
+ color: '#fddd10',
82
+ icon: webIcon,
83
+ text: 'Web',
84
+ },
85
+ };
86
+ //# sourceMappingURL=mediatypeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatypeConfig.js","sourceRoot":"","sources":["../../../src/mediatype/mediatypeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;KAChB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;KACd;IACD,UAAU,EAAE;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,YAAY;KACnB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;KACf;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;KACb;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;KACd;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,UAAU;KACjB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;KACb;IACD,EAAE,EAAE;QACF,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI;KACX;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;KACd;IACD,GAAG,EAAE;QACH,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,KAAK;KACZ;CACF,CAAC","sourcesContent":["import { accountIcon } from '../assets/img/icons/mediatype/account';\nimport { audioIcon } from '../assets/img/icons/mediatype/audio';\nimport { collectionIcon } from '../assets/img/icons/mediatype/collection';\nimport { dataIcon } from '../assets/img/icons/mediatype/data';\nimport { etreeIcon } from '../assets/img/icons/mediatype/etree';\nimport { imagesIcon } from '../assets/img/icons/mediatype/images';\nimport { filmIcon } from '../assets/img/icons/mediatype/film';\nimport { radioIcon } from '../assets/img/icons/mediatype/radio';\nimport { softwareIcon } from '../assets/img/icons/mediatype/software';\nimport { textsIcon } from '../assets/img/icons/mediatype/texts';\nimport { tvIcon } from '../assets/img/icons/mediatype/tv';\nimport { videoIcon } from '../assets/img/icons/mediatype/video';\nimport { webIcon } from '../assets/img/icons/mediatype/web';\n\nexport const mediatypeConfig: { [key: string]: any } = {\n account: {\n color: '#000000',\n icon: accountIcon,\n text: 'Account',\n },\n audio: {\n color: '#8fdaef',\n icon: audioIcon,\n text: 'Audio',\n },\n collection: {\n color: '#000000',\n icon: collectionIcon,\n text: 'Collection',\n },\n data: {\n color: '#333333',\n icon: dataIcon,\n text: 'Data',\n },\n etree: {\n color: '#3871c1',\n icon: etreeIcon,\n text: 'E-tree',\n },\n film: {\n color: '#bf1b2c',\n icon: filmIcon,\n text: 'Film',\n },\n image: {\n color: '#62c4a9',\n icon: imagesIcon,\n text: 'Image',\n },\n movies: {\n color: '#bf1b2c',\n icon: filmIcon,\n text: 'Movie',\n },\n radio: {\n color: '#8fdaef',\n icon: radioIcon,\n text: 'Radio',\n },\n software: {\n color: '#80cc28',\n icon: softwareIcon,\n text: 'Software',\n },\n texts: {\n color: '#f9a72b',\n icon: textsIcon,\n text: 'Text',\n },\n tv: {\n color: '#f25d54',\n icon: tvIcon,\n text: 'TV',\n },\n video: {\n color: '#bf1b2c',\n icon: videoIcon,\n text: 'Video',\n },\n web: {\n color: '#fddd10',\n icon: webIcon,\n text: 'Web',\n },\n};\n"]}
@@ -0,0 +1,9 @@
1
+ import { CSSResultGroup, LitElement } from 'lit';
2
+ export declare class MediatypeIcon extends LitElement {
3
+ mediatype: string | undefined;
4
+ collections: string[] | undefined;
5
+ showText: boolean;
6
+ private get displayMediatype();
7
+ render(): import("lit-html").TemplateResult<1>;
8
+ static get styles(): CSSResultGroup;
9
+ }
@@ -0,0 +1,78 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { mediatypeConfig } from './mediatype/mediatype-config';
5
+ let MediatypeIcon = class MediatypeIcon extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.showText = false;
9
+ }
10
+ get displayMediatype() {
11
+ var _a, _b;
12
+ const tvIdentifier = ['tvnews', 'tvarchive', 'television'];
13
+ const radioIdentifier = ['radio', 'radioprogram'];
14
+ if (this.mediatype === 'movies' &&
15
+ ((_a = this.collections) === null || _a === void 0 ? void 0 : _a.some(id => tvIdentifier.indexOf(id) >= 0))) {
16
+ return 'tv';
17
+ }
18
+ if (this.mediatype === 'audio' &&
19
+ ((_b = this.collections) === null || _b === void 0 ? void 0 : _b.some(id => radioIdentifier.indexOf(id) >= 0))) {
20
+ return 'radio';
21
+ }
22
+ return this.mediatype || '';
23
+ }
24
+ render() {
25
+ const config = mediatypeConfig[this.displayMediatype];
26
+ if (!config) {
27
+ return html ``;
28
+ }
29
+ return html `
30
+ <div
31
+ id="icon"
32
+ class="${this.showText ? 'show-text' : 'hide-text'}"
33
+ style="--iconFillColor: ${config.color}"
34
+ >
35
+ ${config.icon}
36
+ <p class="status-text">${config.text}</p>
37
+ </div>
38
+ `;
39
+ }
40
+ static get styles() {
41
+ return css `
42
+ .status-text {
43
+ font-size: 14px;
44
+ color: #2c2c2c;
45
+ margin: auto;
46
+ display: block;
47
+ text-align: var(--iconTextAlign, center);
48
+ }
49
+
50
+ #icon.hide-text p {
51
+ display: none;
52
+ }
53
+
54
+ svg {
55
+ height: var(--iconHeight, 10px);
56
+ width: var(--iconWidth, 10px);
57
+ }
58
+
59
+ .fill-color {
60
+ fill: var(--iconCustomFillColor, var(--iconFillColor, '#000000'));
61
+ }
62
+ `;
63
+ }
64
+ };
65
+ __decorate([
66
+ property({ type: String })
67
+ ], MediatypeIcon.prototype, "mediatype", void 0);
68
+ __decorate([
69
+ property({ type: Array })
70
+ ], MediatypeIcon.prototype, "collections", void 0);
71
+ __decorate([
72
+ property({ type: Boolean })
73
+ ], MediatypeIcon.prototype, "showText", void 0);
74
+ MediatypeIcon = __decorate([
75
+ customElement('mediatype-icon')
76
+ ], MediatypeIcon);
77
+ export { MediatypeIcon };
78
+ //# sourceMappingURL=mediatype-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatype-icon.js","sourceRoot":"","sources":["../../src/mediatype-icon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,UAAU;IAA7C;;QAK+B,aAAQ,GAAG,KAAK,CAAC;IA+DhD,CAAC;IA7DC,IAAY,gBAAgB;;QAC1B,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAElD,IACE,IAAI,CAAC,SAAS,KAAK,QAAQ;aAC3B,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAC3D;YACA,OAAO,IAAI,CAAC;SACb;QACD,IACE,IAAI,CAAC,SAAS,KAAK,OAAO;aAC1B,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAC9D;YACA,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAA,EAAE,CAAC;SACf;QAED,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;kCACxB,MAAM,CAAC,KAAK;;UAEpC,MAAM,CAAC,IAAI;iCACY,MAAM,CAAC,IAAI;;KAEvC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;KAqBT,CAAC;IACJ,CAAC;CACF,CAAA;AAnE6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAA+B;AAE/B;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;kDAAmC;AAEhC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CAAkB;AALnC,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAoEzB;SApEY,aAAa","sourcesContent":["import { css, CSSResultGroup, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { mediatypeConfig } from './mediatype/mediatype-config';\n\n@customElement('mediatype-icon')\nexport class MediatypeIcon extends LitElement {\n @property({ type: String }) mediatype: string | undefined;\n\n @property({ type: Array }) collections: string[] | undefined;\n\n @property({ type: Boolean }) showText = false;\n\n private get displayMediatype(): string {\n const tvIdentifier = ['tvnews', 'tvarchive', 'television'];\n const radioIdentifier = ['radio', 'radioprogram'];\n\n if (\n this.mediatype === 'movies' &&\n this.collections?.some(id => tvIdentifier.indexOf(id) >= 0)\n ) {\n return 'tv';\n }\n if (\n this.mediatype === 'audio' &&\n this.collections?.some(id => radioIdentifier.indexOf(id) >= 0)\n ) {\n return 'radio';\n }\n return this.mediatype || '';\n }\n\n render() {\n const config = mediatypeConfig[this.displayMediatype];\n if (!config) {\n return html``;\n }\n\n return html`\n <div\n id=\"icon\"\n class=\"${this.showText ? 'show-text' : 'hide-text'}\"\n style=\"--iconFillColor: ${config.color}\"\n >\n ${config.icon}\n <p class=\"status-text\">${config.text}</p>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n .status-text {\n font-size: 14px;\n color: #2c2c2c;\n margin: auto;\n display: block;\n text-align: var(--iconTextAlign, center);\n }\n\n #icon.hide-text p {\n display: none;\n }\n\n svg {\n height: var(--iconHeight, 10px);\n width: var(--iconWidth, 10px);\n }\n\n .fill-color {\n fill: var(--iconCustomFillColor, var(--iconFillColor, '#000000'));\n }\n `;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const gridIcon: import("lit-html").TemplateResult<2>;
@@ -0,0 +1,5 @@
1
+ import { svg } from 'lit';
2
+ export const gridIcon = svg `
3
+ <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="m45 13h-45v60h45zm55 0h-45v32h45zm0 42h-45v32h45z"/></svg>
4
+ `;
5
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../src/sort-filter-bar/img/grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;;CAE1B,CAAC","sourcesContent":["import { svg } from 'lit';\n\nexport const gridIcon = svg`\n<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m45 13h-45v60h45zm55 0h-45v32h45zm0 42h-45v32h45z\"/></svg>\n`;\n"]}
@@ -5,6 +5,7 @@ export declare class ItemImage extends LitElement {
5
5
  baseImageUrl?: string;
6
6
  isListTile: boolean;
7
7
  private isDeemphasize;
8
+ private isWaveform;
8
9
  private itemImageWaveform;
9
10
  protected updated(changed: PropertyValues): void;
10
11
  private setDeemphsize;
@@ -16,6 +17,9 @@ export declare class ItemImage extends LitElement {
16
17
  private onLoadItemImageCheck;
17
18
  private get imageClass();
18
19
  private get imageBoxClass();
20
+ private get boxWaveformClass();
21
+ private get itemImageWaveformClass();
19
22
  private get randomGradient();
23
+ private generateHashCode;
20
24
  static get styles(): CSSResultGroup;
21
25
  }
@@ -7,6 +7,7 @@ let ItemImage = class ItemImage extends LitElement {
7
7
  super(...arguments);
8
8
  this.isListTile = false;
9
9
  this.isDeemphasize = false;
10
+ this.isWaveform = false;
10
11
  }
11
12
  updated(changed) {
12
13
  if (changed.has('model')) {
@@ -45,9 +46,9 @@ let ItemImage = class ItemImage extends LitElement {
45
46
  get waveformTemplate() {
46
47
  var _a;
47
48
  return html `
48
- <div class="box" id=${this.randomGradient}>
49
+ <div class=${this.boxWaveformClass}>
49
50
  <img
50
- class="item-image"
51
+ class=${this.itemImageWaveformClass}
51
52
  src="${this.imageSrc}"
52
53
  alt="${ifDefined((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier)}"
53
54
  @load=${this.onLoadItemImageCheck}
@@ -67,7 +68,7 @@ let ItemImage = class ItemImage extends LitElement {
67
68
  const aspectRatio = this.itemImageWaveform.naturalWidth /
68
69
  this.itemImageWaveform.naturalHeight;
69
70
  if (aspectRatio === 4) {
70
- this.itemImageWaveform.classList.add('waveform');
71
+ this.isWaveform = true;
71
72
  }
72
73
  }
73
74
  // Classes
@@ -77,8 +78,24 @@ let ItemImage = class ItemImage extends LitElement {
77
78
  get imageBoxClass() {
78
79
  return this.isDeemphasize ? 'item-image-box' : undefined;
79
80
  }
81
+ get boxWaveformClass() {
82
+ return `item-audio${this.isWaveform ? ` ${this.randomGradient}` : ''}`;
83
+ }
84
+ get itemImageWaveformClass() {
85
+ return `item-image${this.isWaveform ? ' waveform' : ''}`;
86
+ }
80
87
  get randomGradient() {
81
- return `grad${Math.floor(Math.random() * (6 - 1) + 1)}`;
88
+ var _a;
89
+ let gradientInt = 1;
90
+ if ((_a = this.model) === null || _a === void 0 ? void 0 : _a.identifier) {
91
+ gradientInt = this.generateHashCode(this.model.identifier) % 6;
92
+ }
93
+ return `grad${gradientInt}`;
94
+ }
95
+ generateHashCode(str) {
96
+ return str
97
+ .split('')
98
+ .reduce((acc, char) => acc + char.charCodeAt(0), 0);
82
99
  }
83
100
  static get styles() {
84
101
  return css `
@@ -137,7 +154,7 @@ let ItemImage = class ItemImage extends LitElement {
137
154
  text-align: center;
138
155
  }
139
156
 
140
- #grad1 {
157
+ .grad1 {
141
158
  background: linear-gradient(
142
159
  hsl(300, 80%, 55%),
143
160
  hsl(330, 80%, 33%) 35%,
@@ -146,7 +163,7 @@ let ItemImage = class ItemImage extends LitElement {
146
163
  );
147
164
  }
148
165
 
149
- #grad2 {
166
+ .grad2 {
150
167
  background: linear-gradient(
151
168
  hsl(200, 80%, 55%),
152
169
  hsl(230, 80%, 33%) 35%,
@@ -155,7 +172,7 @@ let ItemImage = class ItemImage extends LitElement {
155
172
  );
156
173
  }
157
174
 
158
- #grad3 {
175
+ .grad3 {
159
176
  background: linear-gradient(
160
177
  hsl(160, 80%, 55%),
161
178
  hsl(190, 80%, 33%) 35%,
@@ -164,7 +181,7 @@ let ItemImage = class ItemImage extends LitElement {
164
181
  );
165
182
  }
166
183
 
167
- #grad4 {
184
+ .grad4 {
168
185
  background: linear-gradient(
169
186
  hsl(250, 80%, 55%),
170
187
  hsl(280, 80%, 33%) 35%,
@@ -173,7 +190,7 @@ let ItemImage = class ItemImage extends LitElement {
173
190
  );
174
191
  }
175
192
 
176
- #grad5 {
193
+ .grad5 {
177
194
  background: linear-gradient(
178
195
  hsl(280, 80%, 55%),
179
196
  hsl(310, 80%, 33%) 35%,
@@ -182,7 +199,7 @@ let ItemImage = class ItemImage extends LitElement {
182
199
  );
183
200
  }
184
201
 
185
- #grad6 {
202
+ .grad6 {
186
203
  background: linear-gradient(
187
204
  hsl(340, 80%, 55%),
188
205
  hsl(0, 80%, 33%) 35%,
@@ -205,6 +222,9 @@ __decorate([
205
222
  __decorate([
206
223
  state()
207
224
  ], ItemImage.prototype, "isDeemphasize", void 0);
225
+ __decorate([
226
+ state()
227
+ ], ItemImage.prototype, "isWaveform", void 0);
208
228
  __decorate([
209
229
  query('.item-image')
210
230
  ], ItemImage.prototype, "itemImageWaveform", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"item-image.js","sourceRoot":"","sources":["../../../src/tiles/item-image.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n CSSResultGroup,\n html,\n nothing,\n PropertyValues,\n LitElement,\n} from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { TileModel } from '../models';\n\n@customElement('item-image')\nexport class ItemImage extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isListTile = false;\n\n @state() private isDeemphasize = false;\n\n @query('.item-image') private itemImageWaveform!: HTMLImageElement;\n\n protected updated(changed: PropertyValues): void {\n if (changed.has('model')) {\n this.setDeemphsize();\n }\n }\n\n private setDeemphsize() {\n this.isDeemphasize =\n this.model?.collections.includes('deemphasize') ?? false;\n }\n\n render() {\n return html`\n <div class=${ifDefined(this.imageBoxClass)}>\n ${this.model?.mediatype === 'audio'\n ? this.waveformTemplate\n : this.backgroundImageTemplate}\n ${this.tileActionTemplate}\n </div>\n `;\n }\n\n private get imageSrc() {\n return `${this.baseImageUrl}/services/img/${this.model?.identifier}`;\n }\n\n // Templates\n private get backgroundImageTemplate() {\n return html`\n <div\n class=${this.imageClass}\n style=\"background-image:url(${this.imageSrc})\"\n ></div>\n `;\n }\n\n private get waveformTemplate() {\n return html`\n <div class=\"box\" id=${this.randomGradient}>\n <img\n class=\"item-image\"\n src=\"${this.imageSrc}\"\n alt=\"${ifDefined(this.model?.identifier)}\"\n @load=${this.onLoadItemImageCheck}\n />\n </div>\n `;\n }\n\n private get tileActionTemplate() {\n if (!this.isDeemphasize) {\n return nothing;\n }\n return html`\n <div class=\"tile-action no-preview\">Content may be inappropriate</div>\n `;\n }\n\n private onLoadItemImageCheck() {\n const aspectRatio =\n this.itemImageWaveform.naturalWidth /\n this.itemImageWaveform.naturalHeight;\n if (aspectRatio === 4) {\n this.itemImageWaveform.classList.add('waveform');\n }\n }\n\n // Classes\n private get imageClass() {\n return `item-image ${this.isDeemphasize ? 'deemphasize' : 'default'}`;\n }\n\n private get imageBoxClass() {\n return this.isDeemphasize ? 'item-image-box' : undefined;\n }\n\n private get randomGradient() {\n return `grad${Math.floor(Math.random() * (6 - 1) + 1)}`;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n .item-image-box {\n width: 16rem;\n height: 16rem;\n overflow: hidden;\n position: relative;\n box-shadow: 1px 1px 2px 0px;\n display: flex;\n }\n\n .item-image {\n width: 16rem;\n height: 16rem;\n object-fit: contain;\n background-repeat: no-repeat;\n background-position: center center;\n position: relative;\n -webkit-appearance: none;\n overflow: visible;\n }\n\n .waveform {\n mix-blend-mode: screen;\n }\n\n .default {\n background-size: contain;\n filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.8));\n }\n\n .deemphasize {\n background-size: cover;\n filter: blur(15px);\n z-index: 1;\n }\n\n .tile-action {\n border: 1px solid currentColor;\n border-radius: 1px;\n padding: 5px;\n font-weight: 500;\n width: auto;\n position: absolute;\n z-index: 2;\n display: flex;\n top: 5.5rem;\n }\n\n .no-preview {\n background-color: #fffecb;\n color: #2c2c2c;\n font-size: 1.4rem;\n line-height: 2rem;\n text-align: center;\n }\n\n #grad1 {\n background: linear-gradient(\n hsl(300, 80%, 55%),\n hsl(330, 80%, 33%) 35%,\n hsl(330, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n #grad2 {\n background: linear-gradient(\n hsl(200, 80%, 55%),\n hsl(230, 80%, 33%) 35%,\n hsl(230, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n #grad3 {\n background: linear-gradient(\n hsl(160, 80%, 55%),\n hsl(190, 80%, 33%) 35%,\n hsl(190, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n #grad4 {\n background: linear-gradient(\n hsl(250, 80%, 55%),\n hsl(280, 80%, 33%) 35%,\n hsl(280, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n #grad5 {\n background: linear-gradient(\n hsl(280, 80%, 55%),\n hsl(310, 80%, 33%) 35%,\n hsl(310, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n #grad6 {\n background: linear-gradient(\n hsl(340, 80%, 55%),\n hsl(0, 80%, 33%) 35%,\n hsl(0, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"item-image.js","sourceRoot":"","sources":["../../../src/tiles/item-image.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n css,\n CSSResultGroup,\n html,\n nothing,\n PropertyValues,\n LitElement,\n} from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { TileModel } from '../models';\n\n@customElement('item-image')\nexport class ItemImage extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n @property({ type: String }) baseImageUrl?: string;\n\n @property({ type: Boolean }) isListTile = false;\n\n @state() private isDeemphasize: boolean = false;\n\n @state() private isWaveform: boolean = false;\n\n @query('.item-image') private itemImageWaveform!: HTMLImageElement;\n\n protected updated(changed: PropertyValues): void {\n if (changed.has('model')) {\n this.setDeemphsize();\n }\n }\n\n private setDeemphsize() {\n this.isDeemphasize =\n this.model?.collections.includes('deemphasize') ?? false;\n }\n\n render() {\n return html`\n <div class=${ifDefined(this.imageBoxClass)}>\n ${this.model?.mediatype === 'audio'\n ? this.waveformTemplate\n : this.backgroundImageTemplate}\n ${this.tileActionTemplate}\n </div>\n `;\n }\n\n private get imageSrc() {\n return `${this.baseImageUrl}/services/img/${this.model?.identifier}`;\n }\n\n // Templates\n private get backgroundImageTemplate() {\n return html`\n <div\n class=${this.imageClass}\n style=\"background-image:url(${this.imageSrc})\"\n ></div>\n `;\n }\n\n private get waveformTemplate() {\n return html`\n <div class=${this.boxWaveformClass}>\n <img\n class=${this.itemImageWaveformClass}\n src=\"${this.imageSrc}\"\n alt=\"${ifDefined(this.model?.identifier)}\"\n @load=${this.onLoadItemImageCheck}\n />\n </div>\n `;\n }\n\n private get tileActionTemplate() {\n if (!this.isDeemphasize) {\n return nothing;\n }\n return html`\n <div class=\"tile-action no-preview\">Content may be inappropriate</div>\n `;\n }\n\n private onLoadItemImageCheck() {\n const aspectRatio =\n this.itemImageWaveform.naturalWidth /\n this.itemImageWaveform.naturalHeight;\n if (aspectRatio === 4) {\n this.isWaveform = true;\n }\n }\n\n // Classes\n private get imageClass() {\n return `item-image ${this.isDeemphasize ? 'deemphasize' : 'default'}`;\n }\n\n private get imageBoxClass() {\n return this.isDeemphasize ? 'item-image-box' : undefined;\n }\n\n private get boxWaveformClass() {\n return `item-audio${this.isWaveform ? ` ${this.randomGradient}` : ''}`;\n }\n\n private get itemImageWaveformClass() {\n return `item-image${this.isWaveform ? ' waveform' : ''}`;\n }\n\n private get randomGradient() {\n let gradientInt = 1;\n if (this.model?.identifier) {\n gradientInt = this.generateHashCode(this.model.identifier) % 6;\n }\n return `grad${gradientInt}`;\n }\n\n private generateHashCode(str: string): number {\n return str\n .split('')\n .reduce((acc: number, char: string) => acc + char.charCodeAt(0), 0);\n }\n\n static get styles(): CSSResultGroup {\n return css`\n .item-image-box {\n width: 16rem;\n height: 16rem;\n overflow: hidden;\n position: relative;\n box-shadow: 1px 1px 2px 0px;\n display: flex;\n }\n\n .item-image {\n width: 16rem;\n height: 16rem;\n object-fit: contain;\n background-repeat: no-repeat;\n background-position: center center;\n position: relative;\n -webkit-appearance: none;\n overflow: visible;\n }\n\n .waveform {\n mix-blend-mode: screen;\n }\n\n .default {\n background-size: contain;\n filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.8));\n }\n\n .deemphasize {\n background-size: cover;\n filter: blur(15px);\n z-index: 1;\n }\n\n .tile-action {\n border: 1px solid currentColor;\n border-radius: 1px;\n padding: 5px;\n font-weight: 500;\n width: auto;\n position: absolute;\n z-index: 2;\n display: flex;\n top: 5.5rem;\n }\n\n .no-preview {\n background-color: #fffecb;\n color: #2c2c2c;\n font-size: 1.4rem;\n line-height: 2rem;\n text-align: center;\n }\n\n .grad1 {\n background: linear-gradient(\n hsl(300, 80%, 55%),\n hsl(330, 80%, 33%) 35%,\n hsl(330, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n .grad2 {\n background: linear-gradient(\n hsl(200, 80%, 55%),\n hsl(230, 80%, 33%) 35%,\n hsl(230, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n .grad3 {\n background: linear-gradient(\n hsl(160, 80%, 55%),\n hsl(190, 80%, 33%) 35%,\n hsl(190, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n .grad4 {\n background: linear-gradient(\n hsl(250, 80%, 55%),\n hsl(280, 80%, 33%) 35%,\n hsl(280, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n .grad5 {\n background: linear-gradient(\n hsl(280, 80%, 55%),\n hsl(310, 80%, 33%) 35%,\n hsl(310, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n\n .grad6 {\n background: linear-gradient(\n hsl(340, 80%, 55%),\n hsl(0, 80%, 33%) 35%,\n hsl(0, 80%, 22%) 70%,\n hsl(0, 0%, 0%)\n );\n }\n `;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { LitElement } from 'lit';
2
+ import { TileModel } from '../../models';
3
+ export declare class TileListDetail extends LitElement {
4
+ model?: TileModel;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ static get styles(): import("lit").CSSResult;
7
+ }
@@ -0,0 +1,28 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ let TileListDetail = class TileListDetail extends LitElement {
5
+ render() {
6
+ var _a, _b, _c, _d;
7
+ return html `
8
+ <h1>${(_a = this.model) === null || _a === void 0 ? void 0 : _a.title}</h1>
9
+ <h2>${(_c = (_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished) === null || _c === void 0 ? void 0 : _c.toDateString()}</h2>
10
+ <p>${(_d = this.model) === null || _d === void 0 ? void 0 : _d.description}</p>
11
+ `;
12
+ }
13
+ static get styles() {
14
+ return css `
15
+ h1 {
16
+ margin-top: 0;
17
+ }
18
+ `;
19
+ }
20
+ };
21
+ __decorate([
22
+ property({ type: Object })
23
+ ], TileListDetail.prototype, "model", void 0);
24
+ TileListDetail = __decorate([
25
+ customElement('tile-list-detail')
26
+ ], TileListDetail);
27
+ export { TileListDetail };
28
+ //# sourceMappingURL=tile-list-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-list-detail.js","sourceRoot":"","sources":["../../../../src/tiles/list/tile-list-detail.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI5D,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,UAAU;IAG5C,MAAM;;QACJ,OAAO,IAAI,CAAA;YACH,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK;YACjB,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,0CAAE,YAAY,EAAE;WAC1C,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW;KAC7B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;KAIT,CAAC;IACJ,CAAC;CACF,CAAA;AAjB6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAmB;AADnC,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAkB1B;SAlBY,cAAc","sourcesContent":["import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { TileModel } from '../../models';\n\n@customElement('tile-list-detail')\nexport class TileListDetail extends LitElement {\n @property({ type: Object }) model?: TileModel;\n\n render() {\n return html`\n <h1>${this.model?.title}</h1>\n <h2>${this.model?.datePublished?.toDateString()}</h2>\n <p>${this.model?.description}</p>\n `;\n }\n\n static get styles() {\n return css`\n h1 {\n margin-top: 0;\n }\n `;\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class LoadingTile extends LitElement {
3
+ render(): import("lit-html").TemplateResult<1>;
4
+ static get styles(): import("lit").CSSResult;
5
+ }
@@ -0,0 +1,32 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement } from 'lit/decorators.js';
4
+ let LoadingTile = class LoadingTile extends LitElement {
5
+ render() {
6
+ return html ` <div id="container"></div> `;
7
+ }
8
+ static get styles() {
9
+ return css `
10
+ :host {
11
+ display: block;
12
+ height: 100%;
13
+ }
14
+
15
+ #container {
16
+ background: linear-gradient(
17
+ to right,
18
+ rgba(25, 69, 154, 0.1),
19
+ rgb(105, 161, 234, 0.2)
20
+ );
21
+ background-size: 100% 100%;
22
+ display: block;
23
+ height: 100%;
24
+ }
25
+ `;
26
+ }
27
+ };
28
+ LoadingTile = __decorate([
29
+ customElement('loading-tile')
30
+ ], LoadingTile);
31
+ export { LoadingTile };
32
+ //# sourceMappingURL=loading-tile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-tile.js","sourceRoot":"","sources":["../../../src/tiles/loading-tile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IACzC,MAAM;QACJ,OAAO,IAAI,CAAA,8BAA8B,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;KAgBT,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAwBvB;SAxBY,WAAW","sourcesContent":["import { css, html, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\n@customElement('loading-tile')\nexport class LoadingTile extends LitElement {\n render() {\n return html` <div id=\"container\"></div> `;\n }\n\n static get styles() {\n return css`\n :host {\n display: block;\n height: 100%;\n }\n\n #container {\n background: linear-gradient(\n to right,\n rgba(25, 69, 154, 0.1),\n rgb(105, 161, 234, 0.2)\n );\n background-size: 100% 100%;\n display: block;\n height: 100%;\n }\n `;\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function strHasSpace(str: string): boolean;
2
+ export declare function isStrOneLiner(str: string): boolean;
@@ -0,0 +1,7 @@
1
+ export function strHasSpace(str) {
2
+ return /\s/.test(str);
3
+ }
4
+ export function isStrOneLiner(str) {
5
+ return !strHasSpace(str) && str.length >= 24;
6
+ }
7
+ //# sourceMappingURL=format-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-string.js","sourceRoot":"","sources":["../../../src/utils/format-string.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/C,CAAC","sourcesContent":["export function strHasSpace(str: string): boolean {\n return /\\s/.test(str);\n}\n\nexport function isStrOneLiner(str: string): boolean {\n return !strHasSpace(str) && str.length >= 24;\n}\n"]}