@internetarchive/elements 1.1.3-webdev-9107.0 → 1.1.3-webdev-9226.0
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/README.md +29 -0
- package/dist/src/elements/ia-button/ia-button.d.ts.map +1 -1
- package/dist/src/elements/ia-button/ia-button.js +2 -2
- package/dist/src/elements/ia-button/ia-button.js.map +1 -1
- package/dist/src/elements/index.d.ts +0 -3
- package/dist/src/elements/index.d.ts.map +1 -1
- package/dist/src/elements/index.js +0 -3
- package/dist/src/elements/index.js.map +1 -1
- package/dist/src/locales/es.d.ts +40 -0
- package/dist/src/locales/es.d.ts.map +1 -0
- package/dist/src/locales/es.js +45 -0
- package/dist/src/locales/es.js.map +1 -0
- package/package.json +25 -9
- package/dist/src/elements/ia-reviews/assets/delete-icon.svg +0 -8
- package/dist/src/elements/ia-reviews/assets/star-basic.svg +0 -6
- package/dist/src/elements/ia-reviews/assets/star-selected.svg +0 -8
- package/dist/src/elements/ia-reviews/assets/star-unselected.svg +0 -8
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts +0 -104
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/ia-review-form.js +0 -678
- package/dist/src/elements/ia-reviews/ia-review-form.js.map +0 -1
- package/dist/src/elements/ia-reviews/ia-review.d.ts +0 -49
- package/dist/src/elements/ia-reviews/ia-review.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/ia-review.js +0 -349
- package/dist/src/elements/ia-reviews/ia-review.js.map +0 -1
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts +0 -63
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/ia-reviews.js +0 -357
- package/dist/src/elements/ia-reviews/ia-reviews.js.map +0 -1
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts +0 -8
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js +0 -15
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js.map +0 -1
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts +0 -13
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/utils/collapse-space.js +0 -19
- package/dist/src/elements/ia-reviews/utils/collapse-space.js.map +0 -1
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts +0 -14
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js +0 -65
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js.map +0 -1
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts +0 -9
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js +0 -40
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js.map +0 -1
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts +0 -9
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js +0 -29
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js.map +0 -1
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts +0 -13
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts.map +0 -1
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js +0 -19
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js.map +0 -1
package/README.md
CHANGED
|
@@ -303,6 +303,35 @@ For any styles that you won't be exposing to consumers via the story, you can pr
|
|
|
303
303
|
</div>
|
|
304
304
|
```
|
|
305
305
|
|
|
306
|
+
### Localization
|
|
307
|
+
|
|
308
|
+
Wrap user-facing text in `msg()` from `@lit/localize`, inside `render()` or a getter it calls. The first argument has to be a literal: a string, `` str`...${x}` `` when it has an expression, or `` html`...` `` when it has markup. A `msg()` that runs at module scope or in a static field resolves once at import, so it never changes language.
|
|
309
|
+
|
|
310
|
+
This package never calls `configureLocalization`. `@lit/localize` can only be configured once per page, so the app owns that call and loads one bundle holding its own messages and ours. We publish our translations for the app to merge in:
|
|
311
|
+
|
|
312
|
+
```zsh
|
|
313
|
+
pnpm run strings:extract # add new msg() strings to xliff/<locale>.xlf
|
|
314
|
+
# translate the empty <target>s in xliff/<locale>.xlf
|
|
315
|
+
pnpm run strings:build # write src/locales/<locale>.ts
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Commit all three: the XLIFF, the generated module and the source change.
|
|
319
|
+
|
|
320
|
+
#### What gets published
|
|
321
|
+
|
|
322
|
+
`@internetarchive/elements/locales/<locale>.js` exports `templates`, the same shape `lit-localize build` writes in runtime mode: an object keyed by message id (a hash of the English source) whose values are what `loadLocale` returns. It only holds messages that have a translation. A message with no translation is left out instead of falling back to English, so merging it can never override another package's or the app's translation of the same text.
|
|
323
|
+
|
|
324
|
+
To merge it, an app spreads it under its own templates, app last so the app wins a conflict:
|
|
325
|
+
|
|
326
|
+
```ts
|
|
327
|
+
import { templates as elements } from '@internetarchive/elements/locales/es.js';
|
|
328
|
+
import { templates as app } from './app-es';
|
|
329
|
+
|
|
330
|
+
export const templates = { ...elements, ...app };
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
The XLIFF in `xliff/` is where translations are edited. It isn't published.
|
|
334
|
+
|
|
306
335
|
## Component Inventory
|
|
307
336
|
|
|
308
337
|
To kickstart our library, we are going to take inventory of what already exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ia-button.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-button/ia-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EAEf,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ia-button.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-button/ia-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EAEf,MAAM,KAAK,CAAC;AAKb,OAAO,4CAA4C,CAAC;AAEpD;;;;;;;;;GASG;AACH,qBACa,QAAS,SAAQ,UAAU;IAEV,IAAI,EAC5B,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,QAAQ,GACR,MAAM,GACN,aAAa,CAAa;IAGD,OAAO,EAAE,OAAO,CAAS;IAGzB,QAAQ,EAAE,OAAO,CAAS;IAG3B,WAAW,EAAE,MAAM,CAAM;IAGV,IAAI,EAC3C,QAAQ,GACR,QAAQ,GACR,OAAO,CAAY;IAGK,IAAI,CAAC,EAAE,MAAM,CAAC;IAGb,eAAe,EAAE,OAAO,CAAS;IAE9D,MAAM,IAAI,cAAc;IAaxB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAOnD,OAAO,KAAK,cAAc,GAUzB;IAGD,OAAO,KAAK,kBAAkB,GAE7B;IAGD,OAAO,KAAK,oBAAoB,GAO/B;IAED,yDAAyD;IACzD,OAAO,CAAC,sBAAsB;IAc9B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAevB,sFAAsF;IACtF,OAAO,CAAC,iBAAiB;IAwBzB,MAAM,KAAK,MAAM,IAAI,cAAc,CAkNlC;CACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { html, LitElement, css, render, } from 'lit';
|
|
3
|
-
import { msg } from '@lit/localize';
|
|
4
3
|
import { property } from 'lit/decorators.js';
|
|
5
4
|
import { customElement } from '../../util/custom-element.js';
|
|
6
5
|
import themeStyles from '../../themes/theme-styles.js';
|
|
@@ -68,7 +67,8 @@ let IAButton = class IAButton extends LitElement {
|
|
|
68
67
|
get loadingStateTemplate() {
|
|
69
68
|
return html `
|
|
70
69
|
<span class="loading-indicator" alt="Loading indicator">
|
|
71
|
-
<ia-status-indicator mode="loading"></ia-status-indicator> ${
|
|
70
|
+
<ia-status-indicator mode="loading"></ia-status-indicator> ${this
|
|
71
|
+
.loadingText}
|
|
72
72
|
</span>
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ia-button.js","sourceRoot":"","sources":["../../../../src/elements/ia-button/ia-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n LitElement,\n TemplateResult,\n CSSResultGroup,\n css,\n PropertyValues,\n render,\n} from 'lit';\nimport { msg } from '@lit/localize';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport themeStyles from '@src/themes/theme-styles';\n\nimport '../ia-status-indicator/ia-status-indicator';\n\n/**\n * Renders a standardized button built off the ia-button styling and the activity indicator, with the option to show\n * a loading indicator instead of the text or to customize the text, and the ability to pass in any\n * function to run on click.\n *\n * Designed to behave exactly like a native type=\"submit\" or type=\"reset\" button if either type is supplied,\n * i.e. for an <ia-button type=\"submit\" @click=${doSideEffects}></ia-button>,\n * whether the form is submitted via enter or by clicking the button directly, the button will always\n * run doSideEffects() and then submit the form.\n */\n@customElement('ia-button')\nexport class IAButton extends LitElement {\n /* Which version of the button to display */\n @property({ type: String }) mode:\n | 'primary'\n | 'secondary'\n | 'danger'\n | 'warning'\n | 'disabled'\n | 'transparent'\n | 'custom'\n | 'link'\n | 'danger-link' = 'primary';\n\n /* Whether to show a loading indicator instead of the button */\n @property({ type: Boolean }) loading: boolean = false;\n\n /* Whether the button should be disabled, regardless of submission status */\n @property({ type: Boolean }) disabled: boolean = false;\n\n /* Optional text to include next to the loading indicator */\n @property({ type: String }) loadingText: string = '';\n\n /* Type of the button - defaults to 'button' to prevent form submission */\n @property({ type: String, reflect: true }) type:\n | 'button'\n | 'submit'\n | 'reset' = 'button';\n\n /* An optional href to wrap around the button */\n @property({ type: String }) href?: string;\n\n /* Whether to add a target=\"_blank\" to any wrapping link */\n @property({ type: Boolean }) openLinksNewTab: boolean = false;\n\n render(): TemplateResult {\n return html`\n ${this.href\n ? html`<a\n href=${this.href}\n target=${this.openLinksNewTab ? '_blank' : '_self'}\n >${this.buttonTemplate}</a\n >`\n : this.buttonTemplate}\n <slot name=\"hidden-button\"></slot>\n `;\n }\n\n protected willUpdate(changed: PropertyValues): void {\n if (changed.has('type')) {\n this.setButtonTypeEmulation();\n }\n }\n\n /* The native button to render */\n private get buttonTemplate(): TemplateResult {\n return html`\n <button\n part=\"button\"\n class=${this.mode}\n ?disabled=${this.disabled || this.loading}\n >\n ${this.buttonTextTemplate}\n </button>\n `;\n }\n\n /* The text to render within the button */\n private get buttonTextTemplate(): TemplateResult {\n return this.loading ? this.loadingStateTemplate : html`<slot></slot>`;\n }\n\n /* Content to render while button is loading */\n private get loadingStateTemplate(): TemplateResult {\n return html`\n <span class=\"loading-indicator\" alt=\"Loading indicator\">\n <ia-status-indicator mode=\"loading\"></ia-status-indicator> ${msg(\n this.loadingText,\n )}\n </span>\n `;\n }\n\n /** Sets up or removes button type emulation as needed */\n private setButtonTypeEmulation(): void {\n const hiddenButton: HTMLInputElement | null = this.querySelector(\n 'input.hidden-button',\n );\n\n if (hiddenButton) {\n hiddenButton.type = this.type;\n return;\n }\n\n this.addHiddenButton();\n this.addEventListener('click', this.handleComponentClick);\n }\n\n /**\n * Triggers form actions (submit/reset) on click, if desired\n * and if actions not already in progress\n */\n private handleComponentClick(e: Event): void {\n if (this.type === 'button') return;\n\n // No need to submit/reset the form if it's already submitting/resetting\n const formActionsInProgress =\n e instanceof CustomEvent && e.detail.formActionsInProgress;\n if (formActionsInProgress) return;\n\n // Request form submission/reset by clicking the hidden native submit/reset button we added earlier\n const hiddenButton = this.querySelector(\n 'input.hidden-button',\n ) as HTMLInputElement;\n hiddenButton.dispatchEvent(new PointerEvent('click'));\n }\n\n /**\n * Adds a hidden button to the light DOM to\n * emulate native reset/submit button behavior.\n *\n * Used for:\n * - Submitting/resetting the form (on behalf of handleComponentClick)\n * - Activating any component click events if form is submitted with the enter key\n * (via handleFormActions)\n */\n private addHiddenButton(): void {\n if (this.type === 'button') return;\n\n render(\n html`<input\n type=${this.type}\n class=\"hidden-button\"\n style=\"display:none\"\n slot=\"hidden-button\"\n @click=${(e: Event) => this.handleFormActions(e)}\n />`,\n this,\n );\n }\n\n /** Triggers the component's click event manually to prevent extra submission/reset */\n private handleFormActions(e: Event): void {\n /**\n * Prevents the event from bubbling up to the ia-button component itself.\n * This way, if the click on this button is triggered by a click on the component,\n * we don't accidentally bubble up a second click and end up in an infinite loop.\n *\n * And if the click was triggered by form submission (via the enter key), we can hijack the click\n * event to pass that info to the component, so it knows not to\n * re-attempt submission.\n */\n e.stopPropagation();\n\n // Detect if click comes from the parent component,\n // in which case there's no need to trigger a second click on it\n const triggeredByComponentClick = !e.isTrusted;\n if (triggeredByComponentClick) return;\n\n // Trigger parent component click events manually,\n // so it knows not to try to re-submit/re-reset the form\n this.dispatchEvent(\n new CustomEvent('click', { detail: { formActionsInProgress: true } }),\n );\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n --primary-cta-text-color--: var(--primary-cta-text-color);\n --primary-cta-fill--: var(--primary-cta-fill);\n --primary-cta-border--: var(--primary-cta-border);\n\n --secondary-cta-text-color--: var(--secondary-cta-text-color);\n --secondary-cta-fill--: var(--secondary-cta-fill);\n --secondary-cta-border--: var(--secondary-cta-border);\n\n --danger-cta-text-color--: var(--danger-cta-text-color);\n --danger-cta-fill--: var(--danger-cta-fill);\n --danger-cta-border--: var(--danger-cta-border);\n\n --warning-cta-text-color--: var(--warning-cta-text-color);\n --warning-cta-fill--: var(--warning-cta-fill);\n --warning-cta-border--: var(--warning-cta-border);\n\n --disabled-cta-text-color--: var(--disabled-cta-text-color);\n --disabled-cta-fill--: var(--disabled-cta-fill);\n --disabled-cta-border--: var(--disabled-cta-border);\n\n --link-color--: var(--link-color);\n --color-danger--: var(--color-danger);\n\n --button-padding--: var(--button-padding);\n --button-width--: var(--button-width);\n --button-height--: var(--button-height);\n --button-border-width--: var(--button-border-width);\n --button-border-radius--: var(--button-border-radius);\n --base-font-family--: var(--base-font-family);\n --font-size-standard--: var(--font-size-standard);\n\n --ia-button-transition--: var(\n --ia-button-transition,\n all 0.1s ease 0s\n );\n\n --ia-button-custom-text-color--: var(\n --ia-button-custom-text-color,\n var(--primary-cta-text-color--)\n );\n --ia-button-custom-fill--: var(\n --ia-button-custom-fill,\n var(--primary-cta-fill--)\n );\n --ia-button-custom-border--: var(\n --ia-button-custom-border,\n var(--primary-cta-border--)\n );\n --ia-button-custom-active-text-color--: var(\n --ia-button-custom-active-text-color,\n var(--ia-button-custom-text-color--)\n );\n --ia-button-custom-active-fill--: var(\n --ia-button-custom-active-fill,\n var(--ia-button-custom-fill--)\n );\n --ia-button-custom-active-border--: var(\n --ia-button-custom-active-border,\n var(--ia-button-custom-border--)\n );\n\n display: inline-block; /* keeps host sized to button */\n }\n\n button {\n font-family: var(--base-font-family--);\n font-size: var(--font-size-standard--);\n height: var(--button-height--);\n min-height: var(--button-height--);\n width: var(--button-width--);\n padding: var(--button-padding--);\n border-width: var(--button-border-width--);\n border-radius: var(--button-border-radius--);\n transition: var(--ia-button-transition--);\n\n outline-color: currentColor;\n cursor: pointer;\n line-height: normal;\n border-style: solid;\n white-space: nowrap;\n appearance: auto;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n outline-offset: -4px;\n user-select: none;\n text-decoration: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n }\n\n a {\n text-decoration: none;\n }\n\n button:disabled,\n button.disabled {\n cursor: not-allowed;\n color: var(--disabled-cta-text-color--);\n background-color: var(--disabled-cta-fill--);\n border: 1px solid var(--disabled-cta-border--);\n opacity: 0.5;\n }\n\n button:enabled:hover {\n opacity: 0.9;\n }\n\n button:focus-visible {\n opacity: 0.8;\n outline-style: double;\n }\n\n button:active {\n opacity: 0.7;\n }\n\n button.primary {\n color: var(--primary-cta-text-color--);\n background-color: var(--primary-cta-fill--);\n border-color: var(--primary-cta-border--);\n }\n\n button.secondary {\n color: var(--secondary-cta-text-color--);\n background-color: var(--secondary-cta-fill--);\n border-color: var(--secondary-cta-border--);\n }\n\n button.danger {\n color: var(--danger-cta-text-color--);\n background-color: var(--danger-cta-fill--);\n border-color: var(--danger-cta-border--);\n }\n\n button.warning {\n color: var(--warning-cta-text-color--);\n background-color: var(--warning-cta-fill--);\n border-color: var(--warning-cta-border--);\n }\n\n button.transparent {\n color: inherit;\n border-width: 0;\n background-color: transparent;\n border-color: transparent;\n }\n\n button.custom {\n color: var(--ia-button-custom-text-color--);\n background-color: var(--ia-button-custom-fill--);\n border-color: var(--ia-button-custom-border--);\n }\n\n button.custom:enabled:is(:hover, :focus, :active, .active) {\n color: var(--ia-button-custom-active-text-color--);\n background-color: var(--ia-button-custom-active-fill--);\n border-color: var(--ia-button-custom-active-border--);\n }\n\n :host(.fit-content) button {\n padding: 0;\n height: fit-content;\n }\n\n button.link:enabled:hover,\n button.danger-link:enabled:hover {\n text-decoration: underline;\n }\n\n button.link,\n button.danger-link {\n margin: 0;\n border: 0;\n appearance: none;\n background: none;\n text-decoration: none;\n cursor: pointer;\n padding: 0;\n }\n\n button.link {\n color: var(--link-color--);\n }\n\n button.danger-link {\n color: var(--color-danger--);\n }\n\n .loading-indicator {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n align-items: center;\n }\n\n ia-status-indicator {\n --ia-theme-primary-text-color: currentColor;\n }\n `,\n ];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ia-button.js","sourceRoot":"","sources":["../../../../src/elements/ia-button/ia-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n LitElement,\n TemplateResult,\n CSSResultGroup,\n css,\n PropertyValues,\n render,\n} from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport themeStyles from '@src/themes/theme-styles';\n\nimport '../ia-status-indicator/ia-status-indicator';\n\n/**\n * Renders a standardized button built off the ia-button styling and the activity indicator, with the option to show\n * a loading indicator instead of the text or to customize the text, and the ability to pass in any\n * function to run on click.\n *\n * Designed to behave exactly like a native type=\"submit\" or type=\"reset\" button if either type is supplied,\n * i.e. for an <ia-button type=\"submit\" @click=${doSideEffects}></ia-button>,\n * whether the form is submitted via enter or by clicking the button directly, the button will always\n * run doSideEffects() and then submit the form.\n */\n@customElement('ia-button')\nexport class IAButton extends LitElement {\n /* Which version of the button to display */\n @property({ type: String }) mode:\n | 'primary'\n | 'secondary'\n | 'danger'\n | 'warning'\n | 'disabled'\n | 'transparent'\n | 'custom'\n | 'link'\n | 'danger-link' = 'primary';\n\n /* Whether to show a loading indicator instead of the button */\n @property({ type: Boolean }) loading: boolean = false;\n\n /* Whether the button should be disabled, regardless of submission status */\n @property({ type: Boolean }) disabled: boolean = false;\n\n /* Optional text to include next to the loading indicator */\n @property({ type: String }) loadingText: string = '';\n\n /* Type of the button - defaults to 'button' to prevent form submission */\n @property({ type: String, reflect: true }) type:\n | 'button'\n | 'submit'\n | 'reset' = 'button';\n\n /* An optional href to wrap around the button */\n @property({ type: String }) href?: string;\n\n /* Whether to add a target=\"_blank\" to any wrapping link */\n @property({ type: Boolean }) openLinksNewTab: boolean = false;\n\n render(): TemplateResult {\n return html`\n ${this.href\n ? html`<a\n href=${this.href}\n target=${this.openLinksNewTab ? '_blank' : '_self'}\n >${this.buttonTemplate}</a\n >`\n : this.buttonTemplate}\n <slot name=\"hidden-button\"></slot>\n `;\n }\n\n protected willUpdate(changed: PropertyValues): void {\n if (changed.has('type')) {\n this.setButtonTypeEmulation();\n }\n }\n\n /* The native button to render */\n private get buttonTemplate(): TemplateResult {\n return html`\n <button\n part=\"button\"\n class=${this.mode}\n ?disabled=${this.disabled || this.loading}\n >\n ${this.buttonTextTemplate}\n </button>\n `;\n }\n\n /* The text to render within the button */\n private get buttonTextTemplate(): TemplateResult {\n return this.loading ? this.loadingStateTemplate : html`<slot></slot>`;\n }\n\n /* Content to render while button is loading */\n private get loadingStateTemplate(): TemplateResult {\n return html`\n <span class=\"loading-indicator\" alt=\"Loading indicator\">\n <ia-status-indicator mode=\"loading\"></ia-status-indicator> ${this\n .loadingText}\n </span>\n `;\n }\n\n /** Sets up or removes button type emulation as needed */\n private setButtonTypeEmulation(): void {\n const hiddenButton: HTMLInputElement | null = this.querySelector(\n 'input.hidden-button',\n );\n\n if (hiddenButton) {\n hiddenButton.type = this.type;\n return;\n }\n\n this.addHiddenButton();\n this.addEventListener('click', this.handleComponentClick);\n }\n\n /**\n * Triggers form actions (submit/reset) on click, if desired\n * and if actions not already in progress\n */\n private handleComponentClick(e: Event): void {\n if (this.type === 'button') return;\n\n // No need to submit/reset the form if it's already submitting/resetting\n const formActionsInProgress =\n e instanceof CustomEvent && e.detail.formActionsInProgress;\n if (formActionsInProgress) return;\n\n // Request form submission/reset by clicking the hidden native submit/reset button we added earlier\n const hiddenButton = this.querySelector(\n 'input.hidden-button',\n ) as HTMLInputElement;\n hiddenButton.dispatchEvent(new PointerEvent('click'));\n }\n\n /**\n * Adds a hidden button to the light DOM to\n * emulate native reset/submit button behavior.\n *\n * Used for:\n * - Submitting/resetting the form (on behalf of handleComponentClick)\n * - Activating any component click events if form is submitted with the enter key\n * (via handleFormActions)\n */\n private addHiddenButton(): void {\n if (this.type === 'button') return;\n\n render(\n html`<input\n type=${this.type}\n class=\"hidden-button\"\n style=\"display:none\"\n slot=\"hidden-button\"\n @click=${(e: Event) => this.handleFormActions(e)}\n />`,\n this,\n );\n }\n\n /** Triggers the component's click event manually to prevent extra submission/reset */\n private handleFormActions(e: Event): void {\n /**\n * Prevents the event from bubbling up to the ia-button component itself.\n * This way, if the click on this button is triggered by a click on the component,\n * we don't accidentally bubble up a second click and end up in an infinite loop.\n *\n * And if the click was triggered by form submission (via the enter key), we can hijack the click\n * event to pass that info to the component, so it knows not to\n * re-attempt submission.\n */\n e.stopPropagation();\n\n // Detect if click comes from the parent component,\n // in which case there's no need to trigger a second click on it\n const triggeredByComponentClick = !e.isTrusted;\n if (triggeredByComponentClick) return;\n\n // Trigger parent component click events manually,\n // so it knows not to try to re-submit/re-reset the form\n this.dispatchEvent(\n new CustomEvent('click', { detail: { formActionsInProgress: true } }),\n );\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n --primary-cta-text-color--: var(--primary-cta-text-color);\n --primary-cta-fill--: var(--primary-cta-fill);\n --primary-cta-border--: var(--primary-cta-border);\n\n --secondary-cta-text-color--: var(--secondary-cta-text-color);\n --secondary-cta-fill--: var(--secondary-cta-fill);\n --secondary-cta-border--: var(--secondary-cta-border);\n\n --danger-cta-text-color--: var(--danger-cta-text-color);\n --danger-cta-fill--: var(--danger-cta-fill);\n --danger-cta-border--: var(--danger-cta-border);\n\n --warning-cta-text-color--: var(--warning-cta-text-color);\n --warning-cta-fill--: var(--warning-cta-fill);\n --warning-cta-border--: var(--warning-cta-border);\n\n --disabled-cta-text-color--: var(--disabled-cta-text-color);\n --disabled-cta-fill--: var(--disabled-cta-fill);\n --disabled-cta-border--: var(--disabled-cta-border);\n\n --link-color--: var(--link-color);\n --color-danger--: var(--color-danger);\n\n --button-padding--: var(--button-padding);\n --button-width--: var(--button-width);\n --button-height--: var(--button-height);\n --button-border-width--: var(--button-border-width);\n --button-border-radius--: var(--button-border-radius);\n --base-font-family--: var(--base-font-family);\n --font-size-standard--: var(--font-size-standard);\n\n --ia-button-transition--: var(\n --ia-button-transition,\n all 0.1s ease 0s\n );\n\n --ia-button-custom-text-color--: var(\n --ia-button-custom-text-color,\n var(--primary-cta-text-color--)\n );\n --ia-button-custom-fill--: var(\n --ia-button-custom-fill,\n var(--primary-cta-fill--)\n );\n --ia-button-custom-border--: var(\n --ia-button-custom-border,\n var(--primary-cta-border--)\n );\n --ia-button-custom-active-text-color--: var(\n --ia-button-custom-active-text-color,\n var(--ia-button-custom-text-color--)\n );\n --ia-button-custom-active-fill--: var(\n --ia-button-custom-active-fill,\n var(--ia-button-custom-fill--)\n );\n --ia-button-custom-active-border--: var(\n --ia-button-custom-active-border,\n var(--ia-button-custom-border--)\n );\n\n display: inline-block; /* keeps host sized to button */\n }\n\n button {\n font-family: var(--base-font-family--);\n font-size: var(--font-size-standard--);\n height: var(--button-height--);\n min-height: var(--button-height--);\n width: var(--button-width--);\n padding: var(--button-padding--);\n border-width: var(--button-border-width--);\n border-radius: var(--button-border-radius--);\n transition: var(--ia-button-transition--);\n\n outline-color: currentColor;\n cursor: pointer;\n line-height: normal;\n border-style: solid;\n white-space: nowrap;\n appearance: auto;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n outline-offset: -4px;\n user-select: none;\n text-decoration: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n }\n\n a {\n text-decoration: none;\n }\n\n button:disabled,\n button.disabled {\n cursor: not-allowed;\n color: var(--disabled-cta-text-color--);\n background-color: var(--disabled-cta-fill--);\n border: 1px solid var(--disabled-cta-border--);\n opacity: 0.5;\n }\n\n button:enabled:hover {\n opacity: 0.9;\n }\n\n button:focus-visible {\n opacity: 0.8;\n outline-style: double;\n }\n\n button:active {\n opacity: 0.7;\n }\n\n button.primary {\n color: var(--primary-cta-text-color--);\n background-color: var(--primary-cta-fill--);\n border-color: var(--primary-cta-border--);\n }\n\n button.secondary {\n color: var(--secondary-cta-text-color--);\n background-color: var(--secondary-cta-fill--);\n border-color: var(--secondary-cta-border--);\n }\n\n button.danger {\n color: var(--danger-cta-text-color--);\n background-color: var(--danger-cta-fill--);\n border-color: var(--danger-cta-border--);\n }\n\n button.warning {\n color: var(--warning-cta-text-color--);\n background-color: var(--warning-cta-fill--);\n border-color: var(--warning-cta-border--);\n }\n\n button.transparent {\n color: inherit;\n border-width: 0;\n background-color: transparent;\n border-color: transparent;\n }\n\n button.custom {\n color: var(--ia-button-custom-text-color--);\n background-color: var(--ia-button-custom-fill--);\n border-color: var(--ia-button-custom-border--);\n }\n\n button.custom:enabled:is(:hover, :focus, :active, .active) {\n color: var(--ia-button-custom-active-text-color--);\n background-color: var(--ia-button-custom-active-fill--);\n border-color: var(--ia-button-custom-active-border--);\n }\n\n :host(.fit-content) button {\n padding: 0;\n height: fit-content;\n }\n\n button.link:enabled:hover,\n button.danger-link:enabled:hover {\n text-decoration: underline;\n }\n\n button.link,\n button.danger-link {\n margin: 0;\n border: 0;\n appearance: none;\n background: none;\n text-decoration: none;\n cursor: pointer;\n padding: 0;\n }\n\n button.link {\n color: var(--link-color--);\n }\n\n button.danger-link {\n color: var(--color-danger--);\n }\n\n .loading-indicator {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n align-items: center;\n }\n\n ia-status-indicator {\n --ia-theme-primary-text-color: currentColor;\n }\n `,\n ];\n }\n}\n"]}
|
|
@@ -26,9 +26,6 @@ export * from './ia-radio-player/search/models.js';
|
|
|
26
26
|
export * from './ia-radio-player/search/search-handler.js';
|
|
27
27
|
export * from './ia-radio-player/search/search-helper.js';
|
|
28
28
|
export * from './ia-radio-player/search/transcript-index.js';
|
|
29
|
-
export * from './ia-reviews/ia-review.js';
|
|
30
|
-
export * from './ia-reviews/ia-review-form.js';
|
|
31
|
-
export * from './ia-reviews/ia-reviews.js';
|
|
32
29
|
export * from './ia-scrubber-bar/ia-scrubber-bar.js';
|
|
33
30
|
export * from './ia-scrubber-bar/ia-section-marker.js';
|
|
34
31
|
export * from './ia-scrubber-bar/models.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC"}
|
|
@@ -26,9 +26,6 @@ export * from './ia-radio-player/search/models.js';
|
|
|
26
26
|
export * from './ia-radio-player/search/search-handler.js';
|
|
27
27
|
export * from './ia-radio-player/search/search-helper.js';
|
|
28
28
|
export * from './ia-radio-player/search/transcript-index.js';
|
|
29
|
-
export * from './ia-reviews/ia-review.js';
|
|
30
|
-
export * from './ia-reviews/ia-review-form.js';
|
|
31
|
-
export * from './ia-reviews/ia-reviews.js';
|
|
32
29
|
export * from './ia-scrubber-bar/ia-scrubber-bar.js';
|
|
33
30
|
export * from './ia-scrubber-bar/ia-section-marker.js';
|
|
34
31
|
export * from './ia-scrubber-bar/models.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC","sourcesContent":["export * from './ia-audio-element/ia-audio-element';\nexport * from './ia-audio-element/models';\nexport * from './ia-button/ia-button';\nexport * from './ia-combo-box/ia-combo-box';\nexport * from './ia-dropdown-search-bar/ia-dropdown-search-bar';\nexport * from './ia-expandable-search-bar/ia-expandable-search-bar';\nexport * from './ia-expandable-search-bar/ia-quick-search';\nexport * from './ia-expandable-search-bar/models';\nexport * from './ia-histogram-date-range/ia-histogram-date-range';\nexport * from './ia-histogram-date-range/models';\nexport * from './ia-image-viewer/ia-image-viewer';\nexport * from './ia-item-navigator/ia-item-navigator';\nexport * from './ia-item-navigator/menus/ia-itemnav-viewable-files-panel';\nexport * from './ia-item-navigator/menus/ia-itemnav-sort-files-button';\nexport * from './ia-item-navigator/menus/ia-itemnav-share-panel';\nexport * from './ia-playback-controls/ia-playback-controls';\nexport * from './ia-playback-controls/models';\nexport * from './ia-radio-player/ia-radio-player';\nexport * from './ia-radio-player/ia-search-results-switcher';\nexport * from './ia-radio-player/models';\nexport * from './ia-radio-player/search/backends/full-text-search-backend';\nexport * from './ia-radio-player/search/backends/full-text-search-response';\nexport * from './ia-radio-player/search/backends/local-search-backend';\nexport * from './ia-radio-player/search/backends/search-backend';\nexport * from './ia-radio-player/search/models';\nexport * from './ia-radio-player/search/search-handler';\nexport * from './ia-radio-player/search/search-helper';\nexport * from './ia-radio-player/search/transcript-index';\nexport * from './ia-scrubber-bar/ia-scrubber-bar';\nexport * from './ia-scrubber-bar/ia-section-marker';\nexport * from './ia-scrubber-bar/models';\nexport * from './ia-transcript-view/duration-formatter';\nexport * from './ia-transcript-view/ia-transcript-entry';\nexport * from './ia-transcript-view/ia-transcript-view';\nexport * from './ia-transcript-view/models';\nexport * from './ia-waveform-progress/ia-waveform-progress';\nexport * from './ia-waveform-progress/models';\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const templates: {
|
|
2
|
+
s061cc20e3432dead: string;
|
|
3
|
+
s0661ae8e65d136c7: import("@lit/localize").StrResult;
|
|
4
|
+
s13c406cbcde6b73f: string;
|
|
5
|
+
s1587aa01e9bb42c6: string;
|
|
6
|
+
s1c9c386a1a79feef: import("@lit/localize").StrResult;
|
|
7
|
+
s290adadea9c2979c: string;
|
|
8
|
+
s370e44cc8c6c311b: string;
|
|
9
|
+
s49730f3d5751a433: string;
|
|
10
|
+
s4c25f08d080da5fa: string;
|
|
11
|
+
s4e3bb79d82e09ea4: import("@lit/localize").StrResult;
|
|
12
|
+
s5d929ff1619ac0c9: string;
|
|
13
|
+
s5f343a43e7ea9f91: string;
|
|
14
|
+
s5f4586bc1e2740e6: string;
|
|
15
|
+
s6aa79ab2e0656795: import("@lit/localize").StrResult;
|
|
16
|
+
s7505401da0a6d6f7: string;
|
|
17
|
+
s7655667379814b36: string;
|
|
18
|
+
s78fa9c8370847255: string;
|
|
19
|
+
s7ad0c46f2280e6b7: string;
|
|
20
|
+
s7cc651d6e80f42f9: string;
|
|
21
|
+
s82fc0d7c4b5d5189: import("@lit/localize").StrResult;
|
|
22
|
+
s872b27cf7155f325: string;
|
|
23
|
+
s8744f82be5bc754f: string;
|
|
24
|
+
s92a0d19a28995530: string;
|
|
25
|
+
sa034673b5a3c355c: string;
|
|
26
|
+
sa135b299b78d517d: string;
|
|
27
|
+
sac330cdfd2a92c75: string;
|
|
28
|
+
sb2d5fa10375dab13: string;
|
|
29
|
+
sb4f1dffbb6be6302: string;
|
|
30
|
+
sb9b90dd7e5256784: string;
|
|
31
|
+
sbfbc77dc3543556f: string;
|
|
32
|
+
sc13705f8a93d185e: string;
|
|
33
|
+
scd105819b5a10243: string;
|
|
34
|
+
sd4089915c0f14c1e: string;
|
|
35
|
+
se645d473fbdc4705: string;
|
|
36
|
+
se9d11cd23b249157: string;
|
|
37
|
+
sfcae9f83f7f25e25: string;
|
|
38
|
+
sfe786d22e4310635: string;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=es.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCrB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Do not modify this file by hand!
|
|
2
|
+
// Re-generate this file by running lit-localize
|
|
3
|
+
import { str } from '@lit/localize';
|
|
4
|
+
/* eslint-disable no-irregular-whitespace */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
+
export const templates = {
|
|
7
|
+
s061cc20e3432dead: `Pausar`,
|
|
8
|
+
s0661ae8e65d136c7: str `Imagen ${0} de ${1}`,
|
|
9
|
+
s13c406cbcde6b73f: `El código que has introducido no es válido o ha caducado`,
|
|
10
|
+
s1587aa01e9bb42c6: `Mostrar u ocultar la búsqueda rápida`,
|
|
11
|
+
s1c9c386a1a79feef: str `Resultado ${0} de ${1}`,
|
|
12
|
+
s290adadea9c2979c: `No se pudo cargar esta imagen.`,
|
|
13
|
+
s370e44cc8c6c311b: `Mostrar u ocultar opciones`,
|
|
14
|
+
s49730f3d5751a433: `Cargando...`,
|
|
15
|
+
s4c25f08d080da5fa: `No hay resultados.`,
|
|
16
|
+
s4e3bb79d82e09ea4: str `Volumen, actualmente al ${0} por ciento`,
|
|
17
|
+
s5d929ff1619ac0c9: `Buscar`,
|
|
18
|
+
s5f343a43e7ea9f91: `Error`,
|
|
19
|
+
s5f4586bc1e2740e6: `Borrar la búsqueda`,
|
|
20
|
+
s6aa79ab2e0656795: str `Velocidad de reproducción, actualmente ${0}`,
|
|
21
|
+
s7505401da0a6d6f7: `No hay opciones que coincidan`,
|
|
22
|
+
s7655667379814b36: `Busca en el archivo. Filtros y búsqueda avanzada disponible a continuación.`,
|
|
23
|
+
s78fa9c8370847255: `Resultado siguiente`,
|
|
24
|
+
s7ad0c46f2280e6b7: `Retroceder diez segundos`,
|
|
25
|
+
s7cc651d6e80f42f9: `Envíame otro código`,
|
|
26
|
+
s82fc0d7c4b5d5189: str `${0} resultados de búsqueda`,
|
|
27
|
+
s872b27cf7155f325: `Avanzar diez segundos`,
|
|
28
|
+
s8744f82be5bc754f: `Sección siguiente`,
|
|
29
|
+
s92a0d19a28995530: `Correcto`,
|
|
30
|
+
sa034673b5a3c355c: `Este campo es obligatorio`,
|
|
31
|
+
sa135b299b78d517d: `[Transcripción no disponible]`,
|
|
32
|
+
sac330cdfd2a92c75: `Resultado anterior`,
|
|
33
|
+
sb2d5fa10375dab13: `Desplazar el texto con el audio`,
|
|
34
|
+
sb4f1dffbb6be6302: `Borrar`,
|
|
35
|
+
sb9b90dd7e5256784: `Logotipo de la colección`,
|
|
36
|
+
sbfbc77dc3543556f: `Sección anterior`,
|
|
37
|
+
sc13705f8a93d185e: `Buscando en la transcripción`,
|
|
38
|
+
scd105819b5a10243: `Reproducir`,
|
|
39
|
+
sd4089915c0f14c1e: `Borrar la búsqueda`,
|
|
40
|
+
se645d473fbdc4705: `Imagen siguiente`,
|
|
41
|
+
se9d11cd23b249157: `Posición de reproducción`,
|
|
42
|
+
sfcae9f83f7f25e25: `Imagen anterior`,
|
|
43
|
+
sfe786d22e4310635: `Enviando el correo...`,
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,gDAAgD;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,GAAG,CAAA,UAAU,CAAC,OAAO,CAAC,EAAE;IAC3C,iBAAiB,EAAE,0DAA0D;IAC7E,iBAAiB,EAAE,sCAAsC;IACzD,iBAAiB,EAAE,GAAG,CAAA,aAAa,CAAC,OAAO,CAAC,EAAE;IAC9C,iBAAiB,EAAE,gCAAgC;IACnD,iBAAiB,EAAE,4BAA4B;IAC/C,iBAAiB,EAAE,aAAa;IAChC,iBAAiB,EAAE,oBAAoB;IACvC,iBAAiB,EAAE,GAAG,CAAA,2BAA2B,CAAC,aAAa;IAC/D,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,OAAO;IAC1B,iBAAiB,EAAE,oBAAoB;IACvC,iBAAiB,EAAE,GAAG,CAAA,0CAA0C,CAAC,EAAE;IACnE,iBAAiB,EAAE,+BAA+B;IAClD,iBAAiB,EAAE,6EAA6E;IAChG,iBAAiB,EAAE,qBAAqB;IACxC,iBAAiB,EAAE,0BAA0B;IAC7C,iBAAiB,EAAE,qBAAqB;IACxC,iBAAiB,EAAE,GAAG,CAAA,GAAG,CAAC,yBAAyB;IACnD,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,2BAA2B;IAC9C,iBAAiB,EAAE,+BAA+B;IAClD,iBAAiB,EAAE,oBAAoB;IACvC,iBAAiB,EAAE,iCAAiC;IACpD,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,0BAA0B;IAC7C,iBAAiB,EAAE,kBAAkB;IACrC,iBAAiB,EAAE,8BAA8B;IACjD,iBAAiB,EAAE,YAAY;IAC/B,iBAAiB,EAAE,oBAAoB;IACvC,iBAAiB,EAAE,kBAAkB;IACrC,iBAAiB,EAAE,0BAA0B;IAC7C,iBAAiB,EAAE,iBAAiB;IACpC,iBAAiB,EAAE,uBAAuB;CAC3C,CAAC","sourcesContent":["// Do not modify this file by hand!\n// Re-generate this file by running lit-localize\n\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 s061cc20e3432dead: `Pausar`,\n s0661ae8e65d136c7: str`Imagen ${0} de ${1}`,\n s13c406cbcde6b73f: `El código que has introducido no es válido o ha caducado`,\n s1587aa01e9bb42c6: `Mostrar u ocultar la búsqueda rápida`,\n s1c9c386a1a79feef: str`Resultado ${0} de ${1}`,\n s290adadea9c2979c: `No se pudo cargar esta imagen.`,\n s370e44cc8c6c311b: `Mostrar u ocultar opciones`,\n s49730f3d5751a433: `Cargando...`,\n s4c25f08d080da5fa: `No hay resultados.`,\n s4e3bb79d82e09ea4: str`Volumen, actualmente al ${0} por ciento`,\n s5d929ff1619ac0c9: `Buscar`,\n s5f343a43e7ea9f91: `Error`,\n s5f4586bc1e2740e6: `Borrar la búsqueda`,\n s6aa79ab2e0656795: str`Velocidad de reproducción, actualmente ${0}`,\n s7505401da0a6d6f7: `No hay opciones que coincidan`,\n s7655667379814b36: `Busca en el archivo. Filtros y búsqueda avanzada disponible a continuación.`,\n s78fa9c8370847255: `Resultado siguiente`,\n s7ad0c46f2280e6b7: `Retroceder diez segundos`,\n s7cc651d6e80f42f9: `Envíame otro código`,\n s82fc0d7c4b5d5189: str`${0} resultados de búsqueda`,\n s872b27cf7155f325: `Avanzar diez segundos`,\n s8744f82be5bc754f: `Sección siguiente`,\n s92a0d19a28995530: `Correcto`,\n sa034673b5a3c355c: `Este campo es obligatorio`,\n sa135b299b78d517d: `[Transcripción no disponible]`,\n sac330cdfd2a92c75: `Resultado anterior`,\n sb2d5fa10375dab13: `Desplazar el texto con el audio`,\n sb4f1dffbb6be6302: `Borrar`,\n sb9b90dd7e5256784: `Logotipo de la colección`,\n sbfbc77dc3543556f: `Sección anterior`,\n sc13705f8a93d185e: `Buscando en la transcripción`,\n scd105819b5a10243: `Reproducir`,\n sd4089915c0f14c1e: `Borrar la búsqueda`,\n se645d473fbdc4705: `Imagen siguiente`,\n se9d11cd23b249157: `Posición de reproducción`,\n sfcae9f83f7f25e25: `Imagen anterior`,\n sfe786d22e4310635: `Enviando el correo...`,\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@internetarchive/elements",
|
|
3
|
-
"version": "1.1.3-webdev-
|
|
3
|
+
"version": "1.1.3-webdev-9226.0",
|
|
4
4
|
"description": "A web component library from the Internet Archive.",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"types": "./dist/src/elements/index.d.ts",
|
|
@@ -30,17 +30,15 @@
|
|
|
30
30
|
"circular": "wireit",
|
|
31
31
|
"prepare": "wireit",
|
|
32
32
|
"test": "wireit",
|
|
33
|
-
"ghpages:build": "wireit"
|
|
33
|
+
"ghpages:build": "wireit",
|
|
34
|
+
"strings:extract": "wireit",
|
|
35
|
+
"strings:build": "wireit"
|
|
34
36
|
},
|
|
35
37
|
"dependencies": {
|
|
36
|
-
"@internetarchive/fetch-handler": "^1.4.0",
|
|
37
38
|
"@internetarchive/ia-clearable-text-input": "^1.1.1",
|
|
38
39
|
"@internetarchive/ia-dropdown": "^2.2.0",
|
|
39
|
-
"@internetarchive/metadata-service": "^1.0.4",
|
|
40
|
-
"@internetarchive/recaptcha-manager": "^1.0.0",
|
|
41
40
|
"@lit/localize": "^0.12.2",
|
|
42
41
|
"dayjs": "^1.11.23",
|
|
43
|
-
"dompurify": "^3.2.5",
|
|
44
42
|
"lit": "^2.8.0 || ^3.3.2",
|
|
45
43
|
"magic-snowflakes": "^7.0.2",
|
|
46
44
|
"tslib": "^2.8.1"
|
|
@@ -48,14 +46,13 @@
|
|
|
48
46
|
"devDependencies": {
|
|
49
47
|
"@eslint/eslintrc": "^3.3.5",
|
|
50
48
|
"@eslint/js": "^9.39.1",
|
|
49
|
+
"@lit/localize-tools": "^0.8.2",
|
|
51
50
|
"@open-wc/testing-helpers": "^3.0.1",
|
|
52
|
-
"@types/grecaptcha": "^3.0.9",
|
|
53
51
|
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
|
54
52
|
"@typescript-eslint/parser": "^8.46.4",
|
|
55
53
|
"@vitest/browser": "^4.0.8",
|
|
56
54
|
"@vitest/browser-playwright": "^4.0.8",
|
|
57
55
|
"@vitest/coverage-v8": "^4.0.8",
|
|
58
|
-
"axe-core": "^4.10.2",
|
|
59
56
|
"eslint": "^9.39.1",
|
|
60
57
|
"eslint-config-prettier": "^10.1.8",
|
|
61
58
|
"eslint-plugin-html": "^8.1.3",
|
|
@@ -78,7 +75,8 @@
|
|
|
78
75
|
"exports": {
|
|
79
76
|
".": "./dist/src/index.js",
|
|
80
77
|
"./*": "./dist/src/elements/*.js",
|
|
81
|
-
"./labs/*": "./dist/src/labs/*.js"
|
|
78
|
+
"./labs/*": "./dist/src/labs/*.js",
|
|
79
|
+
"./locales/*.js": "./dist/src/locales/*.js"
|
|
82
80
|
},
|
|
83
81
|
"files": [
|
|
84
82
|
"README.md",
|
|
@@ -140,6 +138,24 @@
|
|
|
140
138
|
},
|
|
141
139
|
"ghpages:build": {
|
|
142
140
|
"command": "vite build --config vite.config.ghpages.ts && touch ./ghpages/.nojekyll"
|
|
141
|
+
},
|
|
142
|
+
"strings:extract": {
|
|
143
|
+
"command": "lit-localize extract",
|
|
144
|
+
"files": [
|
|
145
|
+
"src/**/*.ts",
|
|
146
|
+
"lit-localize.json",
|
|
147
|
+
"tsconfig.json"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"strings:build": {
|
|
151
|
+
"command": "node scripts/build-locales.mts && prettier --write \"src/locales/*.ts\"",
|
|
152
|
+
"files": [
|
|
153
|
+
"xliff/*.xlf",
|
|
154
|
+
"src/**/*.ts",
|
|
155
|
+
"!src/locales/*.ts",
|
|
156
|
+
"lit-localize.json",
|
|
157
|
+
"scripts/build-locales.mts"
|
|
158
|
+
]
|
|
143
159
|
}
|
|
144
160
|
}
|
|
145
161
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
|
|
2
|
-
<rect width="24" height="24" fill="white"/>
|
|
3
|
-
<path d="M5 7.5H19L18 21H6L5 7.5Z" stroke="#000000" stroke-linejoin="round"/>
|
|
4
|
-
<path d="M15.5 9.5L15 19" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
-
<path d="M12 9.5V19" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"/>
|
|
6
|
-
<path d="M8.5 9.5L9 19" stroke="#000000" stroke-linecap="round" stroke-linejoin="round"/>
|
|
7
|
-
<path d="M16 5H19C20.1046 5 21 5.89543 21 7V7.5H3V7C3 5.89543 3.89543 5 5 5H8M16 5L15 3H9L8 5M16 5H8" stroke="#000000" stroke-linejoin="round"/>
|
|
8
|
-
</svg>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path
|
|
3
|
-
d="m81.0388846 100-30.9636029-22.5595033-30.7410319 22.5595033 10.6670595-37.3922042-30.0013093-25.2155916h37.5556428l12.5196389-37.3922042 12.3690754 37.3922042h37.5556429l-29.7034563 25.2155916z"
|
|
4
|
-
fill="#2C2C2C"
|
|
5
|
-
/>
|
|
6
|
-
</svg>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path
|
|
3
|
-
d="m81.0388846 100-30.9636029-22.5595033-30.7410319 22.5595033 10.6670595-37.3922042-30.0013093-25.2155916h37.5556428l12.5196389-37.3922042 12.3690754 37.3922042h37.5556429l-29.7034563 25.2155916z"
|
|
4
|
-
fill="#c2820a"
|
|
5
|
-
stroke="#c2820a"
|
|
6
|
-
stroke-width="3px"
|
|
7
|
-
/>
|
|
8
|
-
</svg>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path
|
|
3
|
-
d="m81.0388846 100-30.9636029-22.5595033-30.7410319 22.5595033 10.6670595-37.3922042-30.0013093-25.2155916h37.5556428l12.5196389-37.3922042 12.3690754 37.3922042h37.5556429l-29.7034563 25.2155916z"
|
|
4
|
-
fill="#ffffff"
|
|
5
|
-
stroke="#c2820a"
|
|
6
|
-
stroke-width="3px"
|
|
7
|
-
/>
|
|
8
|
-
</svg>
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { LitElement, PropertyValues, CSSResultGroup } from 'lit';
|
|
2
|
-
import type { RecaptchaManagerInterface } from '@internetarchive/recaptcha-manager';
|
|
3
|
-
import '../../elements/ia-button/ia-button.js';
|
|
4
|
-
import type { FetchHandlerInterface } from '@internetarchive/fetch-handler';
|
|
5
|
-
import { Review } from '@internetarchive/metadata-service';
|
|
6
|
-
import './ia-review.js';
|
|
7
|
-
/**
|
|
8
|
-
* Renders a form to edit a given IA review.
|
|
9
|
-
*/
|
|
10
|
-
export declare class IAReviewForm extends LitElement {
|
|
11
|
-
identifier?: string;
|
|
12
|
-
token: string;
|
|
13
|
-
baseHost: string;
|
|
14
|
-
endpointPath: string;
|
|
15
|
-
/** Form submitter's screenname, if applicable */
|
|
16
|
-
submitterScreenname: string;
|
|
17
|
-
/** Form submitter's itemname, if applicable */
|
|
18
|
-
submitterItemname?: string;
|
|
19
|
-
oldReview?: Review;
|
|
20
|
-
unrecoverableError?: string;
|
|
21
|
-
maxSubjectLength?: number;
|
|
22
|
-
maxBodyLength?: number;
|
|
23
|
-
fetchHandler?: FetchHandlerInterface;
|
|
24
|
-
recaptchaManager?: RecaptchaManagerInterface;
|
|
25
|
-
bypassRecaptcha: boolean;
|
|
26
|
-
private recaptchaWidget?;
|
|
27
|
-
private currentStars;
|
|
28
|
-
private currentSubjectLength;
|
|
29
|
-
private currentBodyLength;
|
|
30
|
-
recoverableError?: string;
|
|
31
|
-
private formCanSubmit;
|
|
32
|
-
submissionInProgress: boolean;
|
|
33
|
-
private reviewForm;
|
|
34
|
-
private RECAPTCHA_ERROR_MESSAGE;
|
|
35
|
-
private GENERIC_ERROR_MESSAGE;
|
|
36
|
-
render(): import("lit").TemplateResult<1>;
|
|
37
|
-
protected willUpdate(changed: PropertyValues): void;
|
|
38
|
-
/** Error to render instead of form inputs */
|
|
39
|
-
private get unrecoverableErrorTemplate();
|
|
40
|
-
/** Error to render next to submit button */
|
|
41
|
-
private get recoverableErrorTemplate();
|
|
42
|
-
private get recaptchaMessageTemplate();
|
|
43
|
-
/** Clickable group of stars */
|
|
44
|
-
private get starsInputTemplate();
|
|
45
|
-
/** Subject input and character counter */
|
|
46
|
-
private get subjectInputTemplate();
|
|
47
|
-
/** Body input and character counter */
|
|
48
|
-
private get bodyInputTemplate();
|
|
49
|
-
/** Hidden inputs we use to store other information for form submission */
|
|
50
|
-
private get hiddenInputsTemplate();
|
|
51
|
-
/** Buttons to render at bottom of form */
|
|
52
|
-
private get actionButtonsTemplate();
|
|
53
|
-
/**
|
|
54
|
-
* Renders a star icon, using its number and the current star rating
|
|
55
|
-
* to determine whether it should appear selected or not
|
|
56
|
-
*
|
|
57
|
-
* @param {number} num The number of the current star
|
|
58
|
-
* @returns {HTMLTemplateResult} The correct icon, rendered within a button
|
|
59
|
-
*/
|
|
60
|
-
private renderStar;
|
|
61
|
-
/**
|
|
62
|
-
* Sets up ReCaptcha for the form, if possible.
|
|
63
|
-
*
|
|
64
|
-
* On failure, replaces form inputs with the ReCaptcha error message.
|
|
65
|
-
*/
|
|
66
|
-
private setupRecaptcha;
|
|
67
|
-
/**
|
|
68
|
-
* Uses DOMpurify to sanitize any error message before render.
|
|
69
|
-
*
|
|
70
|
-
* @param {string} errorMsg The error message to be sanitized
|
|
71
|
-
* @returns {string} The sanitized error message
|
|
72
|
-
*/
|
|
73
|
-
private sanitizeErrorMsg;
|
|
74
|
-
/** Handles validation and recaptcha execution on form submission */
|
|
75
|
-
private handleSubmit;
|
|
76
|
-
/**
|
|
77
|
-
* Generates a review object from the submitted review,
|
|
78
|
-
* for optimistic display on success.
|
|
79
|
-
*
|
|
80
|
-
* @returns {Review} The review to display
|
|
81
|
-
*/
|
|
82
|
-
private generateSubmittedReview;
|
|
83
|
-
/**
|
|
84
|
-
* Converts date to string if it is a Date, otherwise
|
|
85
|
-
* leaves unchanged.
|
|
86
|
-
*/
|
|
87
|
-
private dateToString;
|
|
88
|
-
/**
|
|
89
|
-
* Executes the ReCaptcha challenge for the form.
|
|
90
|
-
* Attempts form submission on success.
|
|
91
|
-
* */
|
|
92
|
-
private getRecaptchaToken;
|
|
93
|
-
private handleRecaptchaError;
|
|
94
|
-
private stopSubmission;
|
|
95
|
-
private cancelReviewEdit;
|
|
96
|
-
private handleStarClicked;
|
|
97
|
-
private handleClearBtnClicked;
|
|
98
|
-
private setStars;
|
|
99
|
-
private handleSubjectChanged;
|
|
100
|
-
private handleBodyChanged;
|
|
101
|
-
private checkSubmissionAllowed;
|
|
102
|
-
static get styles(): CSSResultGroup;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=ia-review-form.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ia-review-form.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-reviews/ia-review-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAGV,cAAc,EACd,cAAc,EACf,MAAM,KAAK,CAAC;AAQb,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAK3D,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,qBACa,YAAa,SAAQ,UAAU;IAEd,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,KAAK,EAAE,MAAM,CAAM;IAGnB,QAAQ,EAAE,MAAM,CAAyB;IAGzC,YAAY,EAAE,MAAM,CAAuB;IAEvE,iDAAiD;IACrB,mBAAmB,EAAE,MAAM,CAAe;IAEtE,+CAA+C;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAGrC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAG5C,eAAe,EAAE,OAAO,CAAS;IAG9D,OAAO,CAAC,eAAe,CAAC,CAA2B;IAInD,OAAO,CAAC,YAAY,CAAa;IAIjC,OAAO,CAAC,oBAAoB,CAAa;IAIzC,OAAO,CAAC,iBAAiB,CAAa;IAItC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,OAAO,CAAC,aAAa,CAAkB;IAIvC,oBAAoB,EAAE,OAAO,CAAS;IAItC,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,uBAAuB,CACwB;IAEvD,OAAO,CAAC,qBAAqB,CAC2C;IAExE,MAAM;IAeN,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAiCnD,6CAA6C;IAC7C,OAAO,KAAK,0BAA0B,GAUrC;IAED,4CAA4C;IAC5C,OAAO,KAAK,wBAAwB,GAQnC;IAED,OAAO,KAAK,wBAAwB,GAwBnC;IAED,+BAA+B;IAC/B,OAAO,KAAK,kBAAkB,GAuB7B;IAED,0CAA0C;IAC1C,OAAO,KAAK,oBAAoB,GAqC/B;IAED,uCAAuC;IACvC,OAAO,KAAK,iBAAiB,GAkC5B;IAED,0EAA0E;IAC1E,OAAO,KAAK,oBAAoB,GAW/B;IAED,0CAA0C;IAC1C,OAAO,KAAK,qBAAqB,GAoBhC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IA2BlB;;;;OAIG;YACW,cAAc;IAQ5B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAIxB,oEAAoE;YACtD,YAAY;IAmE1B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAKpB;;;SAGK;YACS,iBAAiB;IAgB/B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,sBAAsB;IA2B9B,MAAM,KAAK,MAAM,IAAI,cAAc,CAgJlC;CACF"}
|