@internetarchive/collection-browser 4.8.1-webdev-9227.2 → 4.8.1-webdev-9227.3
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/src/collection-browser.js +4 -1
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row-template.js +5 -2
- package/dist/src/collection-facets/facet-row-template.js.map +1 -1
- package/dist/src/locales/es.d.ts +1 -6
- package/dist/src/locales/es.js +1 -6
- package/dist/src/locales/es.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +4 -2
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.js +3 -1
- package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js +4 -1
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +11 -2
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/utils/format-count.d.ts +3 -1
- package/dist/src/utils/format-count.js +19 -59
- package/dist/src/utils/format-count.js.map +1 -1
- package/dist/src/utils/format-unit-size.d.ts +1 -1
- package/dist/src/utils/format-unit-size.js +3 -2
- package/dist/src/utils/format-unit-size.js.map +1 -1
- package/dist/src/utils/get-locale.d.ts +14 -0
- package/dist/src/utils/get-locale.js +18 -0
- package/dist/src/utils/get-locale.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { css, html, nothing } from 'lit';
|
|
|
2
2
|
import eyeIcon from '../assets/img/icons/eye';
|
|
3
3
|
import eyeClosedIcon from '../assets/img/icons/eye-closed';
|
|
4
4
|
import { msg, str } from '@lit/localize';
|
|
5
|
+
import { getLocale } from '../utils/get-locale';
|
|
5
6
|
import { facetPluralTitles, facetTitles, } from '../models';
|
|
6
7
|
/**
|
|
7
8
|
* Returns the composed facet state corresponding to a positive or negative facet's checked state
|
|
@@ -31,7 +32,9 @@ export function facetRowTemplate({ facetType, bucket, collectionTitles, omitHide
|
|
|
31
32
|
: html `<a href="/details/${bucket.key}">
|
|
32
33
|
${collectionTitles?.get(bucket.key) ?? bucket.key}
|
|
33
34
|
</a> `;
|
|
34
|
-
const bucketCountText = bucket.count > 0
|
|
35
|
+
const bucketCountText = bucket.count > 0
|
|
36
|
+
? new Intl.NumberFormat(getLocale()).format(bucket.count)
|
|
37
|
+
: '';
|
|
35
38
|
const facetHidden = bucket.state === 'hidden';
|
|
36
39
|
const facetSelected = bucket.state === 'selected';
|
|
37
40
|
const groupTitle = facetTitles[facetType];
|
|
@@ -43,7 +46,7 @@ export function facetRowTemplate({ facetType, bucket, collectionTitles, omitHide
|
|
|
43
46
|
const hideText = msg(str `Hide ${titleText}`);
|
|
44
47
|
const unhideText = msg(str `Unhide ${titleText}`);
|
|
45
48
|
const showHideText = facetHidden ? unhideText : hideText;
|
|
46
|
-
const ariaLabel = msg(str `${titleText}, ${bucket.count} results`);
|
|
49
|
+
const ariaLabel = msg(str `${titleText}, ${new Intl.NumberFormat(getLocale()).format(bucket.count)} results`);
|
|
47
50
|
const showOnlyClicked = onCheckboxClick
|
|
48
51
|
? (e) => onCheckboxClick(e, false)
|
|
49
52
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facet-row-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facet-row-template.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, nothing, TemplateResult } from 'lit';\nimport eyeIcon from '../assets/img/icons/eye';\nimport eyeClosedIcon from '../assets/img/icons/eye-closed';\nimport { msg, str } from '@lit/localize';\nimport {\n facetPluralTitles,\n facetTitles,\n type FacetOption,\n type FacetBucket,\n type FacetState,\n} from '../models';\nimport type { CollectionTitles } from '../data-source/models';\n\nexport type FacetRowTemplateOptions = {\n /** The name of the facet group to which this facet belongs (e.g., \"mediatype\") */\n facetType: FacetOption;\n\n /** The facet bucket containing details about the state, count, and key for this row */\n bucket: FacetBucket;\n\n /** The collection name cache for converting collection identifiers to titles */\n collectionTitles?: CollectionTitles;\n\n /**\n * Whether to omit the negative/hide button from this facet row if possible.\n * Has no effect if the facet bucket is itself hidden, in which case the hide\n * button *must* be shown to represent the state accurately.\n */\n omitHideButton?: boolean;\n\n /**\n * Called when either checkbox is clicked. Leave it out when an ancestor\n * handles the rows' clicks by delegation instead.\n */\n onCheckboxClick?: (e: Event, negative: boolean) => void;\n};\n\n/**\n * Returns the composed facet state corresponding to a positive or negative facet's checked state\n */\nexport function getFacetState(checked: boolean, negative: boolean): FacetState {\n if (!checked) return 'none';\n return negative ? 'hidden' : 'selected';\n}\n\n/**\n * Template for a full facet row, including the positive/negative checks,\n * the display name, and the count. The row is plain DOM so that long lists\n * (e.g. the More... dialog) can render many rows without creating an\n * element per row. Render it inside a shadow root that includes\n * `facetRowStyles`.\n */\nexport function facetRowTemplate({\n facetType,\n bucket,\n collectionTitles,\n omitHideButton = false,\n onCheckboxClick,\n}: FacetRowTemplateOptions): TemplateResult {\n const showOnlyCheckboxId = `${facetType}:${bucket.key}-show-only`;\n const negativeCheckboxId = `${facetType}:${bucket.key}-negative`;\n\n const extraNoteSpan = bucket.extraNote\n ? html`<span class=\"facet-note\">${bucket.extraNote}</span>`\n : nothing;\n\n // For collections, we render the collection title as a link.\n // For other facet types, we just have a static value to use.\n const bucketTextDisplay =\n facetType !== 'collection'\n ? html`${bucket.displayText ?? bucket.key} ${extraNoteSpan}`\n : html`<a href=\"/details/${bucket.key}\">\n ${collectionTitles?.get(bucket.key) ?? bucket.key}\n </a> `;\n\n const bucketCountText = bucket.count > 0 ? bucket.count.toLocaleString() : '';\n\n const facetHidden = bucket.state === 'hidden';\n const facetSelected = bucket.state === 'selected';\n\n const groupTitle = facetTitles[facetType];\n const groupPluralTitle = facetPluralTitles[facetType];\n const titleText = `${groupTitle}: ${bucket.displayText ?? bucket.key}`;\n const onlyShowText = facetSelected\n ? msg(str`Show all ${groupPluralTitle}`)\n : msg(str`Only show ${titleText}`);\n const hideText = msg(str`Hide ${titleText}`);\n const unhideText = msg(str`Unhide ${titleText}`);\n const showHideText = facetHidden ? unhideText : hideText;\n const ariaLabel = msg(str`${titleText}, ${bucket.count} results`);\n\n const showOnlyClicked = onCheckboxClick\n ? (e: Event) => onCheckboxClick(e, false)\n : undefined;\n const hideClicked = onCheckboxClick\n ? (e: Event) => onCheckboxClick(e, true)\n : undefined;\n\n // Added data-testid for Playwright testing\n return html`\n <div class=\"facet-row-container\">\n <div class=\"facet-checkboxes\">\n <input\n type=\"checkbox\"\n .name=${facetType}\n .value=${bucket.key}\n @click=${showOnlyClicked}\n .checked=${facetSelected}\n class=\"select-facet-checkbox\"\n title=${onlyShowText}\n id=${showOnlyCheckboxId}\n data-testid=${showOnlyCheckboxId}\n />\n <div\n class=\"hide-facet-container\"\n ?hidden=${omitHideButton && !facetHidden}\n >\n <input\n type=\"checkbox\"\n id=${negativeCheckboxId}\n .name=${facetType}\n .value=${bucket.key}\n @click=${hideClicked}\n .checked=${facetHidden}\n class=\"hide-facet-checkbox\"\n />\n <label\n for=${negativeCheckboxId}\n class=\"hide-facet-icon${facetHidden ? ' active' : ''}\"\n title=${showHideText}\n data-testid=${negativeCheckboxId}\n >\n <span class=\"sr-only\">${showHideText}</span>\n <span class=\"eye eye-open\">${eyeIcon}</span>\n <span class=\"eye eye-closed\">${eyeClosedIcon}</span>\n </label>\n </div>\n </div>\n <label\n for=${showOnlyCheckboxId}\n class=\"facet-info-display\"\n title=${onlyShowText}\n aria-label=${ariaLabel}\n >\n <div class=\"facet-title\">${bucketTextDisplay}</div>\n <div class=\"facet-count\">${bucketCountText}</div>\n </label>\n </div>\n `;\n}\n\nconst facetRowBorderTop = css`var(--facet-row-border-top, 1px solid transparent)`;\nconst facetRowBorderBottom = css`var(--facet-row-border-bottom, 1px solid transparent)`;\nconst checkboxHeight = css`15px`;\n\n/**\n * Styles for `facetRowTemplate`. Include `srOnlyStyle` alongside these.\n */\nexport const facetRowStyles = css`\n .facet-checkboxes {\n margin: 0 5px 0 0;\n display: flex;\n height: ${checkboxHeight};\n }\n .facet-checkboxes input:first-child {\n margin-right: 5px;\n }\n .facet-checkboxes input {\n height: ${checkboxHeight};\n width: ${checkboxHeight};\n margin: 0;\n }\n .facet-row-container {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 0 auto;\n padding: 0.25rem 0;\n height: auto;\n border-top: ${facetRowBorderTop};\n border-bottom: ${facetRowBorderBottom};\n }\n .facet-info-display {\n display: flex;\n flex: 1 1 0%;\n cursor: pointer;\n flex-wrap: wrap;\n }\n .facet-title {\n word-break: break-word;\n display: inline-block;\n flex: 1 1 0%;\n }\n .facet-note {\n color: #bbb;\n }\n .facet-count {\n text-align: right;\n }\n .select-facet-checkbox {\n cursor: pointer;\n display: inline-block;\n }\n .hide-facet-checkbox {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .hide-facet-checkbox:focus-visible + .hide-facet-icon {\n outline-style: auto;\n outline-offset: 2px;\n }\n .hide-facet-icon {\n width: ${checkboxHeight};\n height: ${checkboxHeight};\n cursor: pointer;\n display: flex;\n }\n .eye {\n width: ${checkboxHeight};\n height: ${checkboxHeight};\n opacity: 0.3;\n }\n .hide-facet-icon:hover .eye,\n .active .eye {\n opacity: 1;\n }\n .hide-facet-icon:hover .eye-open,\n .hide-facet-icon .eye-closed {\n display: none;\n }\n .hide-facet-icon:hover .eye-closed,\n .hide-facet-icon.active .eye-closed {\n display: inline;\n }\n .hide-facet-icon.active .eye-open {\n display: none;\n }\n .sorting-icon {\n cursor: pointer;\n }\n\n a:link,\n a:visited {\n text-decoration: none;\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n`;\n"]}
|
|
1
|
+
{"version":3,"file":"facet-row-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facet-row-template.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, nothing, TemplateResult } from 'lit';\nimport eyeIcon from '../assets/img/icons/eye';\nimport eyeClosedIcon from '../assets/img/icons/eye-closed';\nimport { msg, str } from '@lit/localize';\nimport { getLocale } from '../utils/get-locale';\nimport {\n facetPluralTitles,\n facetTitles,\n type FacetOption,\n type FacetBucket,\n type FacetState,\n} from '../models';\nimport type { CollectionTitles } from '../data-source/models';\n\nexport type FacetRowTemplateOptions = {\n /** The name of the facet group to which this facet belongs (e.g., \"mediatype\") */\n facetType: FacetOption;\n\n /** The facet bucket containing details about the state, count, and key for this row */\n bucket: FacetBucket;\n\n /** The collection name cache for converting collection identifiers to titles */\n collectionTitles?: CollectionTitles;\n\n /**\n * Whether to omit the negative/hide button from this facet row if possible.\n * Has no effect if the facet bucket is itself hidden, in which case the hide\n * button *must* be shown to represent the state accurately.\n */\n omitHideButton?: boolean;\n\n /**\n * Called when either checkbox is clicked. Leave it out when an ancestor\n * handles the rows' clicks by delegation instead.\n */\n onCheckboxClick?: (e: Event, negative: boolean) => void;\n};\n\n/**\n * Returns the composed facet state corresponding to a positive or negative facet's checked state\n */\nexport function getFacetState(checked: boolean, negative: boolean): FacetState {\n if (!checked) return 'none';\n return negative ? 'hidden' : 'selected';\n}\n\n/**\n * Template for a full facet row, including the positive/negative checks,\n * the display name, and the count. The row is plain DOM so that long lists\n * (e.g. the More... dialog) can render many rows without creating an\n * element per row. Render it inside a shadow root that includes\n * `facetRowStyles`.\n */\nexport function facetRowTemplate({\n facetType,\n bucket,\n collectionTitles,\n omitHideButton = false,\n onCheckboxClick,\n}: FacetRowTemplateOptions): TemplateResult {\n const showOnlyCheckboxId = `${facetType}:${bucket.key}-show-only`;\n const negativeCheckboxId = `${facetType}:${bucket.key}-negative`;\n\n const extraNoteSpan = bucket.extraNote\n ? html`<span class=\"facet-note\">${bucket.extraNote}</span>`\n : nothing;\n\n // For collections, we render the collection title as a link.\n // For other facet types, we just have a static value to use.\n const bucketTextDisplay =\n facetType !== 'collection'\n ? html`${bucket.displayText ?? bucket.key} ${extraNoteSpan}`\n : html`<a href=\"/details/${bucket.key}\">\n ${collectionTitles?.get(bucket.key) ?? bucket.key}\n </a> `;\n\n const bucketCountText =\n bucket.count > 0\n ? new Intl.NumberFormat(getLocale()).format(bucket.count)\n : '';\n\n const facetHidden = bucket.state === 'hidden';\n const facetSelected = bucket.state === 'selected';\n\n const groupTitle = facetTitles[facetType];\n const groupPluralTitle = facetPluralTitles[facetType];\n const titleText = `${groupTitle}: ${bucket.displayText ?? bucket.key}`;\n const onlyShowText = facetSelected\n ? msg(str`Show all ${groupPluralTitle}`)\n : msg(str`Only show ${titleText}`);\n const hideText = msg(str`Hide ${titleText}`);\n const unhideText = msg(str`Unhide ${titleText}`);\n const showHideText = facetHidden ? unhideText : hideText;\n const ariaLabel = msg(\n str`${titleText}, ${new Intl.NumberFormat(getLocale()).format(bucket.count)} results`,\n );\n\n const showOnlyClicked = onCheckboxClick\n ? (e: Event) => onCheckboxClick(e, false)\n : undefined;\n const hideClicked = onCheckboxClick\n ? (e: Event) => onCheckboxClick(e, true)\n : undefined;\n\n // Added data-testid for Playwright testing\n return html`\n <div class=\"facet-row-container\">\n <div class=\"facet-checkboxes\">\n <input\n type=\"checkbox\"\n .name=${facetType}\n .value=${bucket.key}\n @click=${showOnlyClicked}\n .checked=${facetSelected}\n class=\"select-facet-checkbox\"\n title=${onlyShowText}\n id=${showOnlyCheckboxId}\n data-testid=${showOnlyCheckboxId}\n />\n <div\n class=\"hide-facet-container\"\n ?hidden=${omitHideButton && !facetHidden}\n >\n <input\n type=\"checkbox\"\n id=${negativeCheckboxId}\n .name=${facetType}\n .value=${bucket.key}\n @click=${hideClicked}\n .checked=${facetHidden}\n class=\"hide-facet-checkbox\"\n />\n <label\n for=${negativeCheckboxId}\n class=\"hide-facet-icon${facetHidden ? ' active' : ''}\"\n title=${showHideText}\n data-testid=${negativeCheckboxId}\n >\n <span class=\"sr-only\">${showHideText}</span>\n <span class=\"eye eye-open\">${eyeIcon}</span>\n <span class=\"eye eye-closed\">${eyeClosedIcon}</span>\n </label>\n </div>\n </div>\n <label\n for=${showOnlyCheckboxId}\n class=\"facet-info-display\"\n title=${onlyShowText}\n aria-label=${ariaLabel}\n >\n <div class=\"facet-title\">${bucketTextDisplay}</div>\n <div class=\"facet-count\">${bucketCountText}</div>\n </label>\n </div>\n `;\n}\n\nconst facetRowBorderTop = css`var(--facet-row-border-top, 1px solid transparent)`;\nconst facetRowBorderBottom = css`var(--facet-row-border-bottom, 1px solid transparent)`;\nconst checkboxHeight = css`15px`;\n\n/**\n * Styles for `facetRowTemplate`. Include `srOnlyStyle` alongside these.\n */\nexport const facetRowStyles = css`\n .facet-checkboxes {\n margin: 0 5px 0 0;\n display: flex;\n height: ${checkboxHeight};\n }\n .facet-checkboxes input:first-child {\n margin-right: 5px;\n }\n .facet-checkboxes input {\n height: ${checkboxHeight};\n width: ${checkboxHeight};\n margin: 0;\n }\n .facet-row-container {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 0 auto;\n padding: 0.25rem 0;\n height: auto;\n border-top: ${facetRowBorderTop};\n border-bottom: ${facetRowBorderBottom};\n }\n .facet-info-display {\n display: flex;\n flex: 1 1 0%;\n cursor: pointer;\n flex-wrap: wrap;\n }\n .facet-title {\n word-break: break-word;\n display: inline-block;\n flex: 1 1 0%;\n }\n .facet-note {\n color: #bbb;\n }\n .facet-count {\n text-align: right;\n }\n .select-facet-checkbox {\n cursor: pointer;\n display: inline-block;\n }\n .hide-facet-checkbox {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n .hide-facet-checkbox:focus-visible + .hide-facet-icon {\n outline-style: auto;\n outline-offset: 2px;\n }\n .hide-facet-icon {\n width: ${checkboxHeight};\n height: ${checkboxHeight};\n cursor: pointer;\n display: flex;\n }\n .eye {\n width: ${checkboxHeight};\n height: ${checkboxHeight};\n opacity: 0.3;\n }\n .hide-facet-icon:hover .eye,\n .active .eye {\n opacity: 1;\n }\n .hide-facet-icon:hover .eye-open,\n .hide-facet-icon .eye-closed {\n display: none;\n }\n .hide-facet-icon:hover .eye-closed,\n .hide-facet-icon.active .eye-closed {\n display: inline;\n }\n .hide-facet-icon.active .eye-open {\n display: none;\n }\n .sorting-icon {\n cursor: pointer;\n }\n\n a:link,\n a:visited {\n text-decoration: none;\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n`;\n"]}
|
package/dist/src/locales/es.d.ts
CHANGED
|
@@ -9,9 +9,7 @@ export declare const templates: {
|
|
|
9
9
|
s078f25f106da59fe: string;
|
|
10
10
|
s08118dc8355966af: string;
|
|
11
11
|
s0864063d5cb2f8f1: string;
|
|
12
|
-
|
|
13
|
-
s087d1507b52a97fe: import("@lit/localize").StrResult;
|
|
14
|
-
s087d1707b52a9b64: import("@lit/localize").StrResult;
|
|
12
|
+
s088e3807b53946aa: string;
|
|
15
13
|
s089297421a0eedd6: string;
|
|
16
14
|
s08e6bd98452e6bb9: string;
|
|
17
15
|
s09134b07b5aacab4: string;
|
|
@@ -94,7 +92,6 @@ export declare const templates: {
|
|
|
94
92
|
s76f86c7568d51abc: string;
|
|
95
93
|
s77fd410a7f33bb55: string;
|
|
96
94
|
s7abf4f48abeedddb: string;
|
|
97
|
-
s7ac239996dd6d909: import("@lit/localize").StrResult;
|
|
98
95
|
s7cd7aa6578a69dab: string;
|
|
99
96
|
s7da36f2d9999ec0f: string;
|
|
100
97
|
s7f3437809d931336: string;
|
|
@@ -178,7 +175,6 @@ export declare const templates: {
|
|
|
178
175
|
sd8c92230dc431a1b: import("@lit/localize").StrResult;
|
|
179
176
|
sdbf79727b3cfcbae: string;
|
|
180
177
|
sdd1743c69f17706e: import("@lit/localize").StrResult;
|
|
181
|
-
sddc27cc22328fbf0: import("@lit/localize").StrResult;
|
|
182
178
|
sdf69091630b88e37: import("@lit/localize").StrResult;
|
|
183
179
|
sdf6c22ec03252c91: import("@lit/localize").StrResult;
|
|
184
180
|
se0ce95409b2f48b1: import("@lit/localize").StrResult;
|
|
@@ -196,7 +192,6 @@ export declare const templates: {
|
|
|
196
192
|
sefcf950b3cc4fc3b: string;
|
|
197
193
|
sf40c9c2d1e9606c6: string;
|
|
198
194
|
sf4ef1c44841c44e6: string;
|
|
199
|
-
sf95b96048b8e537d: import("@lit/localize").StrResult;
|
|
200
195
|
sfaa12ceed0995556: import("@lit/localize").StrResult;
|
|
201
196
|
sfc4264fee3bf9b72: string;
|
|
202
197
|
sfcc069f51592918b: string;
|
package/dist/src/locales/es.js
CHANGED
|
@@ -23,9 +23,7 @@ export const templates = {
|
|
|
23
23
|
s078f25f106da59fe: `Borrar todos los filtros`,
|
|
24
24
|
s08118dc8355966af: `Tu búsqueda no coincide con ningún elemento de esta colección. Prueba con otras palabras o una búsqueda más general.`,
|
|
25
25
|
s0864063d5cb2f8f1: `Tipo de medio`,
|
|
26
|
-
|
|
27
|
-
s087d1507b52a97fe: str `${0}K`,
|
|
28
|
-
s087d1707b52a9b64: str `${0}M`,
|
|
26
|
+
s088e3807b53946aa: `es`,
|
|
29
27
|
s089297421a0eedd6: `reseñas`,
|
|
30
28
|
s08e6bd98452e6bb9: `Audio`,
|
|
31
29
|
s09134b07b5aacab4: `Por`,
|
|
@@ -108,7 +106,6 @@ export const templates = {
|
|
|
108
106
|
s76f86c7568d51abc: `Lo sentimos, no se pudieron cargar estos valores. Inténtalo de nuevo más tarde.`,
|
|
109
107
|
s77fd410a7f33bb55: `Los filtros no están disponibles temporalmente.`,
|
|
110
108
|
s7abf4f48abeedddb: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de favoritos.`,
|
|
111
|
-
s7ac239996dd6d909: str `${0} millones`,
|
|
112
109
|
s7cd7aa6578a69dab: `Programa`,
|
|
113
110
|
s7da36f2d9999ec0f: `Cita de TV`,
|
|
114
111
|
s7f3437809d931336: `Reseñas`,
|
|
@@ -192,7 +189,6 @@ export const templates = {
|
|
|
192
189
|
sd8c92230dc431a1b: str `${0}, ${1} resultados`,
|
|
193
190
|
sdbf79727b3cfcbae: `Patrocinadores`,
|
|
194
191
|
sdd1743c69f17706e: str `${0} gigabytes`,
|
|
195
|
-
sddc27cc22328fbf0: str `${0} mil millones`,
|
|
196
192
|
sdf69091630b88e37: str `${0} megabyte`,
|
|
197
193
|
sdf6c22ec03252c91: str `Filtrar ${0}`,
|
|
198
194
|
se0ce95409b2f48b1: str `${0} petabyte`,
|
|
@@ -210,7 +206,6 @@ export const templates = {
|
|
|
210
206
|
sefcf950b3cc4fc3b: `Idioma`,
|
|
211
207
|
sf40c9c2d1e9606c6: `Selecciona los filtros`,
|
|
212
208
|
sf4ef1c44841c44e6: `Tipos de medio`,
|
|
213
|
-
sf95b96048b8e537d: str `${0} mil`,
|
|
214
209
|
sfaa12ceed0995556: str `Archivista desde ${0}`,
|
|
215
210
|
sfc4264fee3bf9b72: `Difuminado`,
|
|
216
211
|
sfcc069f51592918b: `Películas de __QUERY`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"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","sourcesContent":["// Do not modify this file by hand!\n// Re-generate this file by running lit-localize\n\nimport { html } from 'lit';\nimport { str } from '@lit/localize';\n\n/* eslint-disable no-irregular-whitespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const templates = {\n h13064d5156c615de: html`El motor de búsqueda encontró un error al cargar esta\n colección. Si el problema continúa, avísanos en\n <a href=\"mailto:info@archive.org\">info@archive.org</a>.`,\n h920c92659184f0bc: html`El motor de búsqueda encontró un error, que puede\n tener que ver con tu búsqueda.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Consejos para construir búsquedas.\n </a> `,\n s01a8d1dbd588ac19: `Mostrar la página anterior de valores`,\n s027d72711d00e2ff: `Estadísticas de la cuenta`,\n s03c4a59d394f8285: `Deseleccionar todo`,\n s04a2e4a6caf07c66: `Selecciona los elementos que quieres quitar`,\n s05b4f5c0ceaf9a4c: `Creadores`,\n s078f25f106da59fe: `Borrar todos los filtros`,\n s08118dc8355966af: `Tu búsqueda no coincide con ningún elemento de esta colección. Prueba con otras palabras o una búsqueda más general.`,\n s0864063d5cb2f8f1: `Tipo de medio`,\n s087d0e07b52a8c19: str`${0}B`,\n s087d1507b52a97fe: str`${0}K`,\n s087d1707b52a9b64: str`${0}M`,\n s089297421a0eedd6: `reseñas`,\n s08e6bd98452e6bb9: `Audio`,\n s09134b07b5aacab4: `Por`,\n s09352207b5c76b6f: `TV`,\n s10badbbb7458756b: str`Buscar ${0}…`,\n s10c473ba9d85039c: `Aplicar el rango de fechas`,\n s1228605ee65ddefa: str`${0} resultado`,\n s125a86b2f45bbb25: str`${0} elementos`,\n s1348f0497a99fe1b: `Quitar este elemento de la lista`,\n s1649fb48f787df05: str`${0}: ${1} resultados`,\n s169b68b0d70d64f4: str`${0} terabytes`,\n s16a6528db8e36fe5: `Mostrar la página siguiente de valores`,\n s1895d4e46cff35f9: `Ocultos:`,\n s190e4571d3f17068: str`${0} zettabytes`,\n s1aa21b9c0ffa83c2: `Filtrar por la letra del título`,\n s1b6ac21f2337d642: `Fecha de reseña`,\n s2037bf213b8e419b: `Error: no se pudieron quitar los elementos`,\n s22759aae8f547d20: `Borrar el filtro`,\n s2492f5fb1b05b45e: `Texto`,\n s24d45627f1e95f7a: `favoritos`,\n s26a52753e6884683: `Mostrar el panel de filtros`,\n s2805bb246d30384a: `Seleccionados:`,\n s2c6298bfef78c37e: `Vista de mosaico`,\n s2ceb11be2290bb1b: `Cancelar`,\n s2e505ec7b158a1a6: str`${0} petabytes`,\n s320992e58900cc86: str`${0} seleccionados`,\n s321d1672949e1c4c: `filtros`,\n s322628256693c6d8: `No se pudieron cargar las opciones, inténtalo de nuevo más tarde`,\n s3297cc6f08d7b40a: `Imágenes de __QUERY`,\n s350e83d078cf47d6: `Gestionar los elementos en Item Manager`,\n s355c4153fe27a589: `No se han encontrado valores que coincidan.`,\n s3659ff5488b62143: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de archivos web.`,\n s37c1658491ef819c: str`${0} yottabyte`,\n s387a4a41718122cb: str`${0} resultados`,\n s3d93f9ea0c5a13fa: `Imagen`,\n s3f5390ecd7d14626: `Colecciones`,\n s40d76f1f51639ec0: `Persona`,\n s42b68a1842b8ae58: `Idiomas`,\n s4369ef9b51b71a0b: `Pulsa la flecha abajo para ver la vista previa del elemento`,\n s45a359a3fa397256: `Vista de lista`,\n s46728ac92301a821: `Estadísticas del elemento`,\n s471bd7615c164fb6: `Año de publicación`,\n s47d3bb78437e7f74: `Radio`,\n s4854cd48f30ff8ee: `Personas`,\n s4a8d47364336fa6e: str`Mostrar solo ${0}`,\n s4bfc4d609ee1ab33: `Archivado`,\n s4c1025a7d399cd6b: `Más filtros de:`,\n s4d53add3007ee36d: str`${0} kilobytes`,\n s4d5665b24e24b9e3: `Vista de lista compacta`,\n s4e1b7bc897f8c089: `Quitar elementos`,\n s4f11a5992a021fa2: `Filtrar por cadena`,\n s4f7142f34f35ed6d: `Inicia sesión para ver este elemento`,\n s5523f131e71b785c: str`${0} exabytes`,\n s5643568b7c038f43: `Resultados de la búsqueda`,\n s576d4967e1ff7986: str`${0} bytes`,\n s5808b4b4c999bd8c: str`${0} megabytes`,\n s583ff43301fa7817: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de favoritos.`,\n s5b528a7f6c0c40af: `Volumen`,\n s5c225a179e34f704: `Valoración media`,\n s5c73979f691e7fcc: `volumen|número`,\n s5d929ff1619ac0c9: `Buscar`,\n s5f43af3669b1e098: `Fuente`,\n s60b34c3c17dc35bd: `Años`,\n s60ca4026935af5bd: `Forma parte de`,\n s621283dc7bb413cf: `Fecha Agregada`,\n s640f3c29000a4c59: str`Mostrar todo: ${0}`,\n s6471716d93a86047: str`${0} exabyte`,\n s675ca32d5ae11dcc: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de subidas.`,\n s6793629c1db37a66: str`por ${0}`,\n s6a3c8edbec8d73b4: str`${0} elemento`,\n s6b35590c360852a5: `Fecha de archivo`,\n s6be3ee5386181ff1: `Anuncio político`,\n s6d3b5b0561ba34c9: `Publicado`,\n s6e42e5e330244f67: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de archivos web.`,\n s6fc9985cacb3eaa2: str`Ver ${0}`,\n s70a5d875c5467e57: `Cita`,\n s71a5c9f4b68ef4d4: `Cantidad`,\n s74aa0119e62b2b51: `Web`,\n s74cba6ca50670aa9: str`${0} gigabyte`,\n s76f86c7568d51abc: `Lo sentimos, no se pudieron cargar estos valores. Inténtalo de nuevo más tarde.`,\n s77fd410a7f33bb55: `Los filtros no están disponibles temporalmente.`,\n s7abf4f48abeedddb: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de favoritos.`,\n s7ac239996dd6d909: str`${0} millones`,\n s7cd7aa6578a69dab: `Programa`,\n s7da36f2d9999ec0f: `Cita de TV`,\n s7f3437809d931336: `Reseñas`,\n s819258a281266f50: `visualizaciones semanales`,\n s846b3790b6e25c1c: `Cuenta`,\n s84d3dbcd121dd01b: `descendente`,\n s85186a61e0d55bac: `Vídeo`,\n s879330fe73e46610: str`Deseleccionar ${0}`,\n s8865f02d9ebbd0f5: `Temas`,\n s890e983a7be64da4: `Resultado`,\n s8b153325befe824b: `Fecha de publicación`,\n s8c6eb24d88673ed6: `Obras escritas de __QUERY`,\n s8ca015950940c078: `clips`,\n s8cda828dac449ea5: `Borrar todo`,\n s8e68b824b99140a1: `ascendente`,\n s8ef9b6c2af31a130: `Visualizaciones semanales`,\n s8f87ca21cd0e0907: str`Ver más: ${0}`,\n s8fd53d9e642d729c: `Ocultar el panel de filtros`,\n s9027f0f301703c8b: str`Ocultar ${0}`,\n s90a8434ed9c2a23f: `Verificación de datos`,\n s919c97efeda9854f: str`${0} terabyte`,\n s91c95e3f33defa93: `Tipo de medio:`,\n s963a29c7019722e9: `Patrocinador`,\n s984a5e18d85b6d57: str`${0} ${1}`,\n s99181a7e454a7a81: `Ampliar el histograma de fechas`,\n s99f110d27e30b289: `Título`,\n s9b288e9b7f945b0c: `Ordenar por:`,\n s9ce6e713435f440c: `Filtrar por la letra del creador`,\n s9cfa7823fc62aba3: `Buscando…`,\n s9dc9dd05aab83a09: `Tipo de clip`,\n s9fb0e3bc7de4bf8f: `Siempre disponible`,\n sa052f7f79d739859: `Anuncio político de TV`,\n sa4610b7e117b7870: `Para empezar a buscar, escribe un término en el cuadro de arriba y pulsa \"Ir\".`,\n sa471309f46635717: `Verificación de datos de TV`,\n sa508c606cd13dcc5: `Filtrar por programa`,\n sa63f9a6193ff70ad: `Opciones de orden`,\n sa666712981e141a5: `Fecha de favorito`,\n sa6f2645578b2d2bc: `Año`,\n sa731b8677f830182: `El contenido puede ser inapropiado`,\n sa7eea45fe1e4d231: `Colección`,\n sa8beb6b1182241ac: `Filtros`,\n sab1e212a875eb996: `Tu búsqueda no coincide con ningún elemento del Archive. Prueba con otras palabras o una búsqueda más general.`,\n sabc57021558fd9c2: `(Búsqueda guardada en favoritos)`,\n sac8256732f2ee1e5: `Datos`,\n sad216f43f9f9c91d: str`${0} yottabytes`,\n saf30fc1eade20268: `Relevancia`,\n sb0ff4efb0328eb4b: `Detalles del error:`,\n sb200fe325d3e0ab3: `La opción de orden actual no tiene direcciones`,\n sb37c0f28ca696ddf: `Música de __QUERY`,\n sb3f922fbbc355ef7: `Creador`,\n sb5228c24c24cc18a: `Esta colección no contiene elementos que se puedan ver.`,\n sb58c82618718d16e: `Quitar los elementos seleccionados`,\n sb5b8614f47ae519d: `subidas`,\n sb7adab38b780c834: str`Cambiar a orden ${0}`,\n sb89d8d8bc0c08e98: `Reseñado`,\n sbb362f844e236028: `Préstamo de 14 días`,\n sbbc53e0e54d7946f: `Tema`,\n sbea4e386905763f6: `Disponibilidad`,\n sc1a39f411862864b: `Biblioteca de préstamo`,\n sc32bb2e1a8047c9a: `Filtrar por:`,\n sc6432b98425e5737: `Pulsa la flecha arriba para salir de la vista previa del elemento`,\n sc81c9ceea4c97767: `Quitando los elementos seleccionados...`,\n sc914626c031e3608: `Programas`,\n sca1a826088564455: `Resultados`,\n scc44d457ed96108c: `Visualizaciones totales`,\n scff6c3b650f37317: `Elemento sin título`,\n sd01d6e9b9f301ee6: `Más...`,\n sd0b6082239185272: `Seleccionar todo`,\n sd0d55e8a5b30ddbc: `Más información`,\n sd1d0f1053fc888f0: `filtro de rango`,\n sd1f81a84eeb7c29b: `Película`,\n sd2223afb7d6b100d: `Tipo`,\n sd2dc41d0d42a188b: `¿Seguro que quieres quitar estos elementos?`,\n sd574f2d5de170480: `Aplicar los filtros`,\n sd58c6c0227ea9fc3: `Selecciona un rango de fechas`,\n sd63d0aa1170b5d4e: `Tipos de clip`,\n sd6ac8009a2a7effb: `E-tree`,\n sd6dcb78ea83e6111: str`${0} byte`,\n sd733957613ccaa59: str`Valores de ${0}`,\n sd8adbc60f2886b80: `Número`,\n sd8c92230dc431a1b: str`${0}, ${1} resultados`,\n sdbf79727b3cfcbae: `Patrocinadores`,\n sdd1743c69f17706e: str`${0} gigabytes`,\n sddc27cc22328fbf0: str`${0} mil millones`,\n sdf69091630b88e37: str`${0} megabyte`,\n sdf6c22ec03252c91: str`Filtrar ${0}`,\n se0ce95409b2f48b1: str`${0} petabyte`,\n se1c1137c3638e1eb: `Fecha de publicación`,\n se1dd81cd767b2b98: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de subidas.`,\n se35de1f96af7ec6f: `Película`,\n se7bc8e5a2a50ab94: `Temas`,\n se871c20e39ace2a5: `Añadido`,\n se9ab756faba48167: `Se ha producido un error al quitar los elementos. Inténtalo de nuevo dentro de unos minutos.`,\n sea80c016fb691d2e: `de 5 estrellas`,\n seaa8073d775d898b: str`${0} zettabyte`,\n seb88e51c2513b62c: str`${0} kilobyte`,\n sebd0f6fd006a98ac: `visualizaciones totales`,\n see0d40a42ac78160: str`Mostrar ${0}`,\n sefcf950b3cc4fc3b: `Idioma`,\n sf40c9c2d1e9606c6: `Selecciona los filtros`,\n sf4ef1c44841c44e6: `Tipos de medio`,\n sf95b96048b8e537d: str`${0} mil`,\n sfaa12ceed0995556: str`Archivista desde ${0}`,\n sfc4264fee3bf9b72: `Difuminado`,\n sfcc069f51592918b: `Películas de __QUERY`,\n sfdaff50162b13cc2: str`Volumen ${0}, número ${1}`,\n sfec0c302ab140e30: `Software`,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"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","sourcesContent":["// Do not modify this file by hand!\n// Re-generate this file by running lit-localize\n\nimport { html } from 'lit';\nimport { str } from '@lit/localize';\n\n/* eslint-disable no-irregular-whitespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const templates = {\n h13064d5156c615de: html`El motor de búsqueda encontró un error al cargar esta\n colección. Si el problema continúa, avísanos en\n <a href=\"mailto:info@archive.org\">info@archive.org</a>.`,\n h920c92659184f0bc: html`El motor de búsqueda encontró un error, que puede\n tener que ver con tu búsqueda.\n <a\n href=\"https://help.archive.org/help/search-building-powerful-complex-queries/\"\n >\n Consejos para construir búsquedas.\n </a> `,\n s01a8d1dbd588ac19: `Mostrar la página anterior de valores`,\n s027d72711d00e2ff: `Estadísticas de la cuenta`,\n s03c4a59d394f8285: `Deseleccionar todo`,\n s04a2e4a6caf07c66: `Selecciona los elementos que quieres quitar`,\n s05b4f5c0ceaf9a4c: `Creadores`,\n s078f25f106da59fe: `Borrar todos los filtros`,\n s08118dc8355966af: `Tu búsqueda no coincide con ningún elemento de esta colección. Prueba con otras palabras o una búsqueda más general.`,\n s0864063d5cb2f8f1: `Tipo de medio`,\n s088e3807b53946aa: `es`,\n s089297421a0eedd6: `reseñas`,\n s08e6bd98452e6bb9: `Audio`,\n s09134b07b5aacab4: `Por`,\n s09352207b5c76b6f: `TV`,\n s10badbbb7458756b: str`Buscar ${0}…`,\n s10c473ba9d85039c: `Aplicar el rango de fechas`,\n s1228605ee65ddefa: str`${0} resultado`,\n s125a86b2f45bbb25: str`${0} elementos`,\n s1348f0497a99fe1b: `Quitar este elemento de la lista`,\n s1649fb48f787df05: str`${0}: ${1} resultados`,\n s169b68b0d70d64f4: str`${0} terabytes`,\n s16a6528db8e36fe5: `Mostrar la página siguiente de valores`,\n s1895d4e46cff35f9: `Ocultos:`,\n s190e4571d3f17068: str`${0} zettabytes`,\n s1aa21b9c0ffa83c2: `Filtrar por la letra del título`,\n s1b6ac21f2337d642: `Fecha de reseña`,\n s2037bf213b8e419b: `Error: no se pudieron quitar los elementos`,\n s22759aae8f547d20: `Borrar el filtro`,\n s2492f5fb1b05b45e: `Texto`,\n s24d45627f1e95f7a: `favoritos`,\n s26a52753e6884683: `Mostrar el panel de filtros`,\n s2805bb246d30384a: `Seleccionados:`,\n s2c6298bfef78c37e: `Vista de mosaico`,\n s2ceb11be2290bb1b: `Cancelar`,\n s2e505ec7b158a1a6: str`${0} petabytes`,\n s320992e58900cc86: str`${0} seleccionados`,\n s321d1672949e1c4c: `filtros`,\n s322628256693c6d8: `No se pudieron cargar las opciones, inténtalo de nuevo más tarde`,\n s3297cc6f08d7b40a: `Imágenes de __QUERY`,\n s350e83d078cf47d6: `Gestionar los elementos en Item Manager`,\n s355c4153fe27a589: `No se han encontrado valores que coincidan.`,\n s3659ff5488b62143: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de archivos web.`,\n s37c1658491ef819c: str`${0} yottabyte`,\n s387a4a41718122cb: str`${0} resultados`,\n s3d93f9ea0c5a13fa: `Imagen`,\n s3f5390ecd7d14626: `Colecciones`,\n s40d76f1f51639ec0: `Persona`,\n s42b68a1842b8ae58: `Idiomas`,\n s4369ef9b51b71a0b: `Pulsa la flecha abajo para ver la vista previa del elemento`,\n s45a359a3fa397256: `Vista de lista`,\n s46728ac92301a821: `Estadísticas del elemento`,\n s471bd7615c164fb6: `Año de publicación`,\n s47d3bb78437e7f74: `Radio`,\n s4854cd48f30ff8ee: `Personas`,\n s4a8d47364336fa6e: str`Mostrar solo ${0}`,\n s4bfc4d609ee1ab33: `Archivado`,\n s4c1025a7d399cd6b: `Más filtros de:`,\n s4d53add3007ee36d: str`${0} kilobytes`,\n s4d5665b24e24b9e3: `Vista de lista compacta`,\n s4e1b7bc897f8c089: `Quitar elementos`,\n s4f11a5992a021fa2: `Filtrar por cadena`,\n s4f7142f34f35ed6d: `Inicia sesión para ver este elemento`,\n s5523f131e71b785c: str`${0} exabytes`,\n s5643568b7c038f43: `Resultados de la búsqueda`,\n s576d4967e1ff7986: str`${0} bytes`,\n s5808b4b4c999bd8c: str`${0} megabytes`,\n s583ff43301fa7817: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de favoritos.`,\n s5b528a7f6c0c40af: `Volumen`,\n s5c225a179e34f704: `Valoración media`,\n s5c73979f691e7fcc: `volumen|número`,\n s5d929ff1619ac0c9: `Buscar`,\n s5f43af3669b1e098: `Fuente`,\n s60b34c3c17dc35bd: `Años`,\n s60ca4026935af5bd: `Forma parte de`,\n s621283dc7bb413cf: `Fecha Agregada`,\n s640f3c29000a4c59: str`Mostrar todo: ${0}`,\n s6471716d93a86047: str`${0} exabyte`,\n s675ca32d5ae11dcc: `Nota: estos elementos pueden tardar unos minutos en dejar de aparecer en tu lista de subidas.`,\n s6793629c1db37a66: str`por ${0}`,\n s6a3c8edbec8d73b4: str`${0} elemento`,\n s6b35590c360852a5: `Fecha de archivo`,\n s6be3ee5386181ff1: `Anuncio político`,\n s6d3b5b0561ba34c9: `Publicado`,\n s6e42e5e330244f67: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de archivos web.`,\n s6fc9985cacb3eaa2: str`Ver ${0}`,\n s70a5d875c5467e57: `Cita`,\n s71a5c9f4b68ef4d4: `Cantidad`,\n s74aa0119e62b2b51: `Web`,\n s74cba6ca50670aa9: str`${0} gigabyte`,\n s76f86c7568d51abc: `Lo sentimos, no se pudieron cargar estos valores. Inténtalo de nuevo más tarde.`,\n s77fd410a7f33bb55: `Los filtros no están disponibles temporalmente.`,\n s7abf4f48abeedddb: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de favoritos.`,\n s7cd7aa6578a69dab: `Programa`,\n s7da36f2d9999ec0f: `Cita de TV`,\n s7f3437809d931336: `Reseñas`,\n s819258a281266f50: `visualizaciones semanales`,\n s846b3790b6e25c1c: `Cuenta`,\n s84d3dbcd121dd01b: `descendente`,\n s85186a61e0d55bac: `Vídeo`,\n s879330fe73e46610: str`Deseleccionar ${0}`,\n s8865f02d9ebbd0f5: `Temas`,\n s890e983a7be64da4: `Resultado`,\n s8b153325befe824b: `Fecha de publicación`,\n s8c6eb24d88673ed6: `Obras escritas de __QUERY`,\n s8ca015950940c078: `clips`,\n s8cda828dac449ea5: `Borrar todo`,\n s8e68b824b99140a1: `ascendente`,\n s8ef9b6c2af31a130: `Visualizaciones semanales`,\n s8f87ca21cd0e0907: str`Ver más: ${0}`,\n s8fd53d9e642d729c: `Ocultar el panel de filtros`,\n s9027f0f301703c8b: str`Ocultar ${0}`,\n s90a8434ed9c2a23f: `Verificación de datos`,\n s919c97efeda9854f: str`${0} terabyte`,\n s91c95e3f33defa93: `Tipo de medio:`,\n s963a29c7019722e9: `Patrocinador`,\n s984a5e18d85b6d57: str`${0} ${1}`,\n s99181a7e454a7a81: `Ampliar el histograma de fechas`,\n s99f110d27e30b289: `Título`,\n s9b288e9b7f945b0c: `Ordenar por:`,\n s9ce6e713435f440c: `Filtrar por la letra del creador`,\n s9cfa7823fc62aba3: `Buscando…`,\n s9dc9dd05aab83a09: `Tipo de clip`,\n s9fb0e3bc7de4bf8f: `Siempre disponible`,\n sa052f7f79d739859: `Anuncio político de TV`,\n sa4610b7e117b7870: `Para empezar a buscar, escribe un término en el cuadro de arriba y pulsa \"Ir\".`,\n sa471309f46635717: `Verificación de datos de TV`,\n sa508c606cd13dcc5: `Filtrar por programa`,\n sa63f9a6193ff70ad: `Opciones de orden`,\n sa666712981e141a5: `Fecha de favorito`,\n sa6f2645578b2d2bc: `Año`,\n sa731b8677f830182: `El contenido puede ser inapropiado`,\n sa7eea45fe1e4d231: `Colección`,\n sa8beb6b1182241ac: `Filtros`,\n sab1e212a875eb996: `Tu búsqueda no coincide con ningún elemento del Archive. Prueba con otras palabras o una búsqueda más general.`,\n sabc57021558fd9c2: `(Búsqueda guardada en favoritos)`,\n sac8256732f2ee1e5: `Datos`,\n sad216f43f9f9c91d: str`${0} yottabytes`,\n saf30fc1eade20268: `Relevancia`,\n sb0ff4efb0328eb4b: `Detalles del error:`,\n sb200fe325d3e0ab3: `La opción de orden actual no tiene direcciones`,\n sb37c0f28ca696ddf: `Música de __QUERY`,\n sb3f922fbbc355ef7: `Creador`,\n sb5228c24c24cc18a: `Esta colección no contiene elementos que se puedan ver.`,\n sb58c82618718d16e: `Quitar los elementos seleccionados`,\n sb5b8614f47ae519d: `subidas`,\n sb7adab38b780c834: str`Cambiar a orden ${0}`,\n sb89d8d8bc0c08e98: `Reseñado`,\n sbb362f844e236028: `Préstamo de 14 días`,\n sbbc53e0e54d7946f: `Tema`,\n sbea4e386905763f6: `Disponibilidad`,\n sc1a39f411862864b: `Biblioteca de préstamo`,\n sc32bb2e1a8047c9a: `Filtrar por:`,\n sc6432b98425e5737: `Pulsa la flecha arriba para salir de la vista previa del elemento`,\n sc81c9ceea4c97767: `Quitando los elementos seleccionados...`,\n sc914626c031e3608: `Programas`,\n sca1a826088564455: `Resultados`,\n scc44d457ed96108c: `Visualizaciones totales`,\n scff6c3b650f37317: `Elemento sin título`,\n sd01d6e9b9f301ee6: `Más...`,\n sd0b6082239185272: `Seleccionar todo`,\n sd0d55e8a5b30ddbc: `Más información`,\n sd1d0f1053fc888f0: `filtro de rango`,\n sd1f81a84eeb7c29b: `Película`,\n sd2223afb7d6b100d: `Tipo`,\n sd2dc41d0d42a188b: `¿Seguro que quieres quitar estos elementos?`,\n sd574f2d5de170480: `Aplicar los filtros`,\n sd58c6c0227ea9fc3: `Selecciona un rango de fechas`,\n sd63d0aa1170b5d4e: `Tipos de clip`,\n sd6ac8009a2a7effb: `E-tree`,\n sd6dcb78ea83e6111: str`${0} byte`,\n sd733957613ccaa59: str`Valores de ${0}`,\n sd8adbc60f2886b80: `Número`,\n sd8c92230dc431a1b: str`${0}, ${1} resultados`,\n sdbf79727b3cfcbae: `Patrocinadores`,\n sdd1743c69f17706e: str`${0} gigabytes`,\n sdf69091630b88e37: str`${0} megabyte`,\n sdf6c22ec03252c91: str`Filtrar ${0}`,\n se0ce95409b2f48b1: str`${0} petabyte`,\n se1c1137c3638e1eb: `Fecha de publicación`,\n se1dd81cd767b2b98: `Nota: este elemento puede tardar unos minutos en dejar de aparecer en tu lista de subidas.`,\n se35de1f96af7ec6f: `Película`,\n se7bc8e5a2a50ab94: `Temas`,\n se871c20e39ace2a5: `Añadido`,\n se9ab756faba48167: `Se ha producido un error al quitar los elementos. Inténtalo de nuevo dentro de unos minutos.`,\n sea80c016fb691d2e: `de 5 estrellas`,\n seaa8073d775d898b: str`${0} zettabyte`,\n seb88e51c2513b62c: str`${0} kilobyte`,\n sebd0f6fd006a98ac: `visualizaciones totales`,\n see0d40a42ac78160: str`Mostrar ${0}`,\n sefcf950b3cc4fc3b: `Idioma`,\n sf40c9c2d1e9606c6: `Selecciona los filtros`,\n sf4ef1c44841c44e6: `Tipos de medio`,\n sfaa12ceed0995556: str`Archivista desde ${0}`,\n sfc4264fee3bf9b72: `Difuminado`,\n sfcc069f51592918b: `Películas de __QUERY`,\n sfdaff50162b13cc2: str`Volumen ${0}, número ${1}`,\n sfec0c302ab140e30: `Software`,\n};\n"]}
|
|
@@ -2,19 +2,21 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { LitElement, html, css } from 'lit';
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js';
|
|
4
4
|
import { localized, msg, str } from '@lit/localize';
|
|
5
|
+
import { getLocale } from '../utils/get-locale';
|
|
5
6
|
let AlphaBarTooltip = class AlphaBarTooltip extends LitElement {
|
|
6
7
|
constructor() {
|
|
7
8
|
super(...arguments);
|
|
8
9
|
this.numResults = 0;
|
|
9
10
|
}
|
|
10
11
|
render() {
|
|
12
|
+
const formattedCount = new Intl.NumberFormat(getLocale()).format(this.numResults);
|
|
11
13
|
return html `
|
|
12
14
|
<div id="tooltip-container" role="tooltip">
|
|
13
15
|
<div id="arrow"></div>
|
|
14
16
|
<div id="tooltip-text">
|
|
15
17
|
${this.numResults === 1
|
|
16
|
-
? msg(str `${
|
|
17
|
-
: msg(str `${
|
|
18
|
+
? msg(str `${formattedCount} result`)
|
|
19
|
+
: msg(str `${formattedCount} results`)}
|
|
18
20
|
</div>
|
|
19
21
|
</div>
|
|
20
22
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha-bar-tooltip.js","sourceRoot":"","sources":["../../../src/sort-filter-bar/alpha-bar-tooltip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"alpha-bar-tooltip.js","sourceRoot":"","sources":["../../../src/sort-filter-bar/alpha-bar-tooltip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAkB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIzC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QACuB,eAAU,GAAW,CAAC,CAAC;IAoDrD,CAAC;IAlDC,MAAM;QACJ,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAC9D,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,OAAO,IAAI,CAAA;;;;YAIH,IAAI,CAAC,UAAU,KAAK,CAAC;YACrB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,cAAc,SAAS,CAAC;YACpC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,cAAc,UAAU,CAAC;;;KAG5C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,MAAM,SAAS,GAAG,GAAG,CAAA,8BAA8B,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,CAAA,gCAAgC,CAAC;QAExD,OAAO,GAAG,CAAA;;;;;;;;;2BASa,WAAW;;;;gCAIN,SAAS;iCACR,SAAS;kBACxB,SAAS;;;;;;;;;;;;;KAatB,CAAC;IACJ,CAAC;CACF,CAAA;AApD6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAwB;AADxC,eAAe;IAF3B,aAAa,CAAC,mBAAmB,CAAC;IAClC,SAAS,EAAE;GACC,eAAe,CAqD3B","sourcesContent":["import { LitElement, html, css, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { localized, msg, str } from '@lit/localize';\nimport { getLocale } from '../utils/get-locale';\n\n@customElement('alpha-bar-tooltip')\n@localized()\nexport class AlphaBarTooltip extends LitElement {\n @property({ type: Number }) numResults: number = 0;\n\n render() {\n const formattedCount = new Intl.NumberFormat(getLocale()).format(\n this.numResults,\n );\n return html`\n <div id=\"tooltip-container\" role=\"tooltip\">\n <div id=\"arrow\"></div>\n <div id=\"tooltip-text\">\n ${this.numResults === 1\n ? msg(str`${formattedCount} result`)\n : msg(str`${formattedCount} results`)}\n </div>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n const arrowSize = css`var(--tooltipArrowSize, 5px)`;\n const arrowOffset = css`var(--tooltipArrowOffset, 0px)`;\n\n return css`\n #tooltip-container {\n width: max-content;\n max-width: 200px;\n pointer-events: none;\n }\n\n #arrow {\n position: relative;\n left: calc(50% + ${arrowOffset});\n top: 0;\n width: 0;\n height: 0;\n margin-top: calc(-1 * ${arrowSize});\n margin-left: calc(-1 * ${arrowSize});\n border: ${arrowSize} solid transparent;\n border-bottom-color: black;\n }\n\n #tooltip-text {\n padding: 3px 8px;\n border-radius: 4px;\n background-color: #000;\n color: white;\n font-size: 1.2rem;\n text-align: center;\n text-decoration: none;\n }\n `;\n }\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { LitElement, html, css, nothing } from 'lit';
|
|
3
3
|
import { customElement, property, state, query } from 'lit/decorators.js';
|
|
4
4
|
import { localized, msg, str } from '@lit/localize';
|
|
5
|
+
import { getLocale } from '../utils/get-locale';
|
|
5
6
|
import './alpha-bar-tooltip';
|
|
6
7
|
let AlphaBar = class AlphaBar extends LitElement {
|
|
7
8
|
constructor() {
|
|
@@ -35,7 +36,8 @@ let AlphaBar = class AlphaBar extends LitElement {
|
|
|
35
36
|
}
|
|
36
37
|
letterButtonTemplate(letter) {
|
|
37
38
|
const count = this.letterCounts?.[letter] ?? 0;
|
|
38
|
-
const
|
|
39
|
+
const formattedCount = new Intl.NumberFormat(getLocale()).format(count);
|
|
40
|
+
const ariaLabel = msg(str `${letter}: ${formattedCount} results`);
|
|
39
41
|
return html `
|
|
40
42
|
<button
|
|
41
43
|
aria-label=${ariaLabel}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha-bar.js","sourceRoot":"","sources":["../../../src/sort-filter-bar/alpha-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, nothing, TemplateResult } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { localized, msg, str } from '@lit/localize';\nimport type { PrefixFilterCounts } from '../models';\n\nimport './alpha-bar-tooltip';\nimport type { AlphaBarTooltip } from './alpha-bar-tooltip';\n\n@customElement('alpha-bar')\n@localized()\nexport class AlphaBar extends LitElement {\n @property({ type: String }) selectedLetter: string | null = null;\n\n @property({ type: Object }) letterCounts?: PrefixFilterCounts;\n\n @property({ type: String }) ariaLandmarkLabel?: string;\n\n @state()\n private tooltipShown: boolean = false;\n\n @state()\n private hoveredLetter?: string;\n\n @query('alpha-bar-tooltip')\n private tooltip?: AlphaBarTooltip;\n\n private readonly alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\n\n private get selectedUppercaseLetter(): string | undefined {\n return this.selectedLetter?.toUpperCase();\n }\n\n render() {\n return html`\n <section id=\"container\" aria-label=${this.ariaLandmarkLabel ?? nothing}>\n <ul>\n ${this.alphabet.map(\n letter => html`\n <li\n class=${letter === this.selectedUppercaseLetter\n ? 'selected'\n : nothing}\n @mousemove=${this.handleMouseMove}\n @mouseleave=${this.handleMouseLeave}\n >\n ${this.letterButtonTemplate(letter)}\n ${this.tooltipTemplate(letter)}\n </li>\n `,\n )}\n </ul>\n </section>\n `;\n }\n\n private letterButtonTemplate(letter: string) {\n const count = this.letterCounts?.[letter] ?? 0;\n const ariaLabel = msg(str`${letter}: ${count} results`);\n return html`\n <button\n aria-label=${ariaLabel}\n ?disabled=${!this.letterCounts?.[letter]}\n @click=${() => {\n this.letterClicked(letter);\n }}\n >\n ${letter}\n </button>\n `;\n }\n\n private tooltipTemplate(letter: string): TemplateResult | typeof nothing {\n if (this.hoveredLetter !== letter) return nothing;\n\n return this.tooltipShown\n ? html`<alpha-bar-tooltip\n data-letter=${letter}\n .numResults=${this.letterCounts?.[this.hoveredLetter] ?? 0}\n ></alpha-bar-tooltip>`\n : nothing;\n }\n\n private letterClicked(letter: string) {\n if (letter === this.selectedUppercaseLetter) {\n this.selectedLetter = null;\n } else {\n this.selectedLetter = letter;\n }\n this.dispatchEvent(\n new CustomEvent('letterChanged', {\n detail: { selectedLetter: this.selectedUppercaseLetter },\n }),\n );\n }\n\n private async handleMouseMove(e: MouseEvent) {\n const target = e.target as HTMLLIElement;\n if (target && !this.tooltipShown) {\n const targetLetter = target.textContent?.trim() ?? undefined;\n this.tooltipShown = true;\n this.hoveredLetter = targetLetter;\n\n await this.updateComplete;\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n if (this.tooltip && this.tooltip.dataset.letter === targetLetter) {\n this.positionTooltip(target);\n }\n }\n }\n\n private handleMouseLeave() {\n this.tooltipShown = false;\n this.hoveredLetter = undefined;\n }\n\n private positionTooltip(targetElmt: HTMLElement) {\n if (!this.tooltip) return;\n\n // Basic positioning is just to center the whole tooltip on the letter box.\n const tooltipWidth = this.tooltip.clientWidth;\n const letterWidth = targetElmt.clientWidth;\n let left = letterWidth / 2 - tooltipWidth / 2;\n\n // But we also need to ensure the tooltip doesn't flow outside the viewport.\n // First, calculate the full width of the document body, including margins\n // (but not including any scrollbar).\n const bodyStyle = getComputedStyle(document.body);\n const bodyMarginLeft = parseFloat(\n bodyStyle.getPropertyValue('margin-left'),\n );\n const bodyMarginRight = parseFloat(\n bodyStyle.getPropertyValue('margin-right'),\n );\n const bodyWidthWithMargin =\n document.body.clientWidth + bodyMarginLeft + bodyMarginRight;\n\n // Calculate the positions of the tooltip's left/right edges, and determine\n // how much they overflow the viewport by (if at all).\n const targetRect = targetElmt.getBoundingClientRect();\n const tooltipLeft = targetRect.left + left;\n const tooltipRight = tooltipLeft + tooltipWidth;\n const offset = 1; // How many pixels the tooltip must be offset from the left/right edges\n let overflowAmt;\n if (tooltipLeft < offset) {\n // Tooltip overflows left edge of viewport\n overflowAmt = tooltipLeft - offset;\n } else if (tooltipRight > bodyWidthWithMargin - offset) {\n // Tooltip overflows right edge of viewport\n overflowAmt = tooltipRight - bodyWidthWithMargin + offset;\n }\n\n // Apply any needed adjustment to the tooltip and its arrow to keep it in the viewport\n if (overflowAmt) {\n left -= overflowAmt;\n this.tooltip.style.setProperty(\n '--tooltipArrowOffset',\n `${overflowAmt}px`,\n );\n }\n\n this.tooltip.style.left = `${left}px`;\n this.tooltip.classList.add('fade-in');\n }\n\n static styles = css`\n h1 {\n font-size: 1.2rem;\n }\n\n #container {\n background-color: #ddd;\n color: #333;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);\n }\n\n ul {\n list-style: none;\n display: flex;\n margin: 0;\n padding: 0.5rem 1rem;\n justify-content: space-between;\n }\n\n ul li {\n position: relative;\n flex: 1;\n text-align: center;\n max-width: 2.5rem;\n border-radius: 4px;\n }\n\n li:hover:not(.selected) button:not(:disabled) {\n background-color: #c0c0c0;\n }\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n aspect-ratio: 1 / 1;\n }\n\n button {\n width: 100%;\n height: 100%;\n color: #333;\n appearance: none;\n background: none;\n border: none;\n border-radius: 4px;\n font-family: inherit;\n font-size: 1.2rem;\n cursor: pointer;\n }\n\n button:disabled {\n color: #aaa;\n cursor: default;\n }\n\n .selected {\n background-color: #2c2c2c;\n }\n\n .selected button {\n color: white;\n }\n\n alpha-bar-tooltip {\n position: absolute;\n top: 100%;\n left: -9999px;\n margin-top: 3px;\n z-index: 1;\n\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n alpha-bar-tooltip.fade-in {\n opacity: 1;\n }\n\n /* Make alphabet bar a 2-row container in small screen widths */\n @media screen and (max-width: 768px) {\n ul {\n display: grid;\n grid-template-columns: repeat(13, 1fr);\n }\n }\n `;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"alpha-bar.js","sourceRoot":"","sources":["../../../src/sort-filter-bar/alpha-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, nothing, TemplateResult } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { localized, msg, str } from '@lit/localize';\nimport type { PrefixFilterCounts } from '../models';\nimport { getLocale } from '../utils/get-locale';\n\nimport './alpha-bar-tooltip';\nimport type { AlphaBarTooltip } from './alpha-bar-tooltip';\n\n@customElement('alpha-bar')\n@localized()\nexport class AlphaBar extends LitElement {\n @property({ type: String }) selectedLetter: string | null = null;\n\n @property({ type: Object }) letterCounts?: PrefixFilterCounts;\n\n @property({ type: String }) ariaLandmarkLabel?: string;\n\n @state()\n private tooltipShown: boolean = false;\n\n @state()\n private hoveredLetter?: string;\n\n @query('alpha-bar-tooltip')\n private tooltip?: AlphaBarTooltip;\n\n private readonly alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\n\n private get selectedUppercaseLetter(): string | undefined {\n return this.selectedLetter?.toUpperCase();\n }\n\n render() {\n return html`\n <section id=\"container\" aria-label=${this.ariaLandmarkLabel ?? nothing}>\n <ul>\n ${this.alphabet.map(\n letter => html`\n <li\n class=${letter === this.selectedUppercaseLetter\n ? 'selected'\n : nothing}\n @mousemove=${this.handleMouseMove}\n @mouseleave=${this.handleMouseLeave}\n >\n ${this.letterButtonTemplate(letter)}\n ${this.tooltipTemplate(letter)}\n </li>\n `,\n )}\n </ul>\n </section>\n `;\n }\n\n private letterButtonTemplate(letter: string) {\n const count = this.letterCounts?.[letter] ?? 0;\n const formattedCount = new Intl.NumberFormat(getLocale()).format(count);\n const ariaLabel = msg(str`${letter}: ${formattedCount} results`);\n return html`\n <button\n aria-label=${ariaLabel}\n ?disabled=${!this.letterCounts?.[letter]}\n @click=${() => {\n this.letterClicked(letter);\n }}\n >\n ${letter}\n </button>\n `;\n }\n\n private tooltipTemplate(letter: string): TemplateResult | typeof nothing {\n if (this.hoveredLetter !== letter) return nothing;\n\n return this.tooltipShown\n ? html`<alpha-bar-tooltip\n data-letter=${letter}\n .numResults=${this.letterCounts?.[this.hoveredLetter] ?? 0}\n ></alpha-bar-tooltip>`\n : nothing;\n }\n\n private letterClicked(letter: string) {\n if (letter === this.selectedUppercaseLetter) {\n this.selectedLetter = null;\n } else {\n this.selectedLetter = letter;\n }\n this.dispatchEvent(\n new CustomEvent('letterChanged', {\n detail: { selectedLetter: this.selectedUppercaseLetter },\n }),\n );\n }\n\n private async handleMouseMove(e: MouseEvent) {\n const target = e.target as HTMLLIElement;\n if (target && !this.tooltipShown) {\n const targetLetter = target.textContent?.trim() ?? undefined;\n this.tooltipShown = true;\n this.hoveredLetter = targetLetter;\n\n await this.updateComplete;\n await new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n\n if (this.tooltip && this.tooltip.dataset.letter === targetLetter) {\n this.positionTooltip(target);\n }\n }\n }\n\n private handleMouseLeave() {\n this.tooltipShown = false;\n this.hoveredLetter = undefined;\n }\n\n private positionTooltip(targetElmt: HTMLElement) {\n if (!this.tooltip) return;\n\n // Basic positioning is just to center the whole tooltip on the letter box.\n const tooltipWidth = this.tooltip.clientWidth;\n const letterWidth = targetElmt.clientWidth;\n let left = letterWidth / 2 - tooltipWidth / 2;\n\n // But we also need to ensure the tooltip doesn't flow outside the viewport.\n // First, calculate the full width of the document body, including margins\n // (but not including any scrollbar).\n const bodyStyle = getComputedStyle(document.body);\n const bodyMarginLeft = parseFloat(\n bodyStyle.getPropertyValue('margin-left'),\n );\n const bodyMarginRight = parseFloat(\n bodyStyle.getPropertyValue('margin-right'),\n );\n const bodyWidthWithMargin =\n document.body.clientWidth + bodyMarginLeft + bodyMarginRight;\n\n // Calculate the positions of the tooltip's left/right edges, and determine\n // how much they overflow the viewport by (if at all).\n const targetRect = targetElmt.getBoundingClientRect();\n const tooltipLeft = targetRect.left + left;\n const tooltipRight = tooltipLeft + tooltipWidth;\n const offset = 1; // How many pixels the tooltip must be offset from the left/right edges\n let overflowAmt;\n if (tooltipLeft < offset) {\n // Tooltip overflows left edge of viewport\n overflowAmt = tooltipLeft - offset;\n } else if (tooltipRight > bodyWidthWithMargin - offset) {\n // Tooltip overflows right edge of viewport\n overflowAmt = tooltipRight - bodyWidthWithMargin + offset;\n }\n\n // Apply any needed adjustment to the tooltip and its arrow to keep it in the viewport\n if (overflowAmt) {\n left -= overflowAmt;\n this.tooltip.style.setProperty(\n '--tooltipArrowOffset',\n `${overflowAmt}px`,\n );\n }\n\n this.tooltip.style.left = `${left}px`;\n this.tooltip.classList.add('fade-in');\n }\n\n static styles = css`\n h1 {\n font-size: 1.2rem;\n }\n\n #container {\n background-color: #ddd;\n color: #333;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);\n }\n\n ul {\n list-style: none;\n display: flex;\n margin: 0;\n padding: 0.5rem 1rem;\n justify-content: space-between;\n }\n\n ul li {\n position: relative;\n flex: 1;\n text-align: center;\n max-width: 2.5rem;\n border-radius: 4px;\n }\n\n li:hover:not(.selected) button:not(:disabled) {\n background-color: #c0c0c0;\n }\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n aspect-ratio: 1 / 1;\n }\n\n button {\n width: 100%;\n height: 100%;\n color: #333;\n appearance: none;\n background: none;\n border: none;\n border-radius: 4px;\n font-family: inherit;\n font-size: 1.2rem;\n cursor: pointer;\n }\n\n button:disabled {\n color: #aaa;\n cursor: default;\n }\n\n .selected {\n background-color: #2c2c2c;\n }\n\n .selected button {\n color: white;\n }\n\n alpha-bar-tooltip {\n position: absolute;\n top: 100%;\n left: -9999px;\n margin-top: 3px;\n z-index: 1;\n\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n alpha-bar-tooltip.fade-in {\n opacity: 1;\n }\n\n /* Make alphabet bar a 2-row container in small screen widths */\n @media screen and (max-width: 768px) {\n ul {\n display: grid;\n grid-template-columns: repeat(13, 1fr);\n }\n }\n `;\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import { classMap } from 'lit/directives/class-map.js';
|
|
|
5
5
|
import { localized, msg, str } from '@lit/localize';
|
|
6
6
|
import { collectionIcon } from '../../assets/img/icons/mediatype/collection';
|
|
7
7
|
import { formatUnitSize } from '../../utils/format-unit-size';
|
|
8
|
+
import { getLocale } from '../../utils/get-locale';
|
|
8
9
|
import { baseTileStyles } from './styles/tile-grid-shared-styles';
|
|
9
10
|
import { BaseTileComponent } from '../base-tile-component';
|
|
10
11
|
import '../image-block';
|
|
@@ -76,7 +77,9 @@ let CollectionTile = class CollectionTile extends BaseTileComponent {
|
|
|
76
77
|
}
|
|
77
78
|
get getItemsTemplate() {
|
|
78
79
|
const itemCount = this.model?.itemCount;
|
|
79
|
-
const formattedCount = itemCount
|
|
80
|
+
const formattedCount = itemCount === undefined
|
|
81
|
+
? undefined
|
|
82
|
+
: new Intl.NumberFormat(getLocale()).format(itemCount);
|
|
80
83
|
const itemsLabel = itemCount === 1
|
|
81
84
|
? msg(str `${formattedCount} item`)
|
|
82
85
|
: msg(str `${formattedCount} items`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/collection-tile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,gBAAgB,CAAC;AAIjB,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,iBAAiB;IAA9C;QACL;;;;;;;;;;;;;;WAcG;;QAE0B,mBAAc,GAAG,KAAK,CAAC;QAExB,eAAU,GAAe,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-tile.js","sourceRoot":"","sources":["../../../../src/tiles/grid/collection-tile.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResultGroup, html, nothing, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { localized, msg, str } from '@lit/localize';\nimport { collectionIcon } from '../../assets/img/icons/mediatype/collection';\nimport { formatUnitSize } from '../../utils/format-unit-size';\nimport { getLocale } from '../../utils/get-locale';\nimport { baseTileStyles } from './styles/tile-grid-shared-styles';\nimport { BaseTileComponent } from '../base-tile-component';\nimport { LayoutType } from '../models';\nimport '../image-block';\n\n@customElement('collection-tile')\n@localized()\nexport class CollectionTile extends BaseTileComponent {\n /*\n * Reactive properties inherited from BaseTileComponent:\n * - model?: TileModel;\n * - currentWidth?: number;\n * - currentHeight?: number;\n * - baseNavigationUrl?: string;\n * - baseImageUrl?: string;\n * - collectionPagePath?: string;\n * - sortParam: SortParam | null = null;\n * - creatorFilter?: string;\n * - mobileBreakpoint?: number;\n * - loggedIn = false;\n * - suppressBlurring = false;\n * - useLocalTime = false;\n */\n\n @property({ type: Boolean }) showInfoButton = false;\n\n @property({ type: String }) layoutType: LayoutType = 'default';\n\n render() {\n const containerClasses = classMap({\n container: true,\n minimal: this.layoutType === 'minimal',\n });\n\n return html`\n <div class=${containerClasses}>\n ${this.infoButtonTemplate}\n <div class=\"tile-details\">\n <div class=\"item-info\">\n ${this.getImageBlockTemplate} ${this.getTitleTemplate}\n </div>\n </div>\n\n ${this.getTileStatsTemplate}\n </div>\n `;\n }\n\n private get getImageBlockTemplate(): TemplateResult {\n return html`\n <image-block\n .model=${this.model}\n .baseImageUrl=${this.baseImageUrl}\n .viewSize=${'grid'}\n .suppressBlurring=${this.suppressBlurring}\n >\n </image-block>\n `;\n }\n\n private get getTitleTemplate() {\n return html`<div id=\"title\">\n <h3 class=\"truncated\">${this.model?.title}</h3>\n </div>`;\n }\n\n private get getTileStatsTemplate() {\n return html`\n <div id=\"item-stats\">\n <div id=\"item-mediatype\">${collectionIcon}</div>\n\n <div id=\"stats-row\">\n ${this.getItemsTemplate} ${this.getSizeTemplate}\n </div>\n </div>\n `;\n }\n\n private get getItemsTemplate() {\n const itemCount = this.model?.itemCount;\n const formattedCount =\n itemCount === undefined\n ? undefined\n : new Intl.NumberFormat(getLocale()).format(itemCount);\n const itemsLabel =\n itemCount === 1\n ? msg(str`${formattedCount} item`)\n : msg(str`${formattedCount} items`);\n\n return html`<span id=\"item-count\">${itemsLabel}</span>`;\n }\n\n private get getSizeTemplate() {\n const collectionSize = this.model?.collectionSize ?? 0;\n\n return collectionSize\n ? html`<span id=\"item-size\">${formatUnitSize(collectionSize, 1)}</span>`\n : ``;\n }\n\n private get infoButtonTemplate(): TemplateResult | typeof nothing {\n // ⓘ is an information icon\n return this.showInfoButton\n ? html`<button class=\"info-button\" @click=${this.infoButtonPressed}>\n ⓘ\n <span class=\"sr-only\">${msg('More info')}</span>\n </button>`\n : nothing;\n }\n\n private infoButtonPressed(e: PointerEvent) {\n e.preventDefault();\n const event = new CustomEvent<{ x: number; y: number }>(\n 'infoButtonPressed',\n { detail: { x: e.clientX, y: e.clientY } },\n );\n this.dispatchEvent(event);\n }\n\n static get styles(): CSSResultGroup {\n const tileBorderColor = css`var(--tileBorderColor, #555555)`;\n const tileBackgroundColor = css`var(--tileBackgroundColor, #666666)`;\n const whiteColor = css`#fff`;\n\n return [\n baseTileStyles,\n css`\n .container {\n background-color: ${tileBackgroundColor};\n border: 1px solid ${tileBorderColor};\n }\n\n .item-info {\n flex-grow: initial;\n }\n\n h4.truncated,\n h3.truncated {\n color: ${whiteColor};\n }\n\n #item-mediatype svg {\n filter: invert(100%);\n height: 2.5rem;\n align-items: baseline;\n }\n\n .container:hover > #title {\n text-decoration: underline;\n }\n\n /* this is a workaround for Safari 15 where the hover effects are not working */\n image-block:hover > #title {\n text-decoration: underline;\n }\n\n #item-stats {\n display: flex;\n padding: 0 5px 5px;\n align-items: center;\n }\n\n #stats-row {\n display: flex;\n align-items: baseline;\n color: ${whiteColor};\n flex-direction: column;\n margin-left: 10px;\n }\n\n .minimal #item-stats {\n display: none;\n }\n\n .minimal .truncated {\n -webkit-line-clamp: initial;\n }\n\n .minimal .item-info {\n padding-bottom: 5px;\n }\n `,\n ];\n }\n}\n"]}
|
|
@@ -10,6 +10,7 @@ import DOMPurify from 'dompurify';
|
|
|
10
10
|
import { suppressedCollections } from '../../models';
|
|
11
11
|
import { BaseTileComponent } from '../base-tile-component';
|
|
12
12
|
import { formatCount } from '../../utils/format-count';
|
|
13
|
+
import { getLocale } from '../../utils/get-locale';
|
|
13
14
|
import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
|
|
14
15
|
import { tileActionStyles } from '../../styles/tile-action-styles';
|
|
15
16
|
import '../image-block';
|
|
@@ -225,10 +226,18 @@ let TileList = class TileList extends BaseTileComponent {
|
|
|
225
226
|
return this.metadataTemplate(`${formatCount(viewCount, this.formatSize)}`, this.displayValueProvider.viewsLabel);
|
|
226
227
|
}
|
|
227
228
|
get ratingTemplate() {
|
|
228
|
-
|
|
229
|
+
const { averageRating } = this.model ?? {};
|
|
230
|
+
const formattedRating = averageRating
|
|
231
|
+
? new Intl.NumberFormat(getLocale()).format(averageRating)
|
|
232
|
+
: averageRating;
|
|
233
|
+
return this.metadataTemplate(formattedRating, msg('Avg Rating'));
|
|
229
234
|
}
|
|
230
235
|
get reviewsTemplate() {
|
|
231
|
-
|
|
236
|
+
const { commentCount } = this.model ?? {};
|
|
237
|
+
const formattedCount = commentCount
|
|
238
|
+
? new Intl.NumberFormat(getLocale()).format(commentCount)
|
|
239
|
+
: commentCount;
|
|
240
|
+
return this.metadataTemplate(formattedCount, msg('Reviews'));
|
|
232
241
|
}
|
|
233
242
|
get topicsTemplate() {
|
|
234
243
|
if (!this.model?.subjects || this.model.subjects.length === 0) {
|